Postavke proxyja u Watson Node SDK za API i IAM zahtjeve
Podijelite agent tunela između Watson klijenta usluge i njegovog IAM autentikatora kako bi se token mogao dobiti preko proxyja.
Kada Watson poziv ne uspije prije nego što stigne do usluge, provjerite je li neuspjeli zahtjev zahtjev za IAM token. Poziv autentificiran putem IAM-a može prvo kontaktirati IAM, a zatim uslugu.
U aplikaciji koja već koristi odgovarajući Watson SDK i zavisnost tunnel, dajte iste mrežne postavke obama objektima:
const tunnel = require('tunnel');
const AssistantV2 = require('ibm-watson/assistant/v2');
const { IamAuthenticator } = require('ibm-watson/auth');
const httpsAgent = tunnel.httpsOverHttp({
proxy: { host: 'proxy.example', port: 8080 },
});
const network = { httpsAgent, proxy: false };
const authenticator = new IamAuthenticator({
apikey: apiKey,
...network,
});
const assistant = new AssistantV2({
version: serviceVersion,
serviceUrl,
authenticator,
...network,
});Zadržite postojeće apiKey, serviceVersion i serviceUrl aplikacije. API i IAM endpoint ostaju njihova predviđena odredišta; proxy listener pripada agentu. liste HTTP proxyja može dati kandidatne adrese kada se oba javna endpointa usluge mogu dosegnuti preko proxyja koji odaberete.
tunnel.httpsOverHttp uspostavlja HTTPS put preko HTTP proxyja. proxy: false sprječava SDK da na taj prilagođeni agent primijeni još jednu ugrađenu proxy konfiguraciju.
Ako ste prije ove postavke davali samo objektu assistant, autentikator je mjesto koje nedostaje i koje treba provjeriti. Osnovna autentifikacija i već izdani bearer token imaju različite cikluse dobivanja tokena, pa se ovaj dodatni IAM put odnosi na mrežni autentikator koji se ovdje koristi.