快速使用
下文将以创建一个流程,发起一次执行并获取执行详情为例展示如何使用 Python SDK 调用 Serverless 工作流服务。
请求方式
# encoding: utf-8
import time
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkfnf.request.v20190315 import CreateFlowRequest
from aliyunsdkfnf.request.v20190315 import StartExecutionRequest
from aliyunsdkfnf.request.v20190315 import DescribeExecutionRequest
from aliyunsdkfnf.request.v20190315 import GetExecutionHistoryRequest
flow_definition_type = "FDL"
flow_name = "xxx"
flow_definition = "xxx"
flow_description = "some descriptions"
role_arn = "acs:ram::${Your_Account_ID}:${Your_Role}"
execution_name = "xxx"
def create_flow(fnf_cli):
request = CreateFlowRequest.CreateFlowRequest()
request.set_Type(flow_definition_type)
request.set_Description(flow_description)
request.set_Definition(flow_definition)
request.set_RoleArn(role_arn)
request.set_Name(flow_name)
return fnf_cli.do_action_with_exception(request)
def start_execution(fnf_cli):
request = StartExecutionRequest.StartExecutionRequest()
request.set_FlowName(flow_name)
request.set_ExecutionName(execution_name)
return fnf_cli.do_action_with_exception(request)
def describe_execution(fnf_cli):
request = DescribeExecutionRequest.DescribeExecutionRequest()
request.set_FlowName(flow_name)
request.set_ExecutionName(execution_name)
return fnf_cli.do_action_with_exception(request)
def get_execution_history(fnf_cli):
request = GetExecutionHistoryRequest.GetExecutionHistoryRequest()
request.set_FlowName(flow_name)
request.set_ExecutionName(execution_name)
return fnf_cli.do_action_with_exception(request)
创建客户端并利用上述函数发起一系列调用
说明 如果您需要不加改造进行调试的话,请将下述函数与上述请求方式代码块置于同一个文件中,避免在 import 时报错。
def main():
# 创建 AcsClient 实例
client = AcsClient(
"",
"",
""
)
try:
create_resp = create_flow(client)
print(create_resp)
start_resp = start_execution(client)
print(start_resp)
time.sleep(1)
desc_resp = describe_execution(client)
print(desc_resp)
get_resp = get_execution_history(client)
print(get_resp)
except ServerException as e:
print(e.get_request_id())
if __name__ == '__main__':
main()