Configuración do proxy de Watson Node SDK para as solicitudes de API e IAM
Comparta o axente de túnel entre o cliente do servizo Watson e o seu autenticador de IAM para que a obtención do token poida usar o proxy.
Cando unha chamada de Watson falla antes de chegar ao servizo, comprobe se a solicitude fallida é a solicitude do token de IAM. Unha chamada autenticada con IAM pode contactar primeiro con IAM e despois co servizo.
Nunha aplicación que xa usa o SDK de Watson correspondente e a dependencia tunnel, dea a mesma configuración de rede a ambos os obxectos:
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,
});Manteña o apiKey, o serviceVersion e o serviceUrl existentes da aplicación. Os puntos de conexión de API e IAM seguen a ser os seus destinos previstos; o receptor do proxy pertence ao axente. A lista de proxies HTTP pode fornecer enderezos candidatos cando se poida chegar aos dous puntos de conexión públicos do servizo a través dun proxy que escolla.
tunnel.httpsOverHttp establece a ruta HTTPS a través do proxy HTTP. proxy: false impide que o SDK aplique outra configuración de proxy integrada sobre ese axente personalizado.
Se antes só lle proporcionaba esta configuración a assistant, o autenticador é o lugar que falta por revisar. A autenticación básica e un token de portador xa emitido teñen ciclos de vida distintos para obter o token, polo que esta ruta adicional de IAM se aplica ao autenticador baseado en rede que se usa aquí.