概述
Amazon Step Functions 为现代应用程序提供无服务器编排。编排功能可以将工作流分解为多个步骤、添加流逻辑并跟踪不同步骤之间的输入和输出,从而集中管理工作流。在应用程序执行时,Step Functions 会维护应用程序的状态,准确跟踪应用程序所处的工作流步骤,并存储在应用程序组件之间传递的数据的事件日志。这意味着如果出现网络故障或组件暂停,应用程序可以在恢复后继续完成被中断的工作。
Step Functions 可以让应用程序的开发更快速、更直观,因为您可以独立于应用程序的业务逻辑来定义和管理其工作流。对其中一个应用程序进行更改不会影响另一个应用程序的进程。您可以在一个位置轻松更新和修改工作流,而不必费力地管理、监控和维护多个点到点集成。Step Functions 可将您的函数和容器从多余的代码中解放出来,因此您的应用程序编写速度更快、弹性更强且更易于维护。
工作流配置
利用 Step Functions,您可以将工作流定义为状态机,而状态机可以将复杂的代码转换为易于理解的语句和图表。您可以更快速、更轻松地构建应用程序并确认其在执行您需要的功能。阅读有关 Step Functions 工作原理的更多信息。
内置服务基元
Step Functions 为您的工作流提供了名为“状态”的现成步骤,这些步骤可为您实施基本服务基元,这意味着您可以从应用程序中删除该逻辑。状态可以将数据传递给其他状态或微服务,可以处理异常、添加超时、做出决策以及并行执行多个路径等等。了解有关状态的更多信息。
亚马逊云科技服务集成
使用 Amazon Step Functions 服务任务,您可以对 Step Functions 工作流进行配置,以便调用其他亚马逊云科技服务。这些服务包括计算服务(Amazon Lambda、Amazon ECS、Amazon Fargate)、数据库服务(Amazon DynamoDB)、消息收发服务(Amazon SNS 和 Amazon SQS)、数据处理服务(Amazon Batch 和 Amazon Glue、Amazon EMR)以及机器学习服务(Amazon SageMaker)。了解有关服务任务的更多信息。
协调分布式组件
Step Functions 可以协调支持 HTTPS 连接的任何应用程序,而无论其托管在哪个位置,例如 Amazon EC2 实例、移动设备或本地服务器。利用 Step Functions,您可以快速创建能够利用亚马逊云科技服务和您自己的微服务的分布式应用程序。了解有关活动任务的更多信息。
组件重用
Amazon Step Functions 可以协调现有 Lambda 函数和微服务并将其整合到稳定的应用程序内,并且您可以将其快速重新连接到新的组合中。您工作流中的任务可以在任何位置运行,这些位置包括实例、容器、函数和移动设备。了解如何重复使用现有应用程序组件。
工作流抽象化
Step Functions 可以将应用程序的逻辑与应用程序的实施严格分离。您可以对步骤进行添加、移动、交换和重新排序,无需更改业务逻辑。通过关注点的这种分离,您的工作流可以实现模块性和可扩展性,并且易于维护,支持重复使用代码。
状态管理
Step Functions 在执行期间维护应用程序的状态,包括跟踪应用程序处于哪个执行步骤,以及存储在工作流步骤之间移动的数据。这意味着您无需通过数据存储或将复杂的状态管理添加到所有任务中来自行管理状态。
内置错误处理
Amazon Step Functions 可以通过内置的尝试/捕捉和重试功能自动处理错误和异常,无论任务的完成时间是几秒钟还是几个月。您可以自动重试失败或超时的任务,以不同的方式响应不同类型的错误,并通过回退到指定的清理和恢复代码来正常恢复。详细了解 Step Functions 错误处理以及如何使用状态机处理错误状态。
执行历史记录
Amazon Step Functions 可以提供实时诊断和控制面板、与 Amazon CloudWatch 和 Amazon CloudTrail 集成,并会记录每次执行情况,包括总体状态、失败的步骤以及输入和输出。如果出现问题,您不仅可以快速确定问题所在,还可以快速确定原因,并快速排除故障和修复故障。了解有关 Step Functions 监控与日志记录功能的更多信息。
可视化监控
启动应用程序就像按下按钮一样简单,然后直观地观察步骤的执行,这样您就可以快速验证所有内容是否按顺序运行并且符合预期。控制台可以清楚地突出显示错误,因此您可以快速确定错误的根本原因并解决问题。
高可用性
Amazon Step Functions 具有内置容错能力,可以在每个区域中跨多个可用区维持服务容量,从而保护应用程序免受单个计算机或数据中心故障的影响。这有助于确保服务本身及其运行的应用程序工作流的高可用性。
自动扩缩
Amazon Step Functions 可以自动扩展操作和底层计算,以便针对不断变化的工作负载为您运行应用程序的不同步骤。Step Functions 可自动扩展,以帮助确保应用程序工作流的性能随着请求频率的增加而保持一致。
安全性与合规性
Amazon Step Functions 与 Amazon Identity and Access Management(IAM)集成,并且会针对工作流中使用的所有资源推荐权限最低的 IAM 策略。 Step Functions 使用 Amazon PrivateLink 支持 VPC 端点(VPCE)。您可以从 VPC 支持的 Amazon Lambda 函数和其他亚马逊云科技服务中访问 Step Functions,无需通过公有互联网。了解有关 Step Functions 安全性与身份验证的更多信息。
按使用量付费
使用 Amazon Step Functions,您需要为每次状态转换付费。费用按转换次数收取,而且无论每个状态持续多长时间(最长一年),您都无需为空闲时间付费。因此,无论执行次数是几次还是几千万次,Step Functions 都是一种经济高效的选择。了解有关 Step Functions 定价的更多信息。