本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Step Functions API 操作继续执行新操作(推荐)
Step Functions 可以通过调用自己的 API 来启动工作流程执行集成服务. 我们建议您使用此方法,以避免超出长时间运行的执行的服务配额。
第 1 步:创建长时间运行的状态机
创建要从中启动的长时间运行的状态机Task
不同状态机的状态。在本教程中,使用使用 Lambda 函数的状态机.
确保将此状态机的名称和 Amazon 资源名称复制到文本文件中,以备日后使用。
第 2 步:创建状态机来调用 Step Functions API 操作
要从启动工作流程执行Task
state
-
打开Step Functions ct
然后选择创建状态机. -
在选择创作方法页面,保留默认选择并选择下一页.
-
来自的操作选项卡,拖动StartExecutionAPI 操作并将其拖放到标记为空的状态下将第一个状态拖到此处.
-
选择StartExecution陈述并在中执行以下操作配置选项卡:
-
将状态重命名为
Start nested execution
. -
对于集成类型,选择Amazon开发工具包——全新从下拉列表中。
-
中API 参数,对于
StateMachineArn
,输入状态机的 Amazon 资源名称。例如,输入的 ARN使用 Lambda 状态机. -
对于
Input
,将现有占位符文本替换为以下值:"Comment": "Starting workflow execution using a Step Functions API action"
-
确保您的输入已输入API 参数看上去类似下面这样:
{ "StateMachineArn": "arn:aws:states:us-east-2:123456789012:stateMachine:
LambdaStateMachine
", "Input": { "Comment": "Starting workflow execution using a Step Functions API action", "AWS_STEP_FUNCTIONS_STARTED_BY_EXECUTION_ID.$": "$$.Execution.Id" } -
选择 Next(下一步)。
-
-
(可选)查看您的工作流程中自动生成的 Amazon States Language 定义,然后选择下一页.
-
在指定状态机设置页面上,为状态机输入名称,例如
,然后选择创建状态机.ParentStateMachine
第 3 步:更新 IAM 策略
为了确保您的状态机具有开始执行的权限使用 Lambda 函数的状态机,您需要将内联策略附加到状态机的 IAM 角色。有关更多信息,请参阅 。嵌入内联策略在里面IAM 用户指南.
-
在标有您的状态机名称的页面上 (
),选择IAM 角色 ARN导航到 IAM角色状态机页面。ParentStateMachine
-
分配相应的权限给
状态机开始执行另一台状态机的 IAM 角色。要分配权限,请执行以下操作:ParentStateMachine
-
在 IAM角色页面,选择添加权限,然后选择创建内联策略.
-
在创建策略页面上,选择 JSON 选项卡。
-
将现有文本替换为以下策略。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:
us-east-2
:123456789012
:stateMachine:LambdaStateMachine
" ] } ] } -
选择Review policy(查看策略)。
-
为策略指定名称,然后选择创建策略.
-
第 4 步:启动新的执行
-
在
ParentStateMachine
页面,选择开始执行.这些区域有:开始执行对话框出现。
-
选择 Start execution (开始执行)。
-
打开
LambdaStateMachine
状态机页面并注意由触发的新执行ParentStateMachine
.