Я новичок в OpenWhisk / IBM Cloud Functions.Я пытался создать базовое приложение для бот-чата с использованием IBM Watson Assistant.Итак, у меня есть действие облачных функций, которое вызывается с моего сервера Node.js, у этого действия есть все учетные данные для взаимодействия со службой Watson, я использую пакет npm "watson-developer-cloud" в качестве зависимости.Все работает, как и ожидалось, когда я запускаюсь на локальной машине, однако, когда я заархивирую каталог и загрузлю его как веб-действие OpenWhisk, он не сможет установить зависимости.
Процедура, которой я следовал:
- run
npm install
- сжатие всех файлов в текущем каталоге (включая node_modules)
- действие загрузки с использованием следующей команды
bx wsk action create chataction --kind nodejs:8 chatactionzip.zip
(здесь chatactionzip - это имя сжатого файла).
Может кто-нибудь помочь мне заставить это работать?Я загружаю скриншоты структуры каталогов.
package.json похож на это
`
{
"name": "chataction",
"version": "1.0.0",
"description": "",
"main": "app.js",
"scripts": {
"start": "node app.js"
},
"author": "",
"license": "ISC",
"dependencies": {
"watson-developer-cloud": "^3.13.0"
}
}
`
это мой код (я удаляю некоторые учетные данные, остальное как есть) `
const AssistantV1 = require('watson-developer-cloud/assistant/v1');
function main(params) {
var inputText = params.inputText || 'input was not sent';
//return {result: inputText}
var assistant = new AssistantV1({
username: '',
password: '',
url: '',
//api_key: '',
version: '2018-11-26'
});
var inputMessageParams = {
input: {
text: inputText
},
workspace_id: ''
}
assistant.message(inputMessageParams, function(err, result, response) {
if(err) {
console.log(err);
return {err: err}
}
else {
// console.log(response);
// console.log(response.body.output.text);
// console.log(response.data);
return {result: response.body.output.text[0]}
}
});
//return {notHit: 'npm not working'}
}
exports.main = main;
`
вызывающий код выглядит так `
const openwhisk = require('openwhisk');
options = {
apihost: 'openwhisk.eu-gb.bluemix.net',
api_key: ''
}
var ow = openwhisk(options);
var params = {inputText: 'Hello'}
var name = 'chataction';
var blocking = true;
var result = true;
ow.actions.invoke({name, blocking, result, params})
.then((result) => {
console.log(result);
});
`