问题标签 [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.
python - 如何使 Python Docker 映像成为 OpenWhisk 操作?
我有一个运行 Python 程序的 Docker 映像。我现在想将此容器作为 OpenWhisk 操作运行。我该怎么做呢?
我见过其他编程语言中的几个示例,以及 C 和 Node.js 中出色的黑盒框架方法。但我想更多地了解 OpenWhisk 如何与容器交互,如果可能的话,只使用 Python。
ibm-cloud - 如何在 Bluemix 中使用 OpenWhisk 设置 docker 操作?
我在 Bluemix 上测试 OpenWhisk。我想做的非常非常简单。我有一个有效的 js 脚本(它只是一个 console.log)。我有一个 Dockerfile 正在制作一个 docker .. 当我运行我的 docker 时,我可以看到我的 console.log \o/(我知道这太棒了)
然后我创建我的动作......我尝试从 Bluemix UI 运行它,我得到了这个:
未能调用操作 XXX/XXXX:容器哈希或名称应在makeContainer
.
这到底是什么意思?我在上面找不到任何东西。
ps:如果你知道我在哪里可以找到一些关于如何使用 docker 容器进行操作的真实文档,我会非常高兴 :)。
非常感谢你的帮助。
编辑:最后的问题是我试图从一个私人码头回购。我不得不说错误信息不是明确的 x)。谢谢你的帮助。
ibm-cloud - openwhisk 教程之后的错误消息
我正在关注以下教程:https ://new-console.ng.bluemix.net/docs/openwhisk/openwhisk_actions.html
教程第 3 步的问题:
复制粘贴命令:
wsk action invoke --blocking --result hello --param name 'Bernie' --param place 'Washington, DC'
得到错误:
运行教程的前面步骤很好
action - openwhisk中动作序列的调用流程是怎样的?
我对动作序列的调用流程有点困惑。我阅读了代码,它显示每个序列都有一个主动作,它调用该序列中的每个动作。在每次调用中,主要操作都会向 apihost 发布一个帖子,这是否意味着整个流程(从控制器->kafka->dispather->invoker->container)将一次又一次地进行?
ibm-cloud - 如何中断 OpenWhisk 中的序列流?
我正在 Cloudant 数据库上编写一个触发器,该触发器应将每个新文档转换为 Slack 通知。
我创建了两个动作序列:一个是准备 Slack 消息,一个是发送它。为了发送 Slack 消息,我使用了 IBM Bluemix OpenWhisk 提供的包操作。
Cloudant 更改提要 --> 准备文本 --> Slack Post --> 响应
由于触发器向我发送了所有 Cloudant 事件(新的/修改的/删除的文档),我怎么能只将 NEW 文档事件转发给 Slack 而忽略诸如已删除文档之类的事情。
python - 在已部署的 bluemix 应用程序上上传图像
我需要制作一个应用程序,它等待图像上传,然后执行一些代码来处理它,然后等待新图像。该应用程序必须部署在 bluemix 上并在那里持续运行。
我对网络编程一无所知,因此欢迎您推荐的所有文档。
我的主要问题是如何在我当前的应用程序中创建一个将替换它的 post 方法:
以及一种让应用程序重复执行此操作的方法。
ubuntu - 本地 Ubuntu 部署上的 OpenWhisk 操作失败
我根据以下文档在本地 Ubuntu 机器上部署了 OpenWhisk:https ://github.com/openwhisk/openwhisk/blob/master/tools/ubuntu-setup/README.md 。但是,当我尝试使用命令调用示例操作时:
我收到以下错误:
我将我的 apihost 设置为 172.17.0.1(Docker 边缘主机),并且我使用来自 ansible/files/auth.guest 的身份验证的来宾命名空间。我想一些服务应该在 Docker 中运行,以便它会在 443 端口上侦听,但我不知道哪些服务以及它们为什么没有运行。
如果有任何帮助,我将不胜感激。
ibm-cloud - 在 APIConnect 中设置身份验证标头
我正在试验 APIConnect,并希望能够调用 OpenWhisk 操作。据我所知,为了做到这一点,我需要使用我的令牌设置 Authorization 标头。我在调用和代理策略下看到的唯一选项是使用基本身份验证。
不管 OpenWhisk 是什么,为了让 APIConnect 成为对我来说可用的产品,我需要能够设置标题。
ibm-cloud - 来自 OpenWhisk 的 cloudant 查询的安全性
我正在Bluemix 上构建一个带有Cloudant 数据存储的Angular SPA。
由于 OpenWhisk 的 Bluemix 实现不使用 VCAP 服务,因此我看到了 3 个选项来使用 OpenWhisk 作为我的 api 提供程序来为我的 Angular 应用程序进行云查询:
- 遵循此处所示的传递凭证模式:https ://github.com/IBM-Bluemix/openwhisk-visionapp (顺便说一句非常有趣的方法)
- 包括我在本地运行的凭据,如下所示:https ://github.com/IBM-Bluemix/nodejs-cloudant/blob/master/app.js
- 使用此处所示的 http API:https ://docs.cloudant.com/api.html (突出显示传递凭据的安全问题。
由于我的服务不是为了发布(它是为了我自己的应用程序),我认为选项 2 是我的“万恶之源”选择。我错过了什么吗?我的想法是,虽然对更改很脆弱,但它是最安全的,因为凭据不会公开传递。无服务器基础设施将不得不被黑客入侵......
提前致谢!
(冗长)更新:(提前道歉)
我已经走得更远了,但仍然没有答案 - 现在被困在执行中。
澄清一下,我的目标是让应用程序从 Angular Client -> OpenWhisk -> Cloudant 流出。
在这个最简单的用例中,我想传递一个 startTime 参数和一个 endTime 参数,让 OpenWhisk 获取该时间范围内的所有记录以及所有字段,然后传回选定的字段。在我的示例中,我有经过修改的 GeoJSON 格式的 USGS 地震数据。
根据以下文章中的信息,我得出结论,我可以调用 wsk 命令行操作并使用我在 Javascript 函数中设置的绑定,因此不会将我的凭据传递给数据库。这给了我一定程度的安全性(仍然质疑我的 OpenWhisk 操作的其余端点),但我认为,一旦我的示例运行起来,我就会考虑其中的那一部分。
我的命令行(有效):
wsk action invoke /my@orgname.com_mybluemixspace/mycfAppName/exec-query-find --blocking --result --param dbname perils --param query {\"selector\":{\"_id\":{\"$gt\":0},\"properties.time\":{\"$gt\":1484190609500,\"$lt\":1484190609700}}}
这成功返回以下内容:
{
"docs": [
{
"_id": "eq1484190609589",
"_rev": "1-b4fe3de75d9c5efc0eb05df38f056a65",
"dbSaveTime": 1.484191201099e+12,
"fipsalpha": "AK",
"fipsnumer": "02",
"geometry": {
"coordinates": [
-149.3691,
62.5456,
0
],
"type": "Point"
},
"id": "ak15062242",
"properties": {
"alert": null,
"cdi": null,
"code": "15062242",
"detail": "http://earthquake.usgs.gov/earthquakes/feed/v1.0/detail/ak15062242.geojson",
"dmin": null,
"felt": null,
"gap": null,
"ids": ",ak15062242,",
"mag": 1.4,
"magType": "ml",
"mmi": null,
"net": "ak",
"nst": null,
"place": "45km ENE of Talkeetna, Alaska",
"rms": 0.5,
"sig": 30,
"sources": ",ak,",
"status": "automatic",
"time": 1.484190609589e+12,
"title": "M 1.4 - 45km ENE of Talkeetna, Alaska",
"tsunami": 0,
"type": "earthquake",
"types": ",geoserve,origin,",
"tz": -540,
"updated": 1.484191127265e+12,
"url": "http://earthquake.usgs.gov/earthquakes/eventpage/ak15062242"
},
"type": "Feature"
}
]
}
我在 OpenWhisk(如下)中创建的操作返回内部服务器错误。我将输入值传递为
{
"startTime": "1484161200000",
"endTime": "1484190000000"
}
这是我的操作的代码:
以下是我研究的链接:http:
//infrastructuredevops.com/08-17-2016/news-openwhisk-uniq.html
有用,因为使用了 exec-query-find 和选择器语法用法,但也很酷我需要为填充数据而构建的更新功能!
https://www.raymondcamden.com/2016/12/23/going-serverless-with-openwhisk
@csantanapr 引用的文章
我忽略了什么吗?
谢谢!