2017-05-10 7 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이 있습니다.