在 Step Functions 中选择工作流程类型 - AWS Step Functions

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

在 Step Functions 中选择工作流程类型

创建状态机时,您必须选择标准快速类型。状态机的默认类型标准类型标准的状态机称为标准工作流类型快速的状态机被称为快速工作流

对于标准工作流和快速工作流,您都可以使用 使用 Amazon States 语言定义 Step Functions 工作流程 来定义状态机。根据您选择的类型,状态机的执行行为会有所不同。

重要

创建状态机后,无法更改您选择的工作流程类型

标准和快速工作流程可以自动启动,以响应来自 Amazon API Gateway(完全大规模管理APIs)、物联网规则和亚马逊 EventBridge中 140 多个其他事件源的HTTP请求。

标准工作流程非常适合长时间运行(长达一年)、耐用且可审计的工作流程。在执行完成后,您可以使用 St ep Functi API ons 检索最长 90 天的完整执行历史记录。标准工作流程遵循精确一次的模型,在这种模型中,除非您在中指定Retry了行为,否则您的任务和状态不会运行超过一次。ASL这使得标准工作流程适合于协调非等性操作,例如启动 Amazon 集群或处理付款。EMR标准工作流执行将根据处理的状态转换次数计费。

Express Workflows 非常适合高容量的事件处理工作负载,例如物联网数据摄取、流数据处理和转换以及移动应用程序后端。它们最多可以运行五分钟。Express Workflows 采用一种at-least-once模型,在这种模型中,一次执行可能会运行多次。这使得 Express Workflows 非常适合编排等性操作,例如转换输入数据和在 Amazon DynamoDB 中PUT通过操作进行存储。Express Workflow 执行按执行次数、执行总持续时间和执行时消耗的内存进行计费。

提示

要部署 Express 工作流程示例,请参阅 AWS Step Functions 研讨会中的并行状态

标准和快速工作流程类型的比较

类型/类别 标准工作流 快速工作流程:同步和异步
最长持续时间 一年 五分钟
支持的执行启动率

有关与支持的执行启动率相关的配额信息,请参阅与API操作限制相关的配额

有关与支持的执行启动率相关的配额信息,请参阅与API操作限制相关的配额

支持的状态转换速率

有关与支持的状态转换速率相关的配额信息,请参阅与状态限制相关的配额

无限制
定价 按状态转换次数定价。每完成一个执行步骤,就会计算一次状态转换 按运行的执行次数、执行时长和内存消耗量来定价。
执行历史记录

可以使用 Step Functions 列出和描述执行情况APIs。您可通过控制台对执行进行可视化调试。也可以通过在状态机上启用 CloudWatch 日志记录功能在日志中对其进行检查。

有关在控制台中调试标准工作流执行的更多信息,请参阅在 Step Functions 中查看工作流程执行细节查看和调试执行

无限制的执行历史记录,即在 5 分钟内生成多少条执行历史记录,就会保留多少条执行历史记录。

通过在状态机上启用日志记录,可以在 CloudWatch 日志或 Step Functions 控制台中检查执行情况。

有关在控制台中调试快速工作流执行的更多信息,请参阅在 Step Functions 中查看工作流程执行细节查看和调试执行

执行语义 仅一次 工作流执行。

异步快速工作流程:t-least-once工作流程执行。

同步 Express t-most-once 工作流程:工作流程执行。

服务集成 支持所有服务集成和模式。 支持所有服务集成。
注意

快速工作流不支持任务运行 (.sync) 或 回调 (.waitForTaskToken) 服务集成模式。

活动 支持 不支持

Step Functions 中的同步和异步快速工作流程

您可以选择两种类型的快速工作流:异步快速工作流和同步快速工作流。

  • 异步快速工作流会返回工作流已启动的确认信息,但不会等待工作流完成。要获得结果,您必须轮询服务的日CloudWatch 志。如果您不需要即时响应输出,例如其他服务不依赖的消息服务或数据处理,则可以使用异步快速工作流。您可以通过Step Functions中的嵌套工作流或使用StartExecutionAPI调用来启动异步快速工作流程以响应事件。

  • 同步快速工作流会启动一个工作流,等待工作流完成,然后返回结果。同步快速工作流可用于编排微服务。使用同步快速工作流,您可以开发应用程序,而无需开发额外的代码来处理错误、重试或运行并行任务。您可以运行从 Amazon API Gateway 调用的同步快速工作流程 AWS Lambda,也可以使用StartSyncExecutionAPI调用。

    注意

    如果您从控制台同步运行 Step Functions 快速工作流,则 StartSyncExecution 请求经过 60 秒。要同步运行 Express 工作流程长达五分钟,请使用 AWS SDK或 AWS Command Line Interface (AWS CLI) 而不是 Step Functions 控制台StartSyncExecution发出请求。

    同步 Express 执行API调用不会影响现有的账户容量限制。Step Functions 按需提供容量,并根据持续的工作负载自动扩展。在容量扩展之前,可以限制工作负载激增。

Step Functions 工作流程中的执行保证

标准工作流 异步快速工作流 同步快速工作流
仅一次 工作流执行 工作t-least-once流程执行 工作t-most-once流程执行
在状态转换之间,执行状态在内部保持不变。 在状态转换之间,执行状态不会持续存在。 在状态转换之间,执行状态不会持续存在。
在启动与当前运行的工作流同名的执行时,自动返回幂等响应。当前运行的工作流完成后,新工作流不会启动,并且会引发异常。 不会自动管理幂等性。启动多个同名工作流会导致并发执行。如果状态机逻辑不幂等,则可能导致内部工作流状态丢失。 不会自动管理幂等性。Step Functions 会在执行开始后等待,并在执行完成时返回状态机的结果。如果发生异常,工作流不会重新启动。

执行历史数据会在 90 天后删除。删除 out-of-date 执行数据后,可以重复使用工作流程名称。

为了满足合规性、组织或监管要求,您可以通过发送配额请求,将执行历史记录的保留期缩短至 30 天。为此,请使用 AWS Support Center Console 并创建一个新案例。

Step Functions 不会捕获执行历史记录。必须通过 Amazon CloudWatch 日志启用日志功能。 Step Functions 不会捕获执行历史记录。必须通过 Amazon CloudWatch 日志启用日志功能。