Bir Watson çağrısı servise ulaşmadan başarısız olursa, başarısız isteğin IAM belirteç isteği olup olmadığını kontrol edin. IAM ile kimlik doğrulanan bir çağrı önce IAM'e, ardından servise başvurabilir.

İlgili Watson SDK'sını ve tunnel bağımlılığını zaten kullanan bir uygulamada, her iki nesneye de aynı ağ ayarlarını verin:

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,
});

Uygulamanın mevcut apiKey, serviceVersion ve serviceUrl değerlerini koruyun. API ve IAM uç noktaları amaçlanan hedefleri olarak kalır; proxy dinleyicisi aracıya aittir. HTTP proxy listesinden, iki genel servis uç noktasına seçtiğiniz bir proxy üzerinden ulaşılabildiğinde aday adresler sağlanabilir.

tunnel.httpsOverHttp HTTP proxy üzerinden HTTPS yolunu kurar. proxy: false SDK'nın bu özel aracının üzerine başka bir yerleşik proxy yapılandırması uygulamasını engeller.

Bu ayarları daha önce yalnızca assistant nesnesine verdiyseniz, kimlik doğrulayıcı kontrol edilmesi gereken eksik yerdir. Temel kimlik doğrulama ile önceden verilmiş bir bearer belirteci farklı belirteç edinme yaşam döngülerine sahiptir, bu nedenle bu ek IAM yolu burada kullanılan ağ tabanlı kimlik doğrulayıcı için geçerlidir.

İlgili makaleler