Nastavenia proxy v Watson Node SDK pre požiadavky API a IAM
Zdieľajte agent tunela medzi klientom služby Watson a jeho autentifikátorom IAM, aby získavanie tokenu mohlo používať proxy.
Keď volanie Watson zlyhá skôr, než sa dostane k službe, skontrolujte, či zlyhaná požiadavka nie je požiadavkou na token IAM. Volanie overené cez IAM môže najprv kontaktovať IAM a potom službu.
V aplikácii, ktorá už používa príslušnú Watson SDK a závislosť tunnel, zadajte rovnaké sieťové nastavenia obom objektom:
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,
});Zachovajte existujúce apiKey, serviceVersion a serviceUrl aplikácie. Koncové body API a IAM zostávajú ich zamýšľanými cieľmi; poslucháč proxy patrí agentovi. zoznamu HTTP proxy môže poskytnúť kandidátske adresy, keď sú oba verejné koncové body služby dostupné cez proxy, ktorý si vyberiete.
tunnel.httpsOverHttp vytvára cestu HTTPS cez HTTP proxy. proxy: false zabraňuje SDK použiť na tento vlastný agent ešte jednu vstavanú konfiguráciu proxy.
Ak ste predtým tieto nastavenia zadávali iba objektu assistant, autentifikátor je chýbajúce miesto, ktoré treba skontrolovať. Základné overenie a už vydaný bearer token majú odlišné cykly získavania tokenu, takže táto dodatočná cesta IAM platí pre sieťový autentifikátor použitý tu.