Configuració del proxy de Watson Node SDK per a les sol·licituds d'API i IAM
Compartiu l'agent de túnel entre el client del servei Watson i el seu autenticador IAM perquè l'obtenció del testimoni pugui fer servir el proxy.
Quan una crida de Watson falla abans d'arribar al servei, comproveu si la sol·licitud fallida és la sol·licitud del testimoni IAM. Una crida autenticada amb IAM pot contactar primer amb IAM i després amb el servei.
En una aplicació que ja utilitza el Watson SDK corresponent i la dependència tunnel, doneu la mateixa configuració de xarxa als dos objectes:
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,
});Conserveu l'apiKey, el serviceVersion i el serviceUrl existents de l'aplicació. Els punts finals d'API i IAM segueixen sent les seves destinacions previstes; l'oient del proxy pertany a l'agent. La llista de proxys HTTP pot proporcionar adreces candidates quan es pot arribar als dos punts finals públics del servei a través d'un proxy que trieu.
tunnel.httpsOverHttp estableix el camí HTTPS a través del proxy HTTP. proxy: false evita que l'SDK apliqui una altra configuració de proxy integrada a sobre d'aquest agent personalitzat.
Si abans donàveu aquesta configuració només a assistant, l'autenticador és el lloc que falta revisar. L'autenticació bàsica i un testimoni bearer ja emès tenen cicles de vida diferents per obtenir el testimoni, de manera que aquest camí IAM addicional s'aplica a l'autenticador basat en xarxa que s'utilitza aquí.