API और IAM अनुरोधों के लिए Watson Node SDK प्रॉक्सी सेटिंग्स
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 HTTP प्रॉक्सी के माध्यम से HTTPS पथ स्थापित करता है। proxy: false SDK को उस कस्टम एजेंट के ऊपर कोई अन्य अंतर्निहित प्रॉक्सी कॉन्फ़िगरेशन लागू करने से रोकता है।
यदि आप पहले ये सेटिंग्स केवल assistant को देते थे, तो प्रमाणक ही वह छूटी हुई जगह है जिसे जाँचना चाहिए। बेसिक प्रमाणीकरण और पहले से जारी bearer टोकन के टोकन प्राप्ति जीवनचक्र अलग होते हैं, इसलिए यह अतिरिक्त IAM पथ यहाँ उपयोग किए जा रहे नेटवर्क-आधारित प्रमाणक पर लागू होता है।