将 Amazon Step Functions 执行作为集成服务进行管理 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

将 Amazon Step Functions 执行作为集成服务进行管理

Step Functions 与其自己的 API 集成作为服务集成。这允许 Step Functions Contification 直接从正在运行的执行的任务状态开始新的状态机执行。构建新的工作流时,请使用嵌套工作流执行降低主要工作流的复杂性并重用常用流程。

有关更多信息,请参阅下列内容:

支持的 Step Functions API 和语法:

下面包括一个 Task 状态,此状态开始执行另一个状态机并等待其完成。

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.sync:2", "Parameters":{ "Input":{ "Comment": "Hello world!" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

下面包括一个 Task 状态,此状态开始执行另一个状态机。

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution", "Parameters":{ "Input":{ "Comment": "Hello world!" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

下面这个Task状态回调服务集成模式。

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.waitForTaskToken", "Parameters":{ "Input":{ "Comment": "Hello world!", "token.$": "$$.Task.Token" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

要将嵌套的工作流执行与启动它的父执行相关联,请传递一个特殊命名的参数,该参数包括从上下文对象中提取的执行 ID。启动嵌套执行时,使用名为 AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID 的参数。通过将 .$ 附加到参数名称并在上下文对象中通过 $$.Execution.Id 引用 ID 来传递执行 ID。有关更多信息,请参阅 访问上下文对象

{ "Type":"Task", "Resource":"arn:aws:states:::states:startExecution.sync", "Parameters":{ "Input":{ "Comment": "Hello world!", "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" }, "StateMachineArn":"arn:aws:states:us-east-1:123456789012:stateMachine:HelloWorld", "Name":"ExecutionName" }, "End":true }

嵌套状态机返回以下内容:

资源 输出
startExecution.sync 字符串
startExecution.sync:2 JSON

两者都将等待嵌套状态机完成,但它们返回不同的 Output 格式。例如,如果您创建一个返回对象的 Lambda 函数{ "MyKey": "MyValue" },您将得到以下响应:

对于 startExecution.sync:

{ <other fields> "Output": "{ \"MyKey\": \"MyValue\" }" }

对于 startExecution.sync:2:

{ <other fields> "Output": { "MyKey": "MyValue" } }

有关在将 Step Functions 他Amazon服务,请参阅集成服务的 IAM 策略