问题标签 [ibm-cloud-functions]

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.

0 投票
3 回答
1142 浏览

curl - 将 curl 与 OpenWhisk 一起使用

我正在尝试使用 IBM OpenWhisk。它有自己的 CLI,但我想使用curl.

如何通过 curl 或类似工具调用 OpenWhisk,如何进行身份验证?

0 投票
1 回答
434 浏览

ibm-cloud - 在 OpenWhisk 中创建包操作,调用失败并显示错误消息

我正在按照 OpenWhisk 文档中的示例创建一个新的包操作,详见此处

运行该wsk action invoke步骤,平台向我返回一条调用错误消息。

怎么了?

0 投票
1 回答
193 浏览

ibm-cloud - 如何中断 OpenWhisk 中的序列流?

我正在 Cloudant 数据库上编写一个触发器,该触发器应将每个新文档转换为 Slack 通知。

我创建了两个动作序列:一个是准备 Slack 消息,一个是发送它。为了发送 Slack 消息,我使用了 IBM Bluemix OpenWhisk 提供的包操作。

Cloudant 更改提要 --> 准备文本 --> Slack Post --> 响应

由于触发器向我发送了所有 Cloudant 事件(新的/修改的/删除的文档),我怎么能只将 NEW 文档事件转发给 Slack 而忽略诸如已删除文档之类的事情。

0 投票
1 回答
282 浏览

ibm-cloud - 来自 OpenWhisk 的 cloudant 查询的安全性

我正在Bluemix 上构建一个带有Cloudant 数据存储的Angular SPA。

由于 OpenWhisk 的 Bluemix 实现不使用 VCAP 服务,因此我看到了 3 个选项来使用 OpenWhisk 作为我的 api 提供程序来为我的 Angular 应用程序进行云查询:

  1. 遵循此处所示的传递凭证模式:https ://github.com/IBM-Bluemix/openwhisk-visionapp (顺便说一句非常有趣的方法)
  2. 包括我在本地运行的凭据,如下所示:https ://github.com/IBM-Bluemix/nodejs-cloudant/blob/master/app.js
  3. 使用此处所示的 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 引用的文章

我忽略了什么吗?

谢谢!

0 投票
2 回答
174 浏览

ibm-cloud - 您如何使用/参考 IBM Bluemix OpenWhisk 中的库?

截至今天,在 IBM Bluemix OpenWhisk 服务的 IBM Bluemix 文档中,我找不到任何关于如何使用库的线索。

我怎么会错过所有应用程序都需要一个库这一显而易见的事实,因此为什么在 OpenWhisk 文档中至少没有提到这一点?

如果库被称为其他名称或该概念不适用于通常的方式(例如库可能需要转换为“OpenWhisk 包”?),OpenWhisk 文档应该对“库”一词/术语/概念进行说明.

0 投票
1 回答
173 浏览

python - 在 IBM Cloud Functions 的 virtualenv 中使用 PIL 时出错:ModuleNotFoundError: No module named 'PIL'

我正在尝试使用 PIL 在 Python 中定义 IBM Cloud Function。

我使用 Pycharm 进行开发。在 Pycharm 中,site-packages在我的 Python 运行时下,我看到PILPillow-4.3.0:dist-info. 当我在 Pycharm 中本地运行我的代码时,它运行良好。

virtualenv使用相同的 Python 运行时和我的代码构建了一个,以便包含不属于 Cloud Functions Python 运行时的依赖项。检查virtualenv,我可以看到相同的库:

但是,当我使用此运行时将我的代码作为云函数执行virtualenv时,我看到一个错误:ModuleNotFoundError: No module named 'PIL'.

我认为错误在于我如何构建 my virtualenv,但我不知所措,因为看起来那里有相同的库。

0 投票
1 回答
168 浏览

node.js - OpenWhisk 返回整个响应对象,而不仅仅是数据

我有一个返回响应对象的 OpenWhisk 操作,因为我希望能够控制标头和 HTTP 状态代码。我的操作返回如下内容:

我从命令行将操作部署在一个包中:

并将其作为 API 在 IBM Cloud Functions 上公开:

但是当我使用 访问 API 调用时curl,我得到了整个响应对象,而不仅仅是数据:

我期待得到公正{ x: 1 }

我需要做什么来解决这个问题?

0 投票
1 回答
433 浏览

cloud - 60 秒后 ibm bluemix 超时

我尝试循环运行 1000 次,当程序达到 60 秒时输入此错误

示例代码

错误仅在达到 60 秒时出现。我尝试重复次数少于 60 秒并正常运行

0 投票
1 回答
482 浏览

openwhisk - 从 OpenWhisk (IBM Cloud Function) 操作返回二进制 HTTP 响应

我想在 IBM Cloud Function 中使用 OpenWhisk 通过 HTTP 返回驻留在(IBM Cloud)ObjectStorage 中的二进制文件。

这可能吗?在我看来,OpenWhisk 似乎只支持 JSON 作为操作的结果。

这是我正在使用的代码(get_object_storage_file 返回二进制数据):

0 投票
2 回答
198 浏览

python-3.x - bluemix 上的 python 调度程序

我在 python 中使用 schedule 包,每 15 秒调用一次函数,并希望在 IBM Bluemix 上运行此代码。已使用 -no-route 选项将应用程序推送到 Bluemix,尽管应用程序已部署到 Bluemix,但 Bluemix 无法启动应用程序

以下是我尝试过的示例代码

此应用程序的 Bluemix 日志中的消息:

过了一会儿,我在日志中看到了这条消息

Python版本:3.4.4