python - 从 Bluemix 上的 Python 操作中执行 OpenWhisk 操作

标签 python ibm-cloud openwhisk

我已经在 Bluemix OpenWhisk 上编写了一个 Python 操作,并且我需要从此操作中调用另一个操作(实际上是到公共(public)包的绑定(bind))。序列无法做到这一点,因为我需要根据输入使用不同的参数调用它不同的次数。

How to invoke openwhisk action within openwhisk platform on bluemix?提到如何从 JavaScript 执行此操作,但 OpenWhisk 包似乎不适用于 Python。

最佳答案

可以使用对 platform API 的 HTTP 请求来调用操作。 OpenWhisk 中的 Python 运行时包括 requests用于进行 HTTP 调用的库。

以下是调用同一命名空间中的另一个(子级)的操作示例。

import os 
import requests

APIHOST = os.environ.get('__OW_API_HOST')
NAMESPACE = os.environ.get('__OW_NAMESPACE')
USER_PASS = os.environ.get('__OW_API_KEY').split(':')

def main(params):
    action = 'child'
    url = APIHOST + '/api/v1/namespaces/' + NAMESPACE + '/actions/' + action
    response = requests.post(url, data=params, params={'blocking': 'true'}, auth=(USER_PASS[0], USER_PASS[1]))
    print(response.json())

    return {"text": "invoked!"}

完整 API 的 Swagger 文档已可用 here .

有一个open issue创建一个 Python 客户端库以简化此操作。

关于python - 从 Bluemix 上的 Python 操作中执行 OpenWhisk 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43887752/

相关文章:

python - ImportError [E048] 无法从 spacy.lang 导入语言 en

python - 将 JSON 模式转换为 python 类

java - BlueMix 中的新 Relic 应用程序名称

android - 通过 Bluemix 将 TI SensorTag 连接到 IBM IoT Foundation 时 userID() 无效

docker - 无法在 openwhisk 设置中列出 kafka 主题

python - 在文本中查找对称词

python - 如何使用 Fabric 和 Python 与远程主机上的安装程序交互

javascript - ibm bluemix nodejs 和 websockets 在客户端持续关闭

docker - 为什么开源无服务器框架(如 OpenWhisk)需要编排器(如 Kubernetes)

node.js - 60 秒后阻止操作调用超时 - 如何访问结果?