ການຕັ້ງຄ່າ proxy ໃນ Watson Node SDK ສຳລັບ API ແລະ IAM
ແບ່ງປັນ agent tunnel ລະຫວ່າງ service client ຂອງ Watson ແລະ IAM authenticator ຂອງມັນ ເພື່ອໃຫ້ການໄດ້ມາ token ໃຊ້ proxy ໄດ້.
ເມື່ອການເອີ້ນ Watson ລົ້ມເຫຼວກ່ອນທີ່ຈະໄປຮອດບໍລິການ ໃຫ້ກວດເບິ່ງວ່າຄຳຮ້ອງທີ່ລົ້ມເຫຼວນັ້ນແມ່ນຄຳຮ້ອງຂໍ token ຂອງ IAM ຫຼືບໍ່. ການເອີ້ນທີ່ຢືນຢັນດ້ວຍ IAM ສາມາດຕິດຕໍ່ IAM ກ່ອນ ແລ້ວຈຶ່ງຕິດຕໍ່ບໍລິການ.
ໃນແອັບພລິເຄຊັນທີ່ໃຊ້ Watson SDK ທີ່ກ່ຽວຂ້ອງ ແລະ dependency 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 endpoint ຍັງຄົງເປັນປາຍທາງທີ່ຕັ້ງໃຈໄວ້; proxy listener ເປັນຂອງ agent. ລາຍການພຣັອກຊີ HTTP ສາມາດໃຫ້ທີ່ຢູ່ຕົວແທນ ເມື່ອປາຍທາງບໍລິການສາທາລະນະທັງສອງສາມາດເຂົ້າເຖິງໄດ້ຜ່ານ proxy ທີ່ທ່ານເລືອກ.
tunnel.httpsOverHttp ສ້າງເສັ້ນທາງ HTTPS ຜ່ານ HTTP proxy. proxy: false ປ້ອງກັນບໍ່ໃຫ້ SDK ໃຊ້ການຕັ້ງຄ່າ proxy ທີ່ມີຢູ່ໃນຕົວອີກອັນໜຶ່ງທັບລົງເທິງ agent ທີ່ກຳນົດເອງນັ້ນ.
ຖ້າທ່ານເຄີຍໃຫ້ການຕັ້ງຄ່າເຫຼົ່ານີ້ກັບ assistant ພຽງຢ່າງດຽວມາກ່ອນ authenticator ຄືບ່ອນທີ່ຂາດຢູ່ ທີ່ຄວນກວດເບິ່ງ. Basic authentication ແລະ bearer token ທີ່ອອກໃຫ້ແລ້ວມີວົງຈອນການໄດ້ມາຂອງ token ທີ່ແຕກຕ່າງກັນ ດັ່ງນັ້ນເສັ້ນທາງ IAM ເພີ່ມເຕີມນີ້ຈຶ່ງໃຊ້ກັບ authenticator ທີ່ອີງໃສ່ເຄືອຂ່າຍທີ່ໃຊ້ຢູ່ນີ້.