问题标签 [openwhisk]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - 有人知道 IBM OpenWhisk 和 Cors 设置吗?
我有以下问题。当通过 API 网关运行我的 openWhisk 函数时,一切都很好。也将其称为跨域请求效果很好。
但我需要用凭据调用它,似乎没有选择这样做。
我尝试了什么:
- 仅启用 API CORS 设置,函数本身没有任何标头
- 在 API 中启用 cors 并且在函数中也有 CORS 标头 -> 函数中的相关标头(访问源)被覆盖!
- 在 API 中禁用 CORS 并在函数中包含 CORS 标头 -> 函数的相关标头(访问源)被删除
这是通常应该工作的代码:
如果有人有想法会很棒,因为支持人员已经好几天没有回答我的问题了。
谢谢,最好的,安德烈
openwhisk - 创建了 openwhisk 操作,但在来宾中显示为私有 java,因此无法调用它
尝试按照指示,我使用以下命令在 vagrant 图像中创建了一个动作(例如,在 vagrant ssh 之后):
我可以看到它是创建的:
但是 guest 没有被列为一个包:
并尝试通过 curl 调用操作失败并出现身份验证错误,但这似乎与请求标头无关。相反,我猜这与我注册的操作的私有 Java 特性有关。我相信这是因为我不能使用 wsk 命令来显示我注册的操作的摘要信息:
在注册我的操作时,首先创建一个包然后使用该包的正确顺序是否正确?
感谢您提供的任何建议。
java - OpenWhisk 操作打开文件获取文件未找到异常,但文件存在
在 vagrant VM 中通过 wsk 命令测试我的操作时,它成功获取了参数,但是在尝试打开文件时它抛出:
但是,当我列出文件时,它就在那里:
OpenWhisk(在本地运行)是否对允许打开文件的位置有沙盒限制?我的操作是 Java 操作,我正在尝试打开 FileReader。
引用的所有目录都归 vagrant:vagrant 所有,并且对所有目录都具有读取权限。
message-hub - OpenWhisk 消息包 - messageHubProduce 不稳定
我正在尝试使用“whisk.system/messaging”并尝试使用方法 messageHubProduce。
我创建了一个绑定到这个包,并尝试使用邮递员的简单调用。使用文档,我创建了一个简单的json并进行了调用,但是该方法确实不稳定。相同的调用有时会返回成功,有时会返回超时,有时会返回“没有可用的代理”。我现在这段代码的实现是在 python 上的。有没有人和我一样的症状?
这是我要发送的信息。
{
"topic": "mytopic",
"value": "MyMessage",
"blocking": false
}
这些是同一个调用的结果
messageHubProduce 446d59eb816b4b34a52374a6a24f3efe
{ "error": "The action exceeded its time limits of 60000 milliseconds." }
messageHubProduce 4213b6a495bc4c5aa7af9e299ddd8fcd
{ "success": true }
ibm-cloud - OpenWhisk 错误“操作产生的响应超出了允许的长度”
我有一个 OpenWhisk 操作(在 IBM Bluemix 上),它返回一个大的 json 文档。我收到一条错误消息,指出返回的文档大于 1048576 字节 (1MB)。有没有办法增加这个限制?
提前致谢——西蒙
swift - 跨 Swift OpenWhisk 操作共享代码
我正在 Swift 中尝试一些 OpenWhisk 操作。无论好坏,几乎所有 OpenWhisk 文档都是关于 javascript 的。在 javascript 中编写动作时,看起来您可以将代码打包为 npm 模块并将其要求/导入到任何动作中。使用 Swift,没有迹象表明有任何方法可以共享代码。我找到了一个示例项目(https://github.com/SwiftOnTheServer/DrinkChooser,来自不可估量的@rob-allen),它使用了在构建源代码文件之前对其进行预处理的巧妙技巧:
是否有官方方法可以跨操作共享代码?
非常感谢。
ibm-cloud - 如何在 Bluemix 中从 IoT 平台调用 OpenWhisk 操作
我们想知道如何在 Bluemix 中从 IoT 平台调用 OpenWhisk 操作。我们要完成的是:
- 从设备向物联网平台发送事件数据
- 订阅活动
- 调用 OpenWhisk 操作。
我们假设事件数据是 JSON 格式。我们知道我们可以开发一个订阅 IoT 平台上的事件的应用程序,例如:https ://console.bluemix.net/docs/services/IoT/applications/libraries/java.html#java 。但是,我们相信一定有更简单的方法。
如果我们查看 IoT 平台,我们可以创建一个动作,例如 IFTTT、Webhook 动作、将事件转发到云等。一般而言,您建议通过哪种方式从 IoT 平台调用 OpenWhisk 动作?
任何意见或建议都必须受到赞赏。谢谢你。
node.js - 回调问题 - 带有 Nodejs 运行时的 OpenWhisk
我正在 BlueMix OpenWHisk 中开发一个模块,在 Cloudant 提要更改后,我需要调用一个 url,它会在另一个平台上更新一些细节。我正在使用 nodejs 运行时。
请求是让我的操作等待 POST 请求的结果到上面提到的 url。如果 POST 成功,那么我应该执行下一个事件序列。
问题:
如何在执行下一个序列之前等待 POST 请求的结果?
是否可以等待并返回 POST 请求的结果。
发布我的代码
node.js - 我可以从 Bluemix Web UI 获取 OpenWhisk 授权令牌吗?
我已经部署了一个 OpenWhisk 操作,并通过request
节点应用程序中的包成功调用了它。Authorization
为了让事情正常工作,我必须在 HTTP 请求中传递一个标头。该标头的值是 base64 编码版本的userid:password
.
我可以在命令行计算该值,也可以使用 wsk 命令的 -v 选项来获取它,但是我在 Bluemix Web UI 的任何地方都找不到它。我正在整理一些培训材料,如果我能提供帮助,我宁愿不将我的用户发送到命令行。
有人知道如何通过 Bluemix UI 获得这个值吗?如果它在那里,我还没有看到它。
openwhisk - 如何使用 openWhisk 转发器组合器围绕云操作转发参数
我有这种情况,我想在尝试注册时检查用户的电子邮件是否已被使用,并在这种情况下抛出错误“用户已存在”。
这是我的序列的样子:
Input action
-> CloudnAnt EXE QUERY-Find
-> Validate email action
->CloudnAnt create User/Throw user already exists error action
我的 json 有效载荷如下所示:
{email: 'blahblah@domain.com', pass: "pass"}
问题是我无法控制 cloudnant 预定义操作的输出,因此在第二个操作“CloudnAnt EXE QUERY-Find User with email action”之后我丢失了有效负载
有没有办法在整个序列中保持我的输入?前向组合器可以解决这个问题吗?