Mga setting ng proxy sa Watson Node SDK para sa API at IAM na kahilingan
Ibahagi ang tunnel agent sa pagitan ng service client ng Watson at ng IAM authenticator nito upang magamit ng pagkuha ng token ang proxy.
Kapag nabigo ang isang tawag sa Watson bago pa man umabot sa serbisyo, tingnan kung ang nabigong kahilingan ay ang kahilingan ng token ng IAM. Ang tawag na na-authenticate ng IAM ay maaaring makipag-ugnayan muna sa IAM at pagkatapos sa serbisyo.
Sa isang aplikasyong gumagamit na ng kaugnay na Watson SDK at ng dependency na tunnel, bigyan ng parehong mga setting ng network ang dalawang object:
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,
});Panatilihin ang umiiral na apiKey, serviceVersion at serviceUrl ng aplikasyon. Nananatiling mga nilalayong destinasyon ang API at IAM endpoint; ang listener ng proxy ay kabilang sa agent. listahan ng mga HTTP proxy ay makapagbibigay ng mga kandidatong address kapag ang dalawang pampublikong endpoint ng serbisyo ay maabot sa pamamagitan ng proxy na pipiliin mo.
tunnel.httpsOverHttp ay nagtatatag ng HTTPS path sa pamamagitan ng HTTP proxy. proxy: false ay pumipigil sa SDK na maglapat ng isa pang built-in na proxy configuration sa ibabaw ng custom na agent na iyon.
Kung dati ay ibinigay mo ang mga setting na ito sa assistant lamang, ang authenticator ang kulang na lugar na dapat suriin. Ang basic authentication at ang bearer token na naibigay na ay may magkaibang lifecycle ng pagkuha ng token, kaya ang karagdagang IAM path na ito ay naaangkop sa authenticator na nakabatay sa network na ginagamit dito.