Proxyinnstillingar for Watson Node SDK for API- og IAM-førespurnader
Del tunnelagenten mellom Watson-tenesteklienten og IAM-autentiseraren slik at tokenhenting kan bruke proxyen.
Når eit Watson-kall feilar før det når tenesta, sjekk om den mislukka førespurnaden er IAM-tokenførespurnaden. Eit IAM-autentisert kall kan kontakte IAM først og tenesta etterpå.
I eit program som allereie brukar den aktuelle Watson SDK-en og tunnel-avhengnaden, gje dei same nettverksinnstillingane til båe objekta:
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,
});Hald på dei eksisterande apiKey, serviceVersion og serviceUrl i programmet. API- og IAM-endepunktet blir verande dei tiltenkte måla; proxy-lyttaren høyrer til agenten. lista over HTTP-proxyar kan gje kandidatadresser når båe dei offentlege tenesteendepunkta kan nåast gjennom ein proxy du vel.
tunnel.httpsOverHttp etablerer HTTPS-banen gjennom HTTP-proxyen. proxy: false hindrar SDK-en i å leggje på ein annan innebygd proxykonfigurasjon oppå den tilpassa agenten.
Viss du tidlegare berre gav desse innstillingane til assistant, er autentiseraren staden som manglar og bør sjekkast. Grunnleggjande autentisering og eit allereie utstedt bæretoken har ulike livssyklusar for tokenhenting, så denne ekstra IAM-banen gjeld for den nettverksbaserte autentiseraren som blir brukt her.