使用 Step Functions API 操作继续执行新操作(推荐) - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

使用 Step Functions API 操作继续执行新操作(推荐)

Step Functions 可以通过调用自己的 API 来启动工作流程执行集成服务. 我们建议您使用此方法,以避免超出长时间运行的执行的服务配额。

第 1 步:创建长时间运行的状态机

创建要从中启动的长时间运行的状态机Task不同状态机的状态。在本教程中,使用使用 Lambda 函数的状态机.

注意

确保将此状态机的名称和 Amazon 资源名称复制到文本文件中,以备日后使用。

第 2 步:创建状态机来调用 Step Functions API 操作

要从启动工作流程执行Taskstate
  1. 打开Step Functions ct然后选择创建状态机.

  2. 选择创作方法页面,保留默认选择并选择下一页.

  3. 来自的操作选项卡,拖动StartExecutionAPI 操作并将其拖放到标记为空的状态下将第一个状态拖到此处.

  4. 选择StartExecution陈述并在中执行以下操作配置选项卡:

    1. 将状态重命名为Start nested execution.

    2. 对于集成类型,选择Amazon开发工具包——全新从下拉列表中。

    3. API 参数,对于StateMachineArn,输入状态机的 Amazon 资源名称。例如,输入的 ARN使用 Lambda 状态机.

    4. 对于Input,将现有占位符文本替换为以下值:

      "Comment": "Starting workflow execution using a Step Functions API action"
    5. 确保您的输入已输入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" }
    6. 选择 Next(下一步)。

  5. (可选)查看您的工作流程中自动生成的 Amazon States Language 定义,然后选择下一页.

  6. 指定状态机设置页面上,为状态机输入名称,例如ParentStateMachine,然后选择创建状态机.

第 3 步:更新 IAM 策略

为了确保您的状态机具有开始执行的权限使用 Lambda 函数的状态机,您需要将内联策略附加到状态机的 IAM 角色。有关更多信息,请参阅 。嵌入内联策略在里面IAM 用户指南.

  1. 在标有您的状态机名称的页面上 (ParentStateMachine),选择IAM 角色 ARN导航到 IAM角色状态机页面。

  2. 分配相应的权限给ParentStateMachine状态机开始执行另一台状态机的 IAM 角色。要分配权限,请执行以下操作:

    1. 在 IAM角色页面,选择添加权限,然后选择创建内联策略.

    2. 创建策略页面上,选择 JSON 选项卡。

    3. 将现有文本替换为以下策略。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "states:StartExecution" ], "Resource": [ "arn:aws:states:us-east-2:123456789012:stateMachine:LambdaStateMachine" ] } ] }
    4. 选择Review policy(查看策略)

    5. 为策略指定名称,然后选择创建策略.

第 4 步:启动新的执行

  1. ParentStateMachine页面,选择开始执行.

    这些区域有:开始执行对话框出现。

  2. 选择 Start execution (开始执行)

  3. 打开LambdaStateMachine状态机页面并注意由触发的新执行ParentStateMachine.