הגדרות פרוקסי ב-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 הנוסף הזה חל על המאמת מבוסס הרשת שמשמש כאן.