Прокси настройки на 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, удостоверителят е липсващото място за проверка. Основното удостоверяване и вече издаденият bearer токен имат различни жизнени цикли на получаване на токен, затова този допълнителен IAM път се отнася за мрежовия удостоверител, използван тук.