2017-05-10 11 views
1

私はBluemix OpenWhiskにPythonアクションを書きました。このアクション内から別のアクション(実際にはパブリックパッケージへのバインディング)を呼び出す必要があります。私はそれを入力に応じて異なるパラメータでさまざまな回数呼び出す必要があるので、シーケンスはそれをしません。BluemixのPythonアクション内からOpenWhiskアクションを実行

How to invoke openwhisk action within openwhisk platform on bluemix?にはJavaScriptから行う方法が記載されていますが、OpenWhiskパッケージはPythonでは利用できないようです。

答えて

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のスワッガードキュメントはhereです。

これを簡単にするためにPythonクライアントライブラリを作成するには、open issueがあります。

関連する問題