Поставки за прокси во Watson Node SDK за API и IAM барања
Споделете го агентот за тунел меѓу клиентот на услугата Watson и неговиот IAM автентикатор за да може токенот да се добива преку прокси.
Кога повикот кон 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 крајната точка остануваат нивните предвидени одредишта; слушателот на проксито припаѓа на агентот. листата со HTTP прокси-сервери може да обезбеди кандидат-адреси кога двете јавни крајни точки на услугата можат да се достигнат преку прокси што ќе го изберете.
tunnel.httpsOverHttp воспоставува HTTPS патека преку HTTP проксито. proxy: false спречува SDK да примени друга вградена конфигурација на прокси врз тој прилагоден агент.
Ако претходно ги дававте овие поставки само на assistant, автентикаторот е местото што недостига и треба да се провери. Основната автентикација и веќе издадениот носечки токен имаат различен циклус на добивање токен, па овој дополнителен IAM пат важи за мрежниот автентикатор што се користи овде.