开发人员使用 AWS Step Functions 这一可视化工作流服务来构建分布式应用、自动化 IT 和业务流程,并以最少的代码编排 AWS 服务。
任何工作流状态都有可能遇到运行时错误。错误可能由于多种原因发生,包括状态机定义问题、任务失败、不正确的权限以及来自下游服务的异常。默认情况下,当某一状态报告错误时,Step Functions 会使工作流执行失败。Step Functions 允许通过 处理错误 来进行重试、捕获和回退到定义状态。
鲨鱼加速器下载安装现在,用户还可以从失败状态重新启动工作流,跳过已经成功执行的先前步骤。这意味着工作流的完成速度更快,成本更低。用户只能从失败的状态中使用与上一个不成功状态相同的输入来再次启动工作流;且不可使用与初始工作流执行不同的状态机定义来进行重启。
对于诸如网络连接问题或短暂服务不可用等瞬态问题,建议使用重试机制。用户可以配置重试次数、间隔和退避速率,让工作流有多次尝试成功完成任务的机会。
在某些情况下,导致错误的根本原因需要较长的调查或解决时间,重启则成为一个有价值的工具。例如,假如下游服务遭遇长时间宕机或需要手动干预如更新数据库或对 Lambda 函数进行代码更改,此时能够重新启动工作流将为解决根本问题提供时间。
建议采用结合重试和重启机制的混合策略:
重试机制 配置一组初始重试,用于自动解决可重定向的错误。这确保了瞬态问题能够及时解决,工作流能够顺利进行而不至于出现不必要的延迟。错误捕获和重启 如果重试机制未成功,则允许状态失败,并利用重启功能从最后一个不成功的状态重新启动工作流。这种方法允许在错误存在或需要外部干预的情况下进行干预。AWS 对标准工作流的收费基于运行工作负载所需的状态转换数量。每当工作流的某一步骤运行,Step Functions 就会计算一次状态转换。Step Functions 会对所有状态机的状态转换总数收费,包括重试。费用为每 1000 次状态转换 0025。这意味着减少状态转换的数量将降低运行标准工作流的成本。
如若工作流包含许多步骤,包含并行或映射状态,或者容易出错而需频繁重跑,这个新特性将大幅降低费用。您只需为失败状态之后的每个状态转换及所有作为重跑一部分调用的下游服务支付费用。
以下示例解释了重试一个失败工作流的费用影响,以及是否使用重启。在此示例中,Step Functions 工作流对 Amazon Transcribe 进行编排,以生成 mp4 文件的文本转录。
由于失败状态发生在工作流末端,重启执行不会运行成功状态,减少了整体成功完成时间。如果这个工作流频繁失败,减少转换和执行时长的价值将愈发明显。
重启仅适用于标准工作流。用户可以通过 AWS CLI、AWS SDK 或使用 Step Functions 控制台 从失败步骤程序性地重启工作流。
在 Step Functions 控制台中,选择您要重启的失败工作流,然后选择 Redrive。

弹出窗口会显示执行细节。选择 Redrive execution。
要从失败状态程序性地重启工作流调用 新的重启执行 API 操作。相同的工作流执行将从最后一个不成功的状态开始,并使用与初始失败工作流执行中最后一个不成功状态相同的输入。
Step Functions 为标准工作流引入的重启功能,使用户能够从失败的工作流执行中重新开始,而不必重启整个工作流。这能有效缩短工作流的完成时间,降低处理失败执行的成本,原因在于减少了状态转换和下游服务调用的数量。
访问 Serverless Workflows 集合 浏览众多可部署的工作流,助力构建无服务器应用。
标签 无服务器
电话:13594780397
联系人:周经理
邮箱:proportionate@qq.com
网址:https://www.qiyeseoer.com
地址:福安市艳摘谷187号