Pengaturan proxy Watson Node SDK untuk permintaan API dan IAM
Bagikan agen terowongan antara klien layanan Watson dan pengautentikasi IAM-nya agar perolehan token dapat memakai proxy.
Saat panggilan Watson gagal sebelum mencapai layanan, periksa apakah permintaan yang gagal itu permintaan token IAM. Panggilan yang diautentikasi IAM dapat menghubungi IAM lebih dulu, lalu layanan.
Pada aplikasi yang sudah memakai Watson SDK terkait dan dependensi tunnel, berikan pengaturan jaringan yang sama kepada kedua 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,
});Pertahankan apiKey, serviceVersion, dan serviceUrl yang sudah ada di aplikasi. Endpoint API dan IAM tetap menjadi tujuannya masing-masing; listener proxy berada di dalam agen. Daftar proxy HTTP dapat menyediakan alamat kandidat bila kedua endpoint layanan publik dapat dijangkau melalui proxy yang Anda pilih.
tunnel.httpsOverHttp membentuk jalur HTTPS melalui proxy HTTP. proxy: false mencegah SDK menerapkan konfigurasi proxy bawaan lain di atas agen khusus tersebut.
Jika sebelumnya Anda hanya memberikan pengaturan ini kepada assistant, pengautentikasi adalah tempat yang belum diperiksa. Autentikasi dasar dan token bearer yang sudah diterbitkan memiliki siklus hidup perolehan token yang berbeda, jadi jalur IAM tambahan ini berlaku untuk pengautentikasi berbasis jaringan yang dipakai di sini.