【问题标题】:Execute an OpenWhisk Action from within a Python Action on Bluemix在 Bluemix 上的 Python 操作中执行 OpenWhisk 操作
【发布时间】:2017-05-11 10:10:20
【问题描述】:
【问题讨论】:
标签:
python
ibm-cloud
openwhisk
【解决方案1】:
可以使用对platform API 的HTTP 请求来调用操作。 OpenWhisk 中的 Python 运行时包括用于进行 HTTP 调用的 requests 库。
这是一个在同一命名空间中调用另一个 (child) 的操作示例。
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 客户端库来简化此操作。