Tetapan proksi Watson Node SDK untuk permintaan API dan IAM
Kongsi ejen terowong antara klien perkhidmatan Watson dan pengesah IAMnya supaya pemerolehan token boleh menggunakan proksi.
Apabila panggilan Watson gagal sebelum sampai ke perkhidmatan, semak sama ada permintaan yang gagal itu ialah permintaan token IAM. Panggilan yang disahkan IAM boleh menghubungi IAM dahulu dan perkhidmatan kemudian.
Dalam aplikasi yang sudah menggunakan Watson SDK berkaitan dan kebergantungan tunnel, berikan tetapan rangkaian yang sama kepada kedua-dua objek:
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,
});Kekalkan apiKey, serviceVersion dan serviceUrl sedia ada aplikasi. API dan titik akhir IAM kekal sebagai destinasi yang dimaksudkan; pendengar proksi tergolong dalam ejen. senarai proksi HTTP boleh menyediakan alamat calon apabila kedua-dua titik akhir perkhidmatan awam boleh dicapai melalui proksi pilihan anda.
tunnel.httpsOverHttp membina laluan HTTPS melalui proksi HTTP. proxy: false menghalang SDK daripada menggunakan konfigurasi proksi terbina dalam yang lain di atas ejen tersuai itu.
Jika anda sebelum ini memberikan tetapan ini hanya kepada assistant, pengesah ialah tempat yang hilang untuk diperiksa. Pengesahan asas dan token pembawa yang telah dikeluarkan mempunyai kitaran pemerolehan token yang berbeza, jadi laluan IAM tambahan ini terpakai kepada pengesah berasaskan rangkaian yang digunakan di sini.