亚马逊AWS官方博客

新增功能 – AWS Step Functions 快捷工作流:高性能、低成本

我们在 re:Invent 2016 上推出了 AWS Step Functions,之后我们的客户立即将该功能作为其多步骤工作流的一个核心元素。今天,我们看到客户正在构建无服务器工作流,以协调机器学习培训、报告生成、订单处理、IT 自动化和许多其他多步骤流程。这些工作流可以运行长达一年,并围绕一个工作流模型构建,该模型包括检查点、暂时性故障重试以及出于审计目的的详细状态跟踪。

根据使用情况和反馈,我们的客户非常喜欢核心 Step Functions 模型。他们喜欢声明式规范以及轻松构建、测试和扩展工作流。实际上,客户非常喜欢 Step Functions,以至于他们希望将它们用于大容量、短期用例,例如 IoT 数据提取、流数据处理和移动应用程序后端。

新的快捷工作流程
今天,作为现有标准工作流的一个选项,我们将推出快捷工作流。快捷工作流使用相同的声明式规范模型(Amazon States Language),但专为那些大容量、短期用例而设计。以下是您需要了解的一些事项:

触发 – 您可以使用事件和与一长串 AWS 服务关联的读/写 API 调用来触发快捷工作流的执行。

执行模型 – 快捷工作流使用最少一次执行模型,并且不会尝试自动重试任何失败的步骤,但是您可以使用 Retry 和 Catch,如错误处理中所述。这些步骤没有检查点,因此每个步骤的状态信息不可用。成功和失败记录在 CloudWatch Logs 中,您可以完全控制日志记录级别。

工作流步骤 – 快捷工作流程支持许多与标准工作流相同的服务集成,但活动任务除外。您可以启动长期运行的服务,例如 AWS Batch、 和 Amazon SageMaker,但是您不能等待它们完成。

持续时间 – 快捷工作流最多可以运行 5 分钟挂钟时间。它们可以调用其他快捷或标准工作流,但是不能等待它们完成。您也可以从标准工作流中调用快捷工作流,将这两种类型组合在一起,以满足应用程序的需求。

事件速率 – 快捷工作流旨在支持每秒大于 100000 个事件的帐户级调用速率。默认情况下,帐户配置为每秒 6000 个事件,像往常一样,我们将根据要求提高速率。

定价 – 标准工作流根据状态转换次数定价。快捷工作流根据调用次数定价,GB/秒费用根据用于在执行期间跟踪工作流状态的内存量定价。虽然不能直接比较定价模型,但快捷工作流在规模上将更具成本效益。要了解更多信息,请阅读 AWS Step Functions 定价

如您所见,有关标准工作流的大多数信息也适用于快捷工作流! 您可以将某些标准工作流替换为快捷工作流,并且可以使用快捷工作流来构建新型应用程序。

使用快捷工作流
可以创建一个快捷工作流,并且只需几分钟便可以将其附加到任何所需的事件上。只需在控制台中选择快捷类型即可:

然后定义状态机:

配置 CloudWatch 日志记录,并添加标签:

现在,可以将快捷工作流附加到事件源。打开 EventBridge 控制台并创建一个新规则:

定义一个与单个 S3 存储桶上的 PutObject 事件匹配的模式:

选择我的快捷工作流作为事件目标,添加标签,然后单击创建

仅当具有设置为记录对象级活动的 CloudTrail 路径时,才会发生特定事件:

然后,将图像上传到存储桶,并检查 CloudWatch Logs 组以确认我的工作流按预期运行:

为使测试更逼真,可以一次上传数百个映像,并确认以高并发率调用 Lambda 函数:

还可以使用 Step Functions 控制台中新的监控选项卡来查看特定于状态机的指标:

现已推出
您现在可以在所有 AWS 区域中创建和使用 AWS Step Functions 快捷工作流!

Jeff

本篇作者

Jeff Barr

AWS 首席布道师; 2004年开始发布博客,此后便笔耕不辍。