

 AWS Cloud9 不再向新客户提供。 AWS Cloud9 的现有客户可以继续正常使用这项服务。[了解详情](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# AWS Step Functions 使用 AWS 工具包
<a name="bulding-stepfunctions"></a>

该 AWS 工具包为提供支持[AWS Step Functions](https://aws.amazon.com/step-functions/)。Step Functions 允许您创建状态机，为支持关键业务应用程序的 AWS Lambda 函数和其他 AWS 服务定义工作流程。

您可以使用该 AWS 工具包对 Step Functions 执行以下操作：
+ 创建并发布状态机，它是由各个步骤组成的工作流。
+ 下载定义状态机工作流的文件。
+ 使用已输入或选择的输入运行状态机工作流程。

**Topics**
+ [先决条件](#bulding-stepfunctions-pre)
+ [创建和发布状态机](#state-machine-create)
+ [在 T AWS oolkit 中运行状态机](#starting-stepfunctions)
+ [下载状态机定义文件并可视化其工作流](#sfn-download)

## 先决条件
<a name="bulding-stepfunctions-pre"></a>

Step Functions 可以运行代码和访问 AWS 资源（例如调用 Lambda 函数）。为了保持安全性，您必须使用 IAM 角色为 Step Functions 授予对这些资源的访问权限。

借 AWS 助 Toolkit，您可以利用自动生成的 IAM 角色，这些角色对您创建状态机的 AWS 区域有效。要为状态机创建自己的 IAM 角色，请参阅*AWS Step Functions 开发人员指南*中的[如何 AWS Step Functions 使用 IAM](https://docs.aws.amazon.com/step-functions/latest/dg/procedure-create-iam-role.html)。

## 创建和发布状态机
<a name="state-machine-create"></a>

使用 AWS Toolkit 创建状态机时，您需要选择一个为业务案例定义工作流程的入门模板。然后，您可以编辑或替换该模板以满足您的特定需求。有关在表示状态机结构的文件中定义状态机的详细信息，请参阅 *AWS Step Functions 开发人员指南*中的 [Amazon 状态语言](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)。

1. 在 **AWS Explorer** 窗格中，打开上下文（右击）菜单以访问 **Step Functions**，然后选择 **Create a new Step Function state machine**（新建 Step Function 状态机）。

1. 在命令面板中，为状态机的工作流程选择入门模板。

1. 接下来，为定义状态机的 Amazon 状态机 (ASL) 文件选择格式。

   打开一个编辑器以显示定义状态机工作流的 ASL 文件。
**注意**  
有关编辑 ASL 文件以自定义工作流程的信息，请参阅 [State Machine Structure](https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-state-machine-structure.html)（状态机结构）。

1. 在 ASL 文件中，选择 “**发布到 Step Fun** ctions”，将状态机添加到 AWS 云端。
**注意**  
您也可以在 ASL 文件中选择 **Render graph**（渲染图）来显示状态机工作流的可视化表示。  
![显示如何选择“发布到 Step Functions”的示意图](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/publish-stepfunction.png)

1. 在命令面板中，选择一个 AWS 区域来托管您的步进函数。

1. 接下来，您可以选择创建新的步骤函数，或选择更新现有的函数。

------
#### [ Quick Create  ]

   此选项允许您使用 step [-functions/latest/dg/concepts-standard-vs-express .html 从 ASL 文件中创建新的步骤](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-standard-vs-express.html)函数。系统要求您指定以下内容：
   + 一个 IAM 角色，允许您的步骤函数运行代码和访问 AWS 资源。（您可以选择一个自动生成的 IAM 角色，该角色对您创建状态机的 AWS 区域有效。）
   + 新函数的名称。

   您可以在 T AWS oolkit 输出选项卡中检查状态机是否已成功创建并获取其 ARN。

------
#### [ Quick Update ]

   如果 AWS 区域中已经存在状态机，则可以选择一个状态机使用当前 ASL 文件进行更新。

   您可以在 T AWS oolkit 输出选项卡中检查状态机是否已成功更新并获取其 ARN。

------

   创建状态机之后，它会显示在 **AWS Explorer** 窗格中的 **Step Functions** 下方。如果没有立即出现，请选择 **Toolkit**（工具包）菜单，**Refresh Explorer**（刷新 Explorer）。

## 在 T AWS oolkit 中运行状态机
<a name="starting-stepfunctions"></a>

您可以使用 AWS Toolkit 来运行远程状态机。运行状态机接收 JSON 文本作为输入，并将该输入传递给工作流中的第一个状态。各个状态将接收输入形式的 JSON 并通常将 JSON 以输出形式传递到下一个状态。有关更多信息，请参阅 [Step Functions 中输入和输出的处理](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-input-output-filtering.html)。

1. 在 **AWS Explorer** 窗格中，请选择 **Step Functions**。然后打开特定状态机的上下文（右键单击）菜单，并选择 **Start Execution**（开始执行）。

1. 在 **Start Execution**（开始执行）窗格中，通过直接在下面的字段中输入文本或从本地设备上传文件，为状态机的工作流添加 JSON 格式的输入。

1. 选择 **Execute**（执行）。

    AWS Toolkit 输出选项卡显示工作流已启动的确认信息以及进程 ID 的 ARN。您可以使用该进程 ID 在 AWS Step Functions 控制台中检查工作流程是否成功运行。您还可以查看工作流程开始和结束的时间戳。

## 下载状态机定义文件并可视化其工作流
<a name="sfn-download"></a>

下载状态机意味着您下载一个包含表示该状态机结构的 JSON 文本的文件。然后，您可以编辑此文件以创建新状态机或更新现有状态机。有关更多信息，请参阅 *AWS Step Functions 开发人员指南*中的 [Amazon 状态语言](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html)。

1. 在 **AWS Explorer** 窗格中，请选择 **Step Functions**。然后打开特定状态机的上下文（右键单击）菜单，并选择 **Download Definition**（下载定义）。
**注意**  
上下文菜单还提供了若干选项，可**复制名称**和**复制 ARN**。

1. 在 **Save**（保存）对话框中，选择您在环境中存储已下载状态机文件的文件夹，然后选择 **Save**（保存）。

   定义状态机工作流程的 JSON 格式文件将显示在编辑器中。

1. 要显示工作流的可视化表示，请选择 **Render graph**（渲染图）。

   窗口显示一个流程图，其中显示状态机工作流程中的状态顺序。  
![状态机工作流程的可视化表示](http://docs.aws.amazon.com/zh_cn/cloud9/latest/user-guide/images/render-graph.png)