Impostazioni proxy di Watson Node SDK per richieste API e IAM
Condividi l'agente tunnel tra il client del servizio Watson e il suo autenticatore IAM, così l'ottenimento del token può usare il proxy.
Quando una chiamata Watson non riesce prima di raggiungere il servizio, verifica se la richiesta non riuscita è la richiesta del token IAM. Una chiamata autenticata tramite IAM può contattare prima IAM e poi il servizio.
In un'applicazione che usa già il Watson SDK pertinente e la dipendenza tunnel, assegna le stesse impostazioni di rete a entrambi gli oggetti:
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,
});Mantieni i valori esistenti di apiKey, serviceVersion e serviceUrl dell'applicazione. Gli endpoint API e IAM restano le destinazioni previste; il listener del proxy appartiene all'agente. L'elenco dei proxy HTTP può fornire indirizzi candidati quando è possibile raggiungere entrambi gli endpoint pubblici del servizio tramite un proxy che scegli.
tunnel.httpsOverHttp stabilisce il percorso HTTPS attraverso il proxy HTTP. proxy: false impedisce all'SDK di applicare un'altra configurazione proxy integrata sopra quell'agente personalizzato.
Se in precedenza fornivi queste impostazioni solo a assistant, l'autenticatore è il punto mancante da controllare. L'autenticazione di base e un token bearer già emesso hanno cicli di vita diversi per l'ottenimento del token, quindi questo percorso IAM aggiuntivo vale per l'autenticatore basato sulla rete usato qui.