- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我是 OpenWhisk/IBM Cloud Functions 的新手。我尝试使用 IBM Watson Assistant 构建一个基本的聊天机器人应用程序。因此,我拥有的是从 Node.js 服务器调用的云函数操作,该操作具有与 Watson 服务交互的所有凭据,我使用“watson-developer-cloud”npm 包作为依赖项。当我在本地计算机上运行时,一切都按预期运行,但是,当我压缩目录并将其作为 OpenWhisk Web 操作上传时,它无法安装依赖项。
我遵循的程序是:
npm install
bx wsk操作创建chataction --kind nodejs:8 chatactionzip.zip
有人可以帮我让它工作吗?我正在上传目录结构的屏幕截图。
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);
});
`
最佳答案
无服务器操作是异步的,您需要将代码包装在 Promise 中,或者如果您使用的 API 已经返回 Promise,则使用 try/catch
主函数在方法 assistant.message()
调用完成之前结束
return new Promise((resolve, reject) =>{
assistant.message(inputMessageParams, function(err, result, response) {
if(err) {
console.log(err);
reject({err: err})
}
else {
// console.log(response);
// console.log(response.body.output.text);
// console.log(response.data);
resolve( {result: response.body.output.text[0]})
}
});
});
有关异步 javascript 的更多信息,请参阅此处的文档:https://console.bluemix.net/docs/openwhisk/openwhisk_reference.html#openwhisk_ref_javascript
关于node.js - openwhisk actions/IBM Cloud Functions 中的第三方 npm 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53477593/
我想以编程方式将日志从 OpenWhisk 转储到外部服务。我可以通过捕获日志输出然后在每个操作结束时发布它来做到这一点,但这会增加我的功能的开销。 有没有一种方法可以从 OpenWhisk API
出于某种原因,我无法安装 OpenWhisk 命令行。我下载了 CLI 并双击运行它。我看到一个终端窗口说 [Process Complete] 然后它说 -bash: wsk: command no
我正在尝试在单节点ubuntu vm上运行openwhisk无服务器框架。 我正在按照here的指示进行操作。 我按照有关数据库设置的说明进行操作,然后转到列出了单个ansible节点的步骤:(ans
当我尝试在OpenWhisk中安装docker框架时,它失败并显示以下错误: $ wsk sdk install docker tar: blackbox-0.1.0.tar.gz: Cannot o
我需要在 OpenWhisk 中运行 Docker 操作。在 Docker 容器内,我执行一个 Java 程序。 现在我从 Openwhisk 中提取了 docker 骨架并在其上安装了 Java。我
我正在 IBM Bluemix 中使用 openwhisk,现在我正在寻找一种安排一次性操作的方法。 我知道我可以使用“feed/whisk.system/alarms/alarm”以“cron”方式
我有一个返回响应对象的 OpenWhisk 操作,因为我希望能够控制 header 和 HTTP 状态代码。我的操作返回如下内容: return { statusCode: 200,
我是OpenWhisk的新手,在安装过程中遇到了一些困难。 由于Pod中的错误,Ngnix Pod正在CrashLoopBackOff中运行。 2018/07/02 16:14:27 [emerg]
我想做一些非常简单的事情。我想通过 openwhisk 和 javascript 找到一个 JSON 对象的所有元素的总和。但是,以下代码的结果为 0。 function sum(params){
我正在 Swift 中尝试一些 OpenWhisk 操作。无论好坏,几乎所有 OpenWhisk 文档都是关于 javascript 的。在 javascript 中编写操作时,看起来您可以将代码打包
我正在尝试使用 OpenWhisk 操作中的 socket.io。我想将它用作 WebSocket 客户端,但似乎无法让它工作。是否支持socket.io客户端,还是仅作为服务器? 编辑 http:/
大家好,我已经在 IBM 云上部署了一个函数,我通过 Web api 调用它,但是除了那些涉及路由参数的函数之外,所有函数都工作正常,因为我无法提取它们。我正在使用无服务器框架,当调用变量 __ow_
我已经尝试了比我愿意承认的更多的时间来获得一个 openWhisk 函数来调用 Compose.io 上的 postgre sql 数据库。这是我的代码: 我最新的化身是这样的: function m
我正在尝试使用 openwhisk 云函数来利用一些现有的 java 代码。该代码需要读取本地文件。 IBM Cloud 上的 Java 操作是否支持此功能?尽管该文件包含在 jar 文件中 - 应用
我想知道从 Python 应用程序调用 OpenWhisk 操作的最简单方法是什么?也许相当于 https://github.com/apache/incubator-openwhisk-client
我已经在本地测试了一个 reddit 机器人一段时间,并让它在本地工作。所以现在我尝试在 OpenWhisk 上调用它。我的麻烦似乎出现的地方是: r.getInbox( {"filter":"men
我正在尝试从 OpenWhisk 操作调用 Watson 系统包(文本到语音)中包含的操作。 我已经绑定(bind)了服务并设置了凭据,因此我可以从 CLI 中看到 wsk list entities
设置详情:我正在本地 ubuntu(16.04) vm 上设置 openwhisk。在这个设置中,kafka 在一个 docker 中运行,而 zookeeper 在另一个 docker 中运行。 我
我遇到了 IBM Cloud Functions 的奇怪行为。我有一个启用 Web 的操作 (WebAction),我不需要对其进行身份验证。我使用 Postman(和浏览器)来测试这个新的 REST
我在 Bluemix 中看到了这些,但它们之间有什么区别? 最佳答案 Cloud Foundry 和 OpenWhisk 是两个 Bluemix 计算模型,开发人员可以使用它们来驱动应用程序的工作负载
我是一名优秀的程序员,十分优秀!