API, IAM അഭ്യർത്ഥനകൾക്കുള്ള Watson Node SDK പ്രോക്സി ക്രമീകരണങ്ങൾ
Watson സേവന ക്ലയന്റിനും അതിന്റെ IAM authenticator-നും ഇടയിൽ ടണൽ ഏജന്റ് പങ്കിടുക, അതുവഴി ടോക്കൺ ലഭ്യത പ്രോക്സി ഉപയോഗിക്കും.
സേവനത്തിൽ എത്തുന്നതിന് മുമ്പ് ഒരു 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-ന് മാത്രം നൽകിയിരുന്നെങ്കിൽ, authenticator ആണ് പരിശോധിക്കേണ്ട വിട്ടുപോയ സ്ഥലം. Basic authentication-നും ഇതിനകം നൽകിയ bearer token-നും വ്യത്യസ്ത ടോക്കൺ ലഭ്യതാ ചക്രങ്ങളുണ്ട്, അതിനാൽ ഈ അധിക IAM പാത ഇവിടെ ഉപയോഗിക്കുന്ന നെറ്റ്വർക്ക് അധിഷ്ഠിത authenticator-ന് ബാധകമാണ്.