概述
全部打开Amazon Step Functions 可以帮助解决任何可以细分为一系列步骤的计算问题或业务流程。它还适用于创建端到端工作流,以管理具有相互依赖性的任务。常见使用案例包括:
数据处理:将来自多个数据库的数据整合到统一报告中,优化大型数据集并将其缩减成有用格式的数据,或者协调多步骤分析和机器学习工作流
DevOps 和 IT 自动化:构建用于持续集成和持续部署的工具,或创建能够自动响应基础设施变更的事件驱动型应用程序
电子商务:自动执行关键任务型业务流程,如订单配送和库存跟踪
Web 应用程序:实现可靠的用户注册流程和登录身份验证
有关更多详细信息,请查看 Amazon Step Functions 使用案例。
您可以通过使用活动任务和服务任务配置状态机以执行工作。活动任务允许您将工作流中的特定步骤分配给在其他地方运行的代码(称为活动工作程序)。活动工作程序可以是任何能够建立 HTTP 连接的应用程序,可以托管在任何地方。例如,活动工作程序可以在 Amazon EC2 实例、移动设备或本地服务器上运行。活动工作程序会轮询用于工作的 Step Functions,从 Step Functions 中获取任何输入,使用代码执行工作,并返回结果。由于活动工作程序会请求工作,因此您可以轻松使用部署在防火墙后的工作程序。
服务任务允许您将工作流中的步骤连接到受支持的亚马逊云科技服务。Step Functions 会将请求推送到其他服务,以便其执行工作流操作,等待服务任务完成,然后继续下一步。
Amazon Step Functions 状态机可以包含活动任务与服务任务的组合。Amazon Step Functions 应用程序也可以将数据中心内运行的活动工作程序与云中运行的服务任务结合到一起。数据中心内的工作程序会与云中的任何服务任务一起继续正常运行。
您可以通过以下多种方式开始使用 Amazon Step Functions:
了解 Step Functions 控制台中的示例项目
比较
全部打开如果您在开发高度可扩展并且可审核的应用程序时需要协调服务组件,则应该考虑使用 Amazon Step Functions。如果您需要可靠且高度可扩展的托管队列,用于在不同服务之间发送、存储和接收消息,则应该考虑使用 Amazon Simple Queue Service(Amazon SQS)。Step Functions 会跟踪应用程序中的所有任务和事件。Amazon SQS 要求您自行实现应用程序级别的跟踪功能,尤其当您的应用程序使用多个队列时。Step Functions 控制台和可见性 API 可提供以应用程序为中心的查看方式,让您能够搜索执行、深入了解执行详情和管理执行。Amazon SQS 需要实现此类额外功能。Step Functions 提供多项功能以促进应用程序开发,例如在任务间传递数据以及灵活分配任务。Amazon SQS 要求实现某些应用程序层面的功能。您可以使用 Amazon SQS 构建基本的工作流以协调分布式应用程序,而 Step Functions 内置这一功能和一些应用程序层面的其他功能。
对于所有新的应用程序,您应该考虑使用 Amazon Step Functions,因为其可以利用可视化工作流提供更有效更敏捷的方式,以便协调应用程序组件。如果您需要外部信号介入流程,或者想要启动将结果返回父流程的子流程,则应该考虑使用 Amazon Simple Workflow Service(Amazon SWF)。利用 Amazon SWF,您可以编写决策程序将活动步骤与决策步骤分离,而不编写声明性 JSON 格式的状态机。这使您能够完全掌控编排逻辑,但会增加应用程序开发的复杂性。您可以用自己选择的编程语言编写决策程序,也可以通过 Flow Framework 使用构造异步交互的编程结构。
集成
全部打开通过 Amazon Step Functions 创建的工作流可以使用服务任务,以连接和协调其他亚马逊云科技服务。例如,您可以:
调用 Amazon Lambda 函数
运行 Amazon Elastic Container Service 任务或 Amazon Fargate 任务
获取 Amazon DynamoDB 表中的现有项目,或将新项目添加到 DynamoDB 表中
提交 Amazon Web Services Batch 作业并等待其完成
向 Amazon SNS 主题发布消息
向 Amazon SQS 队列发送消息
开始运行 Amazon Glue 作业
创建 Amazon SageMaker 作业,以便训练机器学习模型或者批量转换数据集
要了解有关使用 Step Functions 以连接其他亚马逊云科技服务的详细信息,请参阅 Amazon Step Functions 开发人员指南。您也可以在运行应用程序的状态机中创建任务,详见概览部分的常见问题:Amazon Step Functions 如何连接到我的资源?
安全性
全部打开Amazon Step Functions 与 Amazon Identity and Access Management(Amazon IAM)集成。您可以使用 IAM 策略控制对 Step Functions API 的访问。在 Amazon Step Functions 控制台中创建状态机时,Step Functions 会根据状态机定义中使用的资源为您推荐 IAM 策略。有关更多信息,请参阅 Amazon Step Functions 开发人员指南中的用于所连接服务的 IAM 策略。
Step Functions 还使用 Amazon PrivateLink 支持 VPC 端点(VPCE)。您可以从 VPC 支持的 Amazon Lambda 函数和其他亚马逊云科技服务中访问 Step Functions,无需通过公有互联网。有关更多信息,请参阅 Amazon Step Functions 开发人员指南中的适用于 Amazon Step Functions 的 Amazon Virtual Private Cloud 端点。