

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

# 使用 Step Functions 的初学者模板部署状态机
<a name="starter-templates"></a>

要为各种示例用例和模式部署状态机，您可以在 [AWS Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)中选择以下初学者模板之一。这些入门模板是自动创建工作流程原型和定义的 ready-to-run示例项目，以及该项目的所有相关AWS资源。

您可以使用这些示例项目按原样部署和运行，也可以使用工作流原型在其基础上进行构建。如果在这些项目的基础上进行构建，Step Functions 会创建工作流原型，但不会部署工作流定义中列出的资源。

部署示例项目时，它们会提供一个功能完备的状态机，并为状态机的运行创建相关资源。创建示例项目时，Step Functions 使用CloudFormation来创建状态机引用的相关资源。

**Topics**
+ [使用 Amazon ECS 和 Amazon SNS 管理容器任务](sample-project-container-task-notification.md)
+ [使用 Lambda、DynamoDB 和 Amazon SQS 传输数据记录](sample-project-transfer-data-sqs.md)
+ [使用 Lambda 和 AWS Batch 轮询任务状态](sample-project-job-poller.md)
+ [使用 Lambda 和 Amazon SNS 创建任务计时器](task-timer-sample.md)
+ [使用 Amazon SQS、Amazon SNS 和 Lambda 创建回调模式示例](callback-task-sample-sqs.md)
+ [管理 Amazon EMR 任务](sample-emr-job.md)
+ [运行 EMR Serverless 作业](sample-emr-serverless-job.md)
+ [使用 Step Functions 和 Lambda 启动工作流程中的工作流程](sample-start-workflow.md)
+ [在 Step Functions 中处理具有 Map 状态的队列中的数据](sample-map-state.md)
+ [使用分布式 Map 处理来自 Amazon S3 的 CSV 文件](sample-dist-map-csv-process.md)
+ [使用分布式 Map 处理 Amazon S3 存储桶中的数据](sample-dist-map-s3data-process.md)
+ [使用 Amazon SageMaker AI 训练机器学习模型](sample-train-model.md)
+ [在 SageMaker AI 中调整机器学习模型的超参数](sample-hyper-tuning.md)
+ [使用 Amazon Bedrock 执行 AI 提示串接](sample-bedrock-prompt-chaining.md)
+ [使用 Step Functions 快速工作流程处理来自 Amazon SQS 的大量消息](sample-project-express-high-volume-sqs.md)
+ [使用标准和快速工作流程执行选择性检查点操作](sample-project-express-selective-checkpointing.md)
+ [使用 Step Functions 构建 AWS CodeBuild 项目](sample-project-codebuild.md)
+ [使用 Amazon SageMaker AI 预处理数据并训练机器学习模型](sample-preprocess-feature-transform.md)
+ [使用 Step Functions 编排 AWS Lambda 函数](sample-lambda-orchestration.md)
+ [启动 Athena 查询并发送结果通知](sample-athena-query.md)
+ [使用 Athena 按顺序并行执行查询](run-multiple-queries.md)
+ [使用 AWS Glue 爬网程序查询大型数据集](sample-query-large-datasets.md)
+ [使用 AWS Glue 和 Athena 保持更新目标表中的数据](sample-keep-data-updated.md)
+ [使用节点组创建和管理 Amazon EKS 集群](sample-eks-cluster.md)
+ [与 API Gateway 管理的 API 进行交互](sample-apigateway-workflow.md)
+ [使用 API Gateway 集成调用在 Fargate 上运行的微服务](sample-apigateway-ecs-workflow.md)
+ [向 EventBridge 事件总线发送自定义事件](sample-eventbridge-custom-event.md)
+ [通过 API Gateway 调用同步快速工作流程](synchronous-execution.md)
+ [使用 Step Functions 和 Amazon Redshift API 运行 ETL/ELT 工作流程](sample-etl-orchestration.md)
+ [使用 AWS Batch 和 Amazon SNS 管理批处理任务](batch-job-notification.md)
+ [分散具有 Map 状态的批处理任务](sample-batch-fan-out.md)
+ [使用 Lambda 运行 AWS Batch 任务](sample-batch-lambda.md)

# 使用 Amazon ECS 和 Amazon SNS 管理容器任务
<a name="sample-project-container-task-notification"></a>

此示例项目演示了如何运行 AWS Fargate 任务，然后根据该任务是成功还是失败发送 Amazon SNS 通知。部署此示例项目将创建一个 AWS Step Functions 状态机、一个 Fargate 集群和一个 Amazon SNS 主题。

在此项目中，Step Functions 使用状态机同步调用 Fargate 任务。然后它等待任务成功或失败，并发送一个 Amazon SNS 主题，其中包含有关任务是成功还是失败的消息。

## 第 1 步：创建状态机
<a name="sample-project-container-task-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-container-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Lambda、DynamoDB 和 Amazon SQS 传输数据记录
<a name="sample-project-transfer-data-sqs"></a>

此示例项目演示了如何以迭代方式从 Amazon DynamoDB 表中读取项目并使用 Step Functions 状态机将这些项目发送到 Amazon SQS 队列。部署此示例项目将创建一个 Step Functions 状态机、一个 DynamoDB 表、一个 AWS Lambda 函数和一个 Amazon SQS 队列。

在此项目中，Step Functions 使用 Lambda 函数填充 DynamoDB 表格。状态机还使用 `for` 循环读取每个条目，然后将每个条目发送到 Amazon SQS 队列。

## 第 1 步：创建状态机
<a name="sample-project-transfer-data-sqs-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-sqs-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Lambda 和 AWS Batch 轮询任务状态
<a name="sample-project-job-poller"></a>

本示例项目将创建一个 AWS Batch 作业轮询器。它将实现一台 AWS Step Functions 状态机，该状态机使用 AWS Lambda 创建在 `Wait` 作业上执行检查的 AWS Batch 状态循环。

本示例项目将创建并配置所有资源，以便让您的 Step Functions 工作流程提交 AWS Batch 作业并等待该作业完成才成功结束。

**注意**  
您也可以在不使用 Lambda 函数的情况下实现此模式。有关直接控制 AWS Batch 的信息，请参阅 [将服务与 Step Functions 集成](integrate-services.md)。

本示例项目将创建一台状态机、两个 Lambda 函数和一个 AWS Batch 队列，并将配置相关 IAM 权限。

有关 AWS Step Functions 如何控制其他 AWS 服务的更多信息，请参阅[将服务与 Step Functions 集成](integrate-services.md)。

## 第 1 步：创建状态机
<a name="sample-project-job-poller-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="job-status-poller-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Lambda 和 Amazon SNS 创建任务计时器
<a name="task-timer-sample"></a>

本示例项目将创建一个任务计时器。它将实现 AWS Step Functions 状态机（实现 `Wait` 状态），然后使用 AWS Lambda 函数发送 Amazon Simple Notification Service (Amazon SNS) 通知。[Wait 工作流程状态](state-wait.md) 状态是等待触发器执行单个工作单元的状态类型。

**注意**  
此示例项目实现了一个发送 Amazon Simple Notification Service (Amazon SNS) 通知的 AWS Lambda 函数。您也可以直接从 Amazon States Language 发送 Amazon SNS 通知。请参阅[将服务与 Step Functions 集成](integrate-services.md)。

本示例项目将创建一个状态机、一个 Lambda 函数和一个 Amazon SNS主题，并将配置相关 AWS Identity and Access Management (IAM) 权限。有关使用**任务计时器** 示例项目创建的资源的更多信息，请参阅下面内容：

有关 AWS Step Functions 如何控制其他 AWS 服务的更多信息，请参阅[将服务与 Step Functions 集成](integrate-services.md)。
+ [AWS CloudFormation《用户指南](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/)》
+ [Amazon Simple Notification Service 开发人员指南](https://docs.aws.amazon.com/sns/latest/dg/)
+ [AWS Lambda 开发人员指南](https://docs.aws.amazon.com/lambda/latest/dg/)
+ [IAM 入门指南](https://docs.aws.amazon.com/IAM/latest/GettingStartedGuide/)

## 第 1 步：创建状态机
<a name="task-timer-create-resources"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="task-timer-run-state-machine"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Amazon SQS、Amazon SNS 和 Lambda 创建回调模式示例
<a name="callback-task-sample-sqs"></a>

此示例项目演示了如何在任务期间暂停 AWS Step Functions，并等待外部进程返回任务启动时生成的任务令牌。

要了解如何在 Step Functions 中实施回调模式，请参阅[等待具有任务令牌的回调](connect-to-resource.md#connect-wait-token)。

有关 AWS Step Functions 如何控制其他 AWS 服务的更多信息，请参阅[将服务与 Step Functions 集成](integrate-services.md)。

## 第 1 步：创建状态机
<a name="callback-pattern-create-resources"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="callback-pattern-run-state-machine"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 管理 Amazon EMR 任务
<a name="sample-emr-job"></a>

此示例项目演示了 Amazon EMR 和集成。AWS Step Functions该项目创建一个 Amazon EMR 集群，添加多个步骤并运行它们，然后终止集群。



**重要**  
Amazon EMR 没有免费定价套餐。运行示例项目将产生成本。您可以在 [Amazon EMR 定价](https://aws.amazon.com//emr/pricing/)页面上找到定价信息。亚马逊 EMR 服务集成的可用性取决于亚马逊 EMR 的可用性。 APIs因此，此示例项目可能无法在某些AWS地区正常运行。请查看 [Amazon EMR](https://docs.aws.amazon.com//govcloud-us/latest/UserGuide/govcloud-emr.html) 文档，了解特殊区域的限制。

## 第 1 步：创建状态机
<a name="sample-emr-manage"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-container-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待CloudFormation堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 运行 EMR Serverless 作业
<a name="sample-emr-serverless-job"></a>

此示例项目演示了如何创建和启动 EMR Serverless 应用程序，并在其中运行多个任务。

此示例项目创建状态机、支持AWS资源并配置相关的 IAM 权限。探索此示例项目，以了解如何使用 Step Functions 状态机运行 EMR Serverless 作业，或将其用作您自己的项目的起点。

**重要**  
EMR Serverless 没有免费定价套餐。运行示例项目将产生成本。您可以在 [Amazon EMR Serverless 定价](https://aws.amazon.com//emr/pricing/)页面上找到定价信息。  
此外，EMR Serverless服务集成的可用性视可用性而定EMR Serverless APIs。因此，此示例项目在某些 AWS 区域可能无法正常工作或无法使用。有关 EMR Serverless 在 AWS 区域的可用性信息，请参阅[其它考虑因素](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/considerations.html)主题。

## 第 1 步：创建状态机
<a name="sample-emr-serverless-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-emr-serverless-run"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待CloudFormation堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Step Functions 和 Lambda 启动工作流程中的工作流程
<a name="sample-start-workflow"></a>

此示例项目演示如何使用 AWS Step Functions 状态机启动其他状态机执行。有关从其他状态机中启动状态机这姓的信息，请参阅[在 Step Functions 中从 Task 状态启动工作流程执行](concepts-nested-workflows.md)。

## 第 1 步：创建状态机
<a name="sample-start-workflow-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-start-workflow-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 在 Step Functions 中处理具有 Map 状态的队列中的数据
<a name="sample-map-state"></a>

在此示例工作流程中，[Map 状态工作流程。](state-map.md)处理队列中的数据，同时向订阅用户发送消息并将其存储在数据库中。

Step Functions 使用优化集成从某个 Amazon SQS 队列中提取消息。当消息可用时，[Choice](state-choice.md) 状态会将一组 JSON 消息传递到 [Map](state-map.md) 状态以进行处理。对于每条消息，状态机将消息写入 DynamoDB，从队列中移除消息，并将消息发布到 Amazon SNS 主题。

## 第 1 步：创建状态机
<a name="sample-map-state-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：订阅 Amazon SNS 主题
<a name="sample-map-subscribe-topic"></a>

**提示**  
在运行状态机**之前**，订阅 Amazon SNS 主题并将项目添加到 Amazon SQS 队列中。

1. 打开 [Amazon SNS 控制台](https://console.aws.amazon.com/sns/home)。

1. 选择**主题**，然后找到由示例项目创建的主题。

1. 选择**创建订阅**，然后对于**协议**，选择**电子邮件**。

1. 在**端点**下，输入您的电子邮件地址以订阅该主题。

1. 选择**创建订阅**。

1. 在电子邮件中确认订阅来激活订阅。

## 第 3 步：向 Amazon SQS 队列添加消息
<a name="sample-map-create-queue"></a>

1. 打开 [Amazon SQS 控制台](https://console.aws.amazon.com/sqs/home)。

1. 选择由示例项目创建的队列。

1. 选择**发送和接收消息**，输入消息并选择**发送消息**。重复此步骤来将多条消息添加到队列中。

## 第 4 步：运行状态机
<a name="sample-map-start-execution"></a>

**提示**  
Amazon SNS 中的队列具有最终一致性。将消息发送到队列后，可能需要等待几分钟，然后运行状态机。

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用分布式 Map 处理来自 Amazon S3 的 CSV 文件
<a name="sample-dist-map-csv-process"></a>

本示例项目演示了如何使用[*分布式 Map 状态*](state-map-distributed.md)迭代使用 Lambda 函数生成的 CSV 文件的 1 万行。CSV 文件包含客户订单的配送信息，并存储在 Amazon S3 存储桶中。分布式 Map 对 CSV 文件中的 10 行进行批量迭代，以进行数据分析。

分布式 Map 包含一个 Lambda 函数，用于检测任何延迟订单。分布式 Map 还包含一个[内联 Map](state-map-inline.md)，用于处理批次中的延迟订单，并以数组形式返回这些延迟订单。对于每个延迟订单，内联 Map 都会向 Amazon SQS 队列发送一条消息。最后，本示例项目会将 [Map Run](concepts-examine-map-run.md) 结果存储到 AWS 账户中的另一个 Amazon S3 存储桶中。

使用分布式 Map，一次最多可运行 1 万个并行子工作流。在本示例项目中，分布式 Map 的最大并发量设置为 1000，即限制为 1000 个并行子工作流执行。

本示例项目将创建一台状态机、支持的 AWS 资源，并将配置相关 IAM 权限。探索此示例项目，了解如何使用分布式 Map 编排大规模并行工作负载，或将其作为您自己项目的起点。

## 第 1 步：创建状态机
<a name="sample-dist-map-csv-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-dist-map-csv-run"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用分布式 Map 处理 Amazon S3 存储桶中的数据
<a name="sample-dist-map-s3data-process"></a>

此示例项目演示了如何使用[*分布式 Map 状态*](state-map-distributed.md) 来处理大规模数据，例如，分析历史天气数据并确定每月地球上平均温度最高的气象站。天气数据记录在 1.2 万多个 CSV 文件中，这些文件又存储在 Amazon S3 存储桶中。

此示例项目包括两个*分布式 Map 状态*，分别名为 **Distributed S3 copy NOA Data** 和 **ProcessNOAAData**。**Distributed S3 copy NOA Data** 会迭代名为 **noaa-gsod-pds** 的公共 Amazon S3 存储桶中的 CSV 文件，然后将其复制到 AWS 账户中的Amazon S3 存储桶。**ProcessNOAAData** 对复制的文件进行迭代，并包含一个用于执行温度分析的 Lambda 函数。

示例项目首先通过调用 [ListObjectsV2](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html) API 操作来检查 Amazon S3 存储桶的内容。根据响应此调用返回的[密钥](https://docs.aws.amazon.com/AmazonS3/latest/API/API_ListObjectsV2.html#AmazonS3-ListObjectsV2-response-MaxKeys)数量，示例项目会做出以下决定之一：
+ 如果密钥计数大于或等于 1，则项目将转换到 **ProcessNOAAData** 状态。此*分布式 Map 状态*包括一个名为 **TemperatureFunction** 的 Lambda 函数，用于查找每月平均气温最高的气象站。此函数返回一个以 `year-month` 为密钥的目录和一个包含将气象站相关信息作为值的目录。
+ 如果返回的密钥计数不超过 1，则 **Distributed S3 copy NOA Data** 状态将列出公共存储桶 **noaa-gsod-pds** 中的所有对象，并以 100 个为一批，将单个对象迭代复制到您账户中的另一个存储桶。[内联 Map](state-map-inline.md) 会执行对象的迭代复制。

  复制完所有对象后，项目将转换到 **ProcessNOAAData** 状态，处理天气数据。

示例项目最后过渡到一个 reducer Lambda 函数，该函数对 **TemperatureFunction** 函数返回的结果进行最终聚合，并将结果写入 Amazon DynamoDB 表。

使用分布式 Map，一次最多可运行 1 万个并行子工作流。在此示例项目中，**ProcessNOAAData** 分布式 Map 的最大并发量设置为 3000，这就限制了它只能并行执行 3000 个子工作流。

本示例项目将创建一台状态机、支持的 AWS 资源，并将配置相关 IAM 权限。探索此示例项目，了解如何使用分布式 Map 编排大规模并行工作负载，或将其作为您自己项目的起点。

**重要**  
此示例项目仅在美国东部（弗吉尼亚州北部）区域可用。

## 第 1 步：创建状态机
<a name="sample-dist-map-s3data-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-dist-map-s3data-run"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Amazon SageMaker AI 训练机器学习模型
<a name="sample-train-model"></a>

此示例项目演示如何使用 SageMaker AI 和 AWS Step Functions 训练机器学习模型以及如何批量转换测试数据集。

在此项目中，Step Functions 使用 Lambda 函数通过测试数据集为 Amazon S3 存储桶添加种子。然后，它使用 [SageMaker AI 服务集成](connect-sagemaker.md)训练机器学习模型并执行批量转换。

有关 SageMaker AI 和 Step Functions 服务集成的更多信息，请参阅以下内容：
+ [将服务与 Step Functions 集成](integrate-services.md)
+ [使用 Step Functions 创建和管理亚马逊 SageMaker AI 任务](connect-sagemaker.md)

**注意**  
此示例项目可能会产生费用。  
为新 AWS 用户提供了免费使用套餐。在此套餐中，低于某种使用水平的服务是免费的。有关 AWS 成本和免费套餐的更多信息，请参阅 [SageMaker AI 定价](https://aws.amazon.com/sagemaker/pricing/)。

## 第 1 步：创建状态机
<a name="sample-train-model-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-train-model-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 在 SageMaker AI 中调整机器学习模型的超参数
<a name="sample-hyper-tuning"></a>

此示例项目演示如何使用 SageMaker AI 调整机器学习模型的超参数和批量转换测试数据集。

在此项目中，Step Functions 使用 Lambda 函数通过测试数据集为 Amazon S3 存储桶添加种子。然后，它使用 [SageMaker AI 服务集成](connect-sagemaker.md)来创建超参数调整作业。然后，它使用一个 Lambda 函数来提取数据路径，保存调整模型，提取模型名称，然后运行批处理转换作业以在 SageMaker AI 中进行推理。

有关 SageMaker AI 和 Step Functions 服务集成的更多信息，请参阅以下内容：
+ [将服务与 Step Functions 集成](integrate-services.md)
+ [使用 Step Functions 创建和管理亚马逊 SageMaker AI 任务](connect-sagemaker.md)

**注意**  
此示例项目可能会产生费用。  
为新 AWS 用户提供了免费使用套餐。在此套餐中，低于某种使用水平的服务是免费的。有关 AWS 成本和免费套餐的更多信息，请参阅 [SageMaker AI 定价](https://aws.amazon.com/sagemaker/pricing/)。

## 第 1 步：创建状态机
<a name="sample-hyper-tuning-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-hyper-tuning-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Amazon Bedrock 执行 AI 提示串接
<a name="sample-bedrock-prompt-chaining"></a>

此示例项目演示了如何与 Amazon Bedrock 集成来执行 AI 提示串接，并使用 Amazon Bedrock 来构建高质量的聊天机器人。此项目将一些提示链接在一起，并按照提供的顺序解析它们。将提示链接起来，可增强用于提供优质响应的语言模型的能力。

此示例项目将创建一台状态机、支持的 AWS 资源，并将配置相关 IAM 权限。探索此示例项目，了解如何使用 Amazon Bedrock 与 Step Functions 状态机的优化服务集成，或将其作为您自己的项目的起点。

## 先决条件
<a name="sample-bedrock-prerequisites"></a>

此示例项目使用 Cohere Command 大型语言模型 (LLM)。要成功运行此示例项目，必须从 Amazon Bedrock 控制台添加对此 LLM 的访问权限。要添加模型访问权限，请执行以下操作：

1. 打开 [Amazon Bedrock 控制台](https://console.aws.amazon.com/bedrock)。

1. 在导航窗格中，选择**模型访问权限**。

1. 选择**管理模型访问权限**。

1. 选中 **Cohere** 旁边的复选框。

1. 选择**请求访问权限**。**Cohere** 模型的**访问权限状态**显示为**已授予访问权限**。

## 第 1 步：创建状态机
<a name="sample-bedrock-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-bedrock-run"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Step Functions 快速工作流程处理来自 Amazon SQS 的大量消息
<a name="sample-project-express-high-volume-sqs"></a>

此示例项目演示了如何使用 AWS Step Functions Express Workflow 来处理来自高容量事件源（例如亚马逊简单队列服务 (Amazon SQS)）的消息或数据。由于快速工作流可以非常高的速率启动，因此它们非常适合大批量事件处理或流数据工作负载。

以下是从事件源执行状态机的两种常用方法：
+ **配置 Amazon CloudWatch Events 规则，以便在事件源发出事件时启动状态机执行。**有关更多信息，请参阅[创建在 CloudWatch 事件上触发的事件规则](https://docs.aws.amazon.com/AmazonCloudWatch/latest/events/Create-CloudWatch-Events-Rule.html)。
+ **将事件源映射到 Lambda 函数，并编写函数代码来执行状态机。**每次事件源发出事件时，都会调用该 AWS Lambda 函数，进而启动状态机执行。有关更多信息，请参阅[结合使用 AWS Lambda 与 Amazon SQS](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html)。

此示例项目使用第二种方法在 Amazon SQS 队列每次发送消息时启动执行。您可以使用类似的配置，触发来自其他事件源的快速工作流执行，比如 Amazon Simple Storage Service (Amazon S3)、Amazon DynamoDB 和 Amazon Kinesis。

有关快速工作流和 Step Functions 服务集成的更多信息，请参阅以下内容：
+ [在 Step Functions 中选择工作流程类型](choosing-workflow-type.md)
+ [将服务与 Step Functions 集成](integrate-services.md)
+ [Step Functions 服务配额](service-quotas.md)

## 第 1 步：创建状态机
<a name="sample-project-high-volume-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：触发状态机执行
<a name="trigger-execution"></a>

1. 打开 [Amazon SQS 控制台](https://console.aws.amazon.com/sqs)。

1. 选择示例项目创建的队列。

   该名称将类似于 Example **SQSQueue-wja XUtn** LR FEMI。

1. 在 **Queue Actions (队列操作)** 列表中，选择 **Send a Message (发送消息)**。

1. 使用复制按钮复制以下消息，然后在 **Send a Message (发送邮件)** 窗口中输入该消息，然后选择 **Send Message (发送邮件)**。
**注意**  
在此示例消息中，已使用换行符对 `input:` 进行格式化以适应页面。使用复制按钮或以其他方式确保它作为一行输入，没有中断。

   ```
   {
         "input": "QW5kIGxpa2UgdGhlIGJhc2VsZXNzIGZhYnJpYyBvZiB0aGlzIHZpc2lvbiwgVGhlIGNsb3VkLWNhcHBlZCB0b3dlcnMsIHRoZSBnb3JnZW
                   91cyBwYWxhY2VzLCBUaGUgc29sZW1uIHRlbXBsZXMsIHRoZSBncmVhdCBnbG9iZSBpdHNlbGbigJQgWWVhLCBhbGwgd2hpY2ggaXQgaW5o
                   ZXJpdOKAlHNoYWxsIGRpc3NvbHZlLCBBbmQgbGlrZSB0aGlzIGluc3Vic3RhbnRpYWwgcGFnZWFudCBmYWRlZCwgTGVhdmUgbm90IGEgcm
                   FjayBiZWhpbmQuIFdlIGFyZSBzdWNoIHN0dWZmIEFzIGRyZWFtcyBhcmUgbWFkZSBvbiwgYW5kIG91ciBsaXR0bGUgbGlmZSBJcyByb3Vu
                   ZGVkIHdpdGggYSBzbGVlcC4gU2lyLCBJIGFtIHZleGVkLiBCZWFyIHdpdGggbXkgd2Vha25lc3MuIE15IG9sZCBicmFpbiBpcyB0cm91Ym
                   xlZC4gQmUgbm90IGRpc3R1cmJlZCB3aXRoIG15IGluZmlybWl0eS4gSWYgeW91IGJlIHBsZWFzZWQsIHJldGlyZSBpbnRvIG15IGNlbGwg
                   QW5kIHRoZXJlIHJlcG9zZS4gQSB0dXJuIG9yIHR3byBJ4oCZbGwgd2FsayBUbyBzdGlsbCBteSBiZWF0aW5nIG1pbmQu"
   }
   ```

1. 选择**关闭**。

1. 打开 [Step Functions 控制台]()。

1.  前往您的 [Amazon CloudWatch 日志组](https://console.aws.amazon.com/cloudwatch/home?#logs:)并检查日志。日志组的名称将类似于**示例 ExpressLogGroup-wja XUtn** LR FEMI。

# 使用标准和快速工作流程执行选择性检查点操作
<a name="sample-project-express-selective-checkpointing"></a>

此示例项目演示了如何通过运行执行选择性检查点的模拟电子商务工作流来组合标准和快速工作流。部署此示例项目将创建标准工作流状态机、嵌套的快速工作流状态机、AWS Lambda 函数、Amazon Simple Queue Service (Amazon SQS) 队列和 Amazon Simple Notification Service (Amazon SNS) 主题。

有关快速工作流、嵌套工作流和 Step Functions 服务集成的更多信息，请参阅以下内容：
+ [在 Step Functions 中选择工作流程类型](choosing-workflow-type.md)
+  [在 Step Functions 中从 Task 状态启动工作流程执行](concepts-nested-workflows.md) 
+ [将服务与 Step Functions 集成](integrate-services.md)

## 第 1 步：创建状态机
<a name="sample-project-express-selective"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-selective-checkpointing-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Step Functions 构建 AWS CodeBuild 项目
<a name="sample-project-codebuild"></a>

此示例项目演示如何使用 AWS Step Functions 构建 AWS CodeBuild 项目、运行测试，然后根据结果发送 Amazon SNS 通知。

## 第 1 步：创建状态机
<a name="sample-project-codebuild-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-project-codebuild-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Amazon SageMaker AI 预处理数据并训练机器学习模型
<a name="sample-preprocess-feature-transform"></a>

此示例项目演示如何使用 SageMaker AI 和 AWS Step Functions 预处理数据并训练机器学习模型。

在此项目中，Step Functions 使用 Lambda 函数通过测试数据集为 Amazon S3 存储桶添加种子，并通过 Python 脚本进行数据处理。然后，它使用 [SageMaker AI 服务集成](connect-sagemaker.md)训练机器学习模型并执行批量转换。

有关 SageMaker AI 和 Step Functions 服务集成的更多信息，请参阅以下内容：
+ [将服务与 Step Functions 集成](integrate-services.md)
+ [使用 Step Functions 创建和管理亚马逊 SageMaker AI 任务](connect-sagemaker.md)

**注意**  
此示例项目可能会产生费用。  
为新 AWS 用户提供了免费使用套餐。在此套餐中，低于某种使用水平的服务是免费的。有关 AWS 成本和免费套餐的更多信息，请参阅 [SageMaker AI 定价](https://aws.amazon.com/sagemaker/pricing/)。

## 第 1 步：创建状态机
<a name="sample-preprocess-feature-transform-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-preprocess-feature-transform-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Step Functions 编排 AWS Lambda 函数
<a name="sample-lambda-orchestration"></a>

**编排 Lambda 函数**模板在股票交易工作流示例中使用了多个 Lambda 函数。其中一个函数会检查股票价格，然后提示人工选择买入或卖出股票。选择状态会根据 `recommended_type` 变量选择下一个函数来完成买入或卖出。任一函数完成后，交易结果将在工作流结束之前发布。

要实现人工审批步骤，通常需要暂停工作流的执行，直至返回唯一的任务令牌。在此项目中，工作流将带有任务令牌的消息传递给 Amazon SQS 队列。该消息会触发另一个 Lambda 函数，该函数配置为根据消息的有效载荷处理回调。工作流将暂停，直到它通过 [https://docs.aws.amazon.com/step-functions/latest/apireference/API_SendTaskSuccess.html](https://docs.aws.amazon.com/step-functions/latest/apireference/API_SendTaskSuccess.html) API 调用收到任务令牌。有关任务令牌的更多信息，请参阅[等待具有任务令牌的回调](connect-to-resource.md#connect-wait-token)。

![\[状态机的示意图\]](http://docs.aws.amazon.com/zh_cn/step-functions/latest/dg/images/sample-lambda-orchestration.png)


## 第 1 步：创建状态机
<a name="sample-lambda-orchestration-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-lambda-orchestration-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

有关 Step Functions 服务集成的更多信息，请参阅[将服务与 Step Functions 集成](integrate-services.md)。

# 启动 Athena 查询并发送结果通知
<a name="sample-athena-query"></a>

此示例项目演示了如何使用 Step Functions 和 Amazon Athena 来启动 Athena 查询，并使用标准工作流程发送包含查询结果的通知。

在本项目中，Step Functions 使用 Lambda 函数和 AWS Glue 爬网程序生成一组示例数据。然后，它使用 [Athena 服务集成](connect-athena.md)执行查询，并使用 SNS 主题返回结果。

有关 Athena 和 Step Functions 服务集成的更多信息，请参阅以下内容：
+ [将服务与 Step Functions 集成](integrate-services.md)
+ [使用 Step Functions 运行 Athena 查询](connect-athena.md)

## 第 1 步：创建状态机
<a name="sample-athena-query-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-athena-query-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Athena 按顺序并行执行查询
<a name="run-multiple-queries"></a>

本示例项目演示了如何连续和并行运行 Athena 查询，处理错误，然后根据查询成功或失败发送 Amazon SNS 通知。

在本项目中，Step Functions 使用状态机同步运行 Athena 查询。返回查询结果后，进入并行状态，并行执行两个 Athena 查询。然后它等待作业成功或失败，并发送一个 Amazon SNS 主题，其中包含有关作业是成功还是失败的消息。

## 第 1 步：创建状态机
<a name="run-multi-query-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-run-multi-query-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 AWS Glue 爬网程序查询大型数据集
<a name="sample-query-large-datasets"></a>

此示例项目演示了如何在 Amazon S3 中提取大型数据集并通过 AWS Glue 爬网程序对其进行分区，然后对该分区执行 Amazon Athena 查询。

在本项目中，Step Functions 状态机调用 AWS Glue 爬网程序，对 Amazon S3 中的大型数据集进行分区。一旦 AWS Glue 爬网程序返回成功信息，工作流就会针对该分区执行 Athena 查询。成功执行查询后，将向 Amazon SNS 主题发送到 Amazon SNS 通知。

## 第 1 步：创建状态机
<a name="sample-query-large-datasets-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-query-large-datasets-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 AWS Glue 和 Athena 保持更新目标表中的数据
<a name="sample-keep-data-updated"></a>

本示例项目演示了如何使用 AWS Glue Catalog 查询目标表以获取当前数据，然后使用 Amazon Athena 从其他来源获取新数据进行更新。

在本项目中，Step Functions 状态机调用 AWS Glue Catalog 来验证 Amazon S3 存储桶中是否存在目标表。如果找不到表，它将创建一个新表。然后，Step Functions 将运行 Athena 查询，从不同的数据来源向目标表添加行：首先查询目标表以获取最近日期，然后查询源表以获取更多最新数据，并将其插入到目标表中。

## 第 1 步：创建状态机
<a name="sample-keep-data-updated-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-keep-data-updated-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用节点组创建和管理 Amazon EKS 集群
<a name="sample-eks-cluster"></a>

此示例项目演示了如何使用 Step Functions 和 Amazon Elastic Kubernetes Service 创建带有节点组的 Amazon EKS 集群，在 Amazon EKS 上运行作业，然后检查输出。完成后，它会删除节点组和 Amazon EKS 集群。

有关 Step Functions 和 Step Functions 服务集成的更多信息，请参阅以下内容：
+ [将服务与 Step Functions 集成](integrate-services.md)
+ [使用 Step Functions 创建和管理 Amazon EKS 集群](connect-eks.md)

**注意**  
此示例项目可能会产生费用。  
为新 AWS 用户提供了免费使用套餐。在此套餐中，低于某种使用水平的服务是免费的。有关 AWS 成本和免费套餐的更多信息，请参阅 [Amazon EKS 定价](https://aws.amazon.com/eks/pricing/)。

## 第 1 步：创建状态机
<a name="sample-eks-cluster-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-eks-cluster-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 与 API Gateway 管理的 API 进行交互
<a name="sample-apigateway-workflow"></a>

此示例项目演示了如何使用 Step Functions 调用 API Gateway 并检查调用是否成功。

有关 API Gateway 和 Step Functions 服务集成的更多信息，请参阅以下内容：
+ [将服务与 Step Functions 集成](integrate-services.md)
+ [使用 Step Functions 创建 API 网关 REST APIs](connect-api-gateway.md)

## 步骤 1：创建状态
<a name="sample-apigateway-workflow-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-apigateway-workflow-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 API Gateway 集成调用在 Fargate 上运行的微服务
<a name="sample-apigateway-ecs-workflow"></a>

此示例项目演示了如何使用 Step Functions 调用 API Gateway，以便与 AWS Fargate 上的服务进行交互，并检查调用是否成功。

有关 API Gateway 和 Step Functions 服务集成的更多信息，请参阅以下内容：
+ [将服务与 Step Functions 集成](integrate-services.md)
+ [使用 Step Functions 创建 API 网关 REST APIs](connect-api-gateway.md)

## 第 1 步：创建状态机
<a name="sample-apigateway-ecs-workflow-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-apigateway-ecs-workflow-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 向 EventBridge 事件总线发送自定义事件
<a name="sample-eventbridge-custom-event"></a>

此示例项目演示了如何使用 Step Functions 将自定义事件发送到与具有多个目标的规则匹配的事件总线（Amazon EventBridge、AWS Lambda、Amazon Simple Notification Service、Amazon Simple Queue Service）。

有关 Step Functions 和 Step Functions 服务集成的更多信息，请参阅以下内容：
+ [将服务与 Step Functions 集成](integrate-services.md)
+ [使用 Step Functions 添加 EventBridge 事件](connect-eventbridge.md)

**注意**  
此示例项目可能会产生费用。  
为新 AWS 用户提供了免费使用套餐。在此套餐中，低于某种使用水平的服务是免费的。有关 AWS 成本和免费套餐的更多信息，请参阅 [EventBridge 定价](https://aws.amazon.com/eventbridge/pricing/)。

## 第 1 步：创建状态机
<a name="sample-eventbridge-custom-event-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-eventbridge-custom-event-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 通过 API Gateway 调用同步快速工作流程
<a name="synchronous-execution"></a>

此示例项目演示了如何通过 Amazon API Gateway 调用同步快速工作流来管理员工数据库。

在这个项目中，Step Functions 使用 API Gateway 端点启动 Step Functions 同步快速工作流。然后，它们使用 DynamoDB 在员工数据库中搜索、添加和删除员工。

有关 Step Functions 同步快速工作流程的更多信息，请参阅[Step Functions 中的同步和异步快速工作流程](choosing-workflow-type.md#concepts-express-synchronous)。

**注意**  
此示例项目可能会产生费用。  
为新 AWS 用户提供了免费使用套餐。在此套餐中，低于某种使用水平的服务是免费的。有关 AWS 成本和免费套餐的更多信息，请参阅 [Step Functions 定价](https://aws.amazon.com/step-functions/pricing/)。

## 第 1 步：创建状态机
<a name="synchronous-execution-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="synchronous-execution-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Step Functions 和 Amazon Redshift API 运行 ETL/ELT 工作流程
<a name="sample-etl-orchestration"></a>

此示例项目演示了如何使用 Step Functions 和 Amazon Redshift 数据 API 来运行 ETL/ELT 工作流，该工作流可将数据加载到 Amazon Redshift 数据仓库。

在此项目中，Step Functions 使用一个 AWS Lambda 函数和 Amazon Redshift 数据 API 来创建所需的数据库对象并生成一组示例数据，然后并行执行两个任务，用于执行加载维度表，然后执行一个事实数据表。两个维度加载任务成功结束后，Step Functions 将执行事实数据表的加载任务，运行验证作业，然后暂停 Amazon Redshift 集群。

**注意**  
 您可以修改 ETL 逻辑来接收来自其他来源的数据，例如 Amazon S3，后者可以使用 [COPY](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html) 命令将数据从 Amazon S3 复制到 Amazon Redshift 表。

有关 Amazon Redshift 和 Step Functions 服务集成的更多信息，请参阅以下指南：
+ [将服务与 Step Functions 集成](integrate-services.md)
+  [使用 Amazon Redshift 数据 API](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api.html) 
+  [Amazon Redshift 数据 API 服务](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/rds-data.html) 
+  [创建使用 Lambda 的 Step Functions 状态机](tutorial-creating-lambda-state-machine.md) 

有关 Lambda 和 Amazon Redshift 的 IAM 策略的更多信息，请参阅以下指南：
+  [用于呼叫的 IAM 政策 AWS Lambda](connect-lambda.md#lambda-iam) 
+  [授予对 Amazon Redshift 数据 API 的访问权限](https://docs.aws.amazon.com/redshift/latest/mgmt/data-api.html#data-api-access) 

**注意**  
此示例项目可能会产生费用。  
为新 AWS 用户提供了免费使用套餐。在此套餐中，低于某种使用水平的服务是免费的。有关 AWS 成本和免费套餐的更多信息，请参阅 [AWS Step Functions 定价](https://aws.amazon.com/step-functions/pricing/)。

## 第 1 步：创建状态机
<a name="sample-etl-orchestration-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-etl-orchestration-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 AWS Batch 和 Amazon SNS 管理批处理任务
<a name="batch-job-notification"></a>

此示例项目演示了如何提交 AWS Batch 作业，然后根据该作业是成功还是失败发送 Amazon SNS 通知。部署此示例项目将创建 AWS Step Functions 状态机、AWS Batch 作业和 Amazon SNS 主题。

在此项目中，Step Functions 使用状态机同步调用 AWS Batch 作业。然后它等待作业成功或失败，并发送一个 Amazon SNS 主题，其中包含有关作业是成功还是失败的消息。

## 第 1 步：创建状态机
<a name="batch-job-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-container-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 分散具有 Map 状态的批处理任务
<a name="sample-batch-fan-out"></a>

此示例项目演示了如何使用 Step Functions 的 [Map 状态工作流程。](state-map.md) 状态来扇出 AWS Batch 任务。

在此项目中，Step Functions 使用状态机调用一个 Lambda 函数来进行简单的预处理，然后使用 [Map 状态工作流程。](state-map.md) 状态并行调用多个 AWS Batch 任务。

## 第 1 步：创建状态机
<a name="sample-batch-fan-out-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-batch-fan-out-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。

# 使用 Lambda 运行 AWS Batch 任务
<a name="sample-batch-lambda"></a>

此示例项目演示了如何使用 Step Functions 通过 AWS Lambda 函数预处理数据，然后编排 AWS Batch 作业。

在此项目中，Step Functions 使用状态机调用 Lambda 函数，以便在提交 AWS Batch 任务之前进行简单的预处理。根据前一个作业的结果或成功与否，可能会调用多个作业。

## 第 1 步：创建状态机
<a name="sample-batch-lambda-create"></a>

1. 打开 [Step Functions 控制台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然后选择**创建状态机**。

1. 选择**从模板创建**，然后找到相关的入门模板。选择**下一步**以继续。

1. 选择模板使用方式：

   1. **运行演示** — 创建只读状态机。审核后，您可以创建工作流和所有相关资源。

   1. **构建依据** — 提供可编辑的工作流定义，您可借助自有资源对其进行审核、定制并部署。（**不会**自动创建函数或队列等相关资源。）

1. 选择**使用模板**继续进行选择。
**注意**  
*部署到您的账户的服务将会收取标准费用。*

## 第 2 步：运行演示状态机
<a name="sample-batch-lambda-start-execution"></a>

如果您选择了**运行演示**选项，则所有相关资源都将部署并准备好运行。如果您选择了**构建依据**选项，则可能需要先设置占位符值并创建其他资源，然后才能运行自定义工作流。

1. 选择**部署并运行**。

1. 等待 CloudFormation 堆栈部署。这一过程耗时最多 10 分钟。

1. 出现**开始执行**选项后，查看**输入**并选择**开始执行**。

**恭喜您！**  
现在，您应该有了一个正在运行的状态机演示。您可以在**图表视图**中选择状态来查看输入、输出、变量、定义和事件。