Watson Node SDK-ийн API ба IAM хүсэлтийн прокси тохиргоо
Watson үйлчилгээний клиент ба түүний IAM authenticator хооронд tunnel agent-ыг хуваалцаж, токеныг проксигоор авах боломжтой болгоно.
Watson дуудлага үйлчилгээнд хүрэхээс өмнө бүтэлгүйтвэл, бүтэлгүйтсэн хүсэлт нь IAM токены хүсэлт эсэхийг шалгана. IAM-аар баталгаажсан дуудлага эхлээд IAM-тай, дараа нь үйлчилгээтэй холбогдож болно.
Холбогдох Watson SDK болон tunnel хамаарлыг аль хэдийн ашиглаж буй аппликейшнд хоёр объектод ижил сүлжээний тохиргоог өгнө:
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,
});Аппликейшны одоо байгаа apiKey, serviceVersion, serviceUrl-ыг хэвээр үлдээнэ. API болон IAM endpoint нь зорьсон хүрэх газраараа хэвээр байх ба прокси листенер нь agent-д хамаарна. HTTP проксийн жагсаалтаас таны сонгосон проксигоор хоёр нийтийн үйлчилгээний endpoint-д хүрэх боломжтой үед боломжит хаягуудыг авч болно.
tunnel.httpsOverHttp нь HTTP проксигоор HTTPS зам үүсгэнэ. proxy: false нь SDK-д тэр захиалгат agent дээр өөр суурилагдсан прокси тохиргоог давхарлуулахыг хориглоно.
Хэрэв та өмнө нь эдгээр тохиргоог зөвхөн assistant-д өгч байсан бол authenticator нь шалгах ёстой дутуу газар юм. Basic authentication болон аль хэдийн олгогдсон bearer token нь токен авах өөр өөр циклтэй тул энэ нэмэлт IAM зам нь энд ашиглаж буй сүлжээнд суурилсан authenticator-д хамаарна.