在 Step Functions 中选择工作流程类型 - Amazon Step Functions
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

在 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 工作流程,请参阅中的并行状态Amazon Step Functions 工作坊

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

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

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

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

支持的状态转换速率

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

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

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

有关在控制台中调试标准工作流执行的更多信息,请参阅标准版和 Express 主机体验差异查看工作流程运行情况

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

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

有关在控制台中调试快速工作流执行的更多信息,请参阅标准版和 Express 主机体验差异查看工作流程运行情况

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

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

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

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

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

分布式地图 支持 不支持
活动 支持 不支持
优化工作流程类型

在大规模数据处理研讨会中,请参阅选择工作流类型(研讨会)模块,了解按类型进行比较、从标准转换为快速的清单以及成本影响分析示例。

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

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

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

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

    注意

    如果您从控制台同步运行 Step Functions Express 工作流程,则StartSyncExecution请求将在 60 秒后过期。要同步运行长达五分钟的 Express 工作流程,StartSyncExecution请使用 Amazon SDK或 Amazon Command Line Interface (Amazon CLI) 而不是 Step Functions 控制台。

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

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

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

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

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

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