本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
什么是 Amazon Step Functions?
Step Functions 是一种无服务器的编排服务,可以让你组合Amazon Lambda
Step Functions 基于状态机和任务。状态机是一种工作流程。任务是工作流中的一种状态,它代表一个工作单元,而另一个工作单元Amazon服务执行。工作流程中的每个步骤都是状态。
借助 Step Functions 的内置控件,您可以检查工作流中每个步骤的状态,以确保应用程序按预期顺序运行。根据您的用例,您可以调用 Step FunctionsAmazon服务,例如 Lambda,用于执行任务。您可以创建处理和发布机器学习模型的工作流。你可以有 Step Functions 控件Amazon服务,例如Amazon Glue
AmazonSDK 和优化的集成
要打电话给其他Amazon服务,您可以使用步骤函数AmazonSDK 集成,或者你可以使用 Step Functions 的优化集成之一。
-
这些区域有:AmazonSDK 集成让你打电话给两百多个Amazon直接来自状态机的服务,使您可以访问超过 9,000 个 API 操作。
-
Step Functions 的优化集成已自定义以简化状态机的使用。
标准和快速工作流
Step Functions 有两种工作流程类型。标准工作流只能执行一次工作流程,最多可运行一年。快速工作流至少有一次工作流程执行,并且最多可运行五分钟。执行是指您运行工作流程来执行任务的实例。标准工作流非常适合长时间运行、可审计的工作流,因为它们显示执行历史记录和可视调试。Express 工作流是高事件率工作负载的理想选择,例如流数据处理和 IoT 数据摄取。
标准工作流
-
每秒 2000 个执行率
-
每秒 4,000 个状态过渡率
-
按状态转换定价
-
显示执行历史记录和可视调试
-
支持所有服务集成和模式
快速工作流
-
每秒 100000 个
-
几乎无限制的状态转换率
-
按数量和执行持续时间定价
-
将执行历史记录发送Amazon CloudWatch
-
支持所有服务集成和大多数模式
有关标准和快速工作流的更多信息,包括 Step Functions 定价,请参阅以下内容:
使用案例
Step Functions 管理应用程序的组件和逻辑,因此您可以编写更少的代码,专注于快速构建和更新应用程序。本节介绍了使用 Step Functions 的典型使用案例。
用例 #1: 函数编排

您可以创建一个按特定顺序运行一组 Lambda 函数(步骤)的工作流程。一个 Lambda 函数的输出传递给下一个 Lambda 函数的输入。工作流程的最后一步给出了结果。使用 Step Functions,您可以看到工作流中的每个步骤如何彼此交互,因此您可以确保每个步骤都执行其预期功能。
有关说明如何使用一组函数创建状态机的教程,请参阅以下内容:
用例 #2: 分支

客户请求提高信用额度。使用Choice
状态,你可以让 Step Functions 根据Choice
州的输入。如果请求超过了客户的预先批准的信用额度,则可以让 Step Functions 将客户的请求发送给经理以进行签署。如果请求低于客户的预先批准的信用额度,则可以让 Step Functions 自动批准该请求。
用例 #3: 错误处理

Retry
在此使用案例中,客户请求用户名。第一次,你的客户的请求不成功。使用Retry
声明,你可以让 Step Functions 再次尝试客户的请求。第二次,你的客户的请求成功了。
Catch
在类似的用例中,客户请求不可用的用户名。使用Catch
声明,你有 Step Functions 建议一个可用的用户名。如果您的客户使用可用的用户名,则可以让 Step Functions 转到工作流程中的下一步,即发送确认电子邮件。如果您的客户没有使用可用的用户名,则可以在工作流程中执行 Step Functions 转到其他步骤,即开始注册过程。
有关的更多详细示例Retry
和Catch
说明,请参阅以下内容:
用例 #4: 循环中的人

使用银行应用程序,您的一位客户向朋友汇款。您的客户正在等待确认电子邮件。与回调和任务令牌,您有 Step Functions 告诉 Lambda 发送客户的钱并在客户的朋友收到款项时报告。在 Lambda 报告客户的朋友收到了资金后,您可以让 Step Functions 转到工作流程中的下一步,即向客户发送确认电子邮件。
要查看显示带有任务令牌的回调的示例项目,请参阅以下内容:
用例 #5: 并行处理

客户将视频文件转换为五种不同的显示分辨率,以便观众可以在多台设备上观看视频。使用Parallel
状态,Step Functions 输入视频文件,因此 Lambda 可以同时将其处理为五个显示分辨率。
用例 #6: 动态并行

买家订购了三件商品,您需要为每件商品做好配送准备。您可以检查每件物品的可用性,收集每件物品,然后包装每件物品以进行配送。使用Map
状态,Step Functions 可以将 Lambda 并行处理客户的每个物品。一旦客户的所有商品都打包好交付,Step Functions 将进入工作流程中的下一步,即向客户发送一封包含跟踪信息的确认电子邮件。
要查看显示动态并行性的示例项目,请使用Map
状态,请参阅以下内容:
服务集成
Step Functions 与多个集成Amazon服务。要将 Step Functions 与这些服务结合起来,请使用以下服务集成模式:
-
调用服务,并让 Step Functions 在获得 HTTP 响应后进入下一个状态。
-
调用服务,让 Step Functions 等待作业完成。
-
调用任务令牌调用服务,并让 Step Functions 等待,直到任务令牌与回调一起返回。
下表显示了 Step Functions 的可用服务集成和服务集成模式。
标准工作流和快速工作流支持相同的集成,但不支持相同的集成模式。快速工作流不支持运行作业 (.sync) 或等待回调 (.waitForTaskToken)。每个集成的优化集成模式支持都不同。有关更多信息,请参阅标准与快速工作流。
支持的区域
大多数Amazon区域支持 Step Functions。有关的完整列表AmazonStep Functions 可用的区域,请参阅Amazon区域表
这是你第一次使用 Step Functions 吗?
如果这是您第一次使用 Step Functions,以下主题可帮助您了解使用 Step Functions 的不同部分,包括 Step Functions 如何与其他步骤函数结合使用Amazon服务: