AWS Step Functions
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

入门

本教程将向您介绍使用 AWS Step Functions 的基础知识。首先,使用 Pass 状态创建一个独立运行的简单状态机。Pass 状态表示无操作 (一个没有任何操作的指令)。

Step Functions 提供了各种预定义状态机作为模板。使用 Hello World 模板创建您的第一个状态机。

创建状态机

  1. Sign in to the AWS 管理控制台 and open the Step Functions console at https://console.amazonaws.cn/states/.

    选择 Get Started

  2. Define state machine (定义状态机) 页面上,选择 Templates (模板),然后选择 Hello world。检查 State machine definition (状态机定义) 和可视化工作流。

    
              Hello world。

    Step Functions 将自动填充状态机的名称。它还将使用状态机的 Amazon 状态语言描述填充 Code (代码) 窗格。

    此 JSON 文本定义了名为 HelloWorldPass 状态。有关更多信息,请参阅状态机结构

    { "Comment": "A Hello World example of the Amazon States Language using a Pass state", "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Pass", "Result": "Hello World!", "End": true } } }
  3. 使用 Visual Workflow 窗格中的图表检查您的 Amazon 状态语言 代码是否正确描述了状态机。

    如果您未看到该图表,请在 Visual Workflow 窗格中选择“ 
       refresh
    ”。

    
              可视工作流。
  4. 选择 Next (下一步)

  5. 创建或输入 IAM 角色。

    • 要为 Step Functions 创建新的 IAM 角色,请选择 Create an IAM role for me (为我创建 IAM 角色),然后输入角色的 Name (名称)

    • 如果您使用您的状态机的正确权限之前已创建 IAM 角色,请选择 Choose an existing IAM role (选择现有 IAM 角色)。从下拉列表中选择一个角色,或者提供该角色的 ARN。

    注意

    如果您删除了 Step Functions 创建的 IAM 角色,Step Functions 在以后无法重新创建它。同样,如果您修改角色 (例如,通过在 IAM 策略中从委托人删除 Step Functions),Step Functions 在以后无法还原其原始设置。

  6. 选择 Create state machine (创建状态机)

启动新的执行

在创建您的状态机后,可以开始执行。

  1. Helloworld 页面上,选择 New execution (新执行)Start execution (开始执行)(如果您之前已开始执行)。

  2. (可选) 为帮助您标识执行,您可以在 Enter an execution name 框中为执行指定一个 ID。如果未输入 ID,Step Functions 将自动生成一个唯一 ID。

    注意

    Step Functions 允许您创建包含非 ASCII 字符的状态机、执行和活动名称。这些非 ASCII 名称不适用于 Amazon CloudWatch。为确保您可以跟踪 CloudWatch 指标,请选择一个只使用 ASCII 字符的名称。

  3. New execution (新执行) 页面上选择 Start Execution (开始执行)

    此时将启动新的状态机执行,并显示一个说明正在运行的执行的新页面。

  4. (可选) 在 Execution Details 部分中,选择 Info 选项卡以查看 Execution Status 以及 StartedClosed 时间戳。

  5. 要查看执行结果,请选择 Output 选项卡。

    
              状态机结果。

更新状态机

您可以更新状态机以供将来执行。

注意

在 Step Functions 中,状态机更新具有最终一致性。几秒钟后,所有执行都将使用更新的定义和 roleArn。但在更新状态机后立即启动的执行可能会使用以前的状态机定义和 roleArn

  1. Helloworld 页面上,选择编辑

  2. Edit (编辑) 页面的 Code (代码) 窗格中,编辑状态机的 Amazon 状态语言描述。更新 Result 以读取 Hello World has been updated!

    { "Comment": "A Hello World example of the Amazon States Language using a Pass state", "StartAt": "HelloWorld", "States": { "HelloWorld": { "Type": "Pass", "Result": "Hello World has been updated!", "End": true } } }
  3. (可选)从 IAM role for executions (执行的 IAM 角色) 列表中选择一个新 AWS Identity and Access Management (IAM) 角色。

    注意

    您还可选择 Create new role (创建新角色) 以创建 IAM 角色。有关更多信息,请参阅为 AWS Step Functions 创建 IAM 角色

  4. 选择 Save (保存),然后选择 Start execution (开始执行)

  5. New execution (新执行) 页面上选择 Start Execution (开始执行)

  6. 要查看执行结果,请在 Visual workflow (可视工作流程) 中选择 HelloWorld 状态,并展开 Step details (步骤详细信息) 下的 Output (输出) 部分。

    
              执行输出

    注意

    输出文本将与您最近更新的状态机匹配。

后续步骤

既然您已经使用 Pass 状态创建了一个简单的状态机,请尝试以下操作: