【发布时间】:2019-09-25 05:48:41
【问题描述】:
我在 IBM 中创建了一个非常简单的云函数,我尝试通过 Watson 助手调用它。当我调用它时,会出现错误“Direct CloudFunctions call was not successful. Http response code is [401]”。
下面是我正在使用的代码。 “prodname”取自用户并发送到函数以获取答案。当我调用它时,该功能工作正常。我从https://cloud.ibm.com/openwhisk/learn/api-key 获得ID 和密码。
{
"context": {
"credentials": {
"user": "userID",
"password": "password"
}
},
"output": {
"text": {
"values": [
"$answer"
]
}
},
"actions": [
{
"name": "arllambi%2540gmail.com_Only/Watson/MovieBot",
"type": "cloud_function",
"parameters": {
"prodname": "$prodname"
},
"result_variable": "answer",
"credentials": "$credentials"
}
]
}
是不是凭证有问题?
提前感谢您的帮助。
******重新编辑******
根据 data_henrik 的建议,我提供了更多信息。我调用的函数如下,一个很简单的回显函数:
function main(msg){
return {answer: "You said " +msg.prodname};
}
我将 cloud_function 更改为 web_action,web_action 通过邮递员可以正常工作:
{
"output": {
"text": {
"values": [
"$answer"
]
}
},
"actions": [
{
"name": "arllambi@gmail.com_Only/Watson/MovieBot.json",
"type": "web_action",
"parameters": {
"prodname": "<?input.text?>"
},
"result_variable": "context.answer"
}
]
}
我现在收到的消息是“直接 CloudFunctions 调用不成功。Http 响应代码是 [404]”。助手也会回答“with {“cloud_functions_call_error”:“请求的资源不存在。”}
阿德里亚
【问题讨论】:
-
您使用的是 api_key 还是用户/密码?查看 Cloud Functions 日志了解详细信息。
-
嗨,感谢您的快速回答!我正在使用来自cloud.ibm.com/openwhisk/learn/api-key 的用户/密码数据。 clound 函数日志不显示任何内容:激活 ID:702e4121f77347d2ae4121f77387d27d 结果:{“answer”:“You said terminator”} 日志:[]
-
分享有关您正在调用的代码和操作名称的更多详细信息。为什么不使用 api_key 而不是用户/密码?
-
为了练习,你能不能把动作启用为网络动作,然后这样调用它?
-
感谢反馈,以上已更新。
标签: ibm-cloud ibm-watson watson-assistant ibm-cloud-functions