探索 Step Functions 工作流程的用例 - AWS Step Functions

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

探索 Step Functions 工作流程的用例

借 AWS Step Functions助,您可以构建能够随着时间的推移管理状态、根据传入的数据做出决策以及处理错误和异常的工作流程。

数据处理

随着来自不同来源的数据量的增长,组织需要更快地处理数据,这样他们才能快速做出明智的业务决策。为了大规模处理数据,组织需要灵活地调配资源,来管理他们从移动设备、应用程序、卫星、市场营销和销售、运营数据存储、基础设施等接受的信息。

借助水平扩展和容错工作流程,Step Functions 可以运行数百万个并发执行。使用带并行工作流状态状态的 parallel 执行可以更快地处理数据。或者,您可以使用映射工作流程状态状态的动态并行性来迭代数据存储中的大型数据集,例如 Amazon S3 存储桶。Step Functions 还提供重试失败的执行的功能,或者选择特定的路径来处理错误,而无需管理复杂的错误处理流程。

Step Functions 可直接与由提供的其他数据处理服务集成, AWS 例如AWS Batch用于批量处理、EMR用于大数据处理的 A mazonAWS Glue用于数据准备的 Athena、用于数据分析和计算的 Athena。AWS Lambda

客户使用 Step Functions 完成的数据处理工作流类型的示例包括:

文件、视频和图像处理

  • 将一系列视频文件转换为大小或分辨率不同的文件,从而适配显示这些文件的设备,例如手机、笔记本电脑或电视。

  • 将用户上传的大量照片转换为缩略图或各种分辨率的图像,以便在用户的网站上显示。

  • 将半结构化数据(例如CSV文件)与非结构化数据(例如发票)结合起来,生成每月发送给业务利益相关者的业务报告。

  • 将卫星收集的地球观测数据转换为相互对应的格式,然后添加在地球上收集的其他数据来源以获得更多见解。

  • 从各种运输方式中获取产品的运输日志,并使用蒙特卡罗模拟进行优化,然后将报告发送回使用您的运输运送货物的组织和人员。

协调提取、转换和加载 (ETL) 作业:

  • 使用一系列数据准备步骤,将销售机会记录与营销指标数据集相结合 AWS Glue,并生成可在整个组织中使用的商业智能报告。

  • 创建、启动和终止用于大数据处理的 Amazon EMR 集群。

批处理和高性能计算 (HPC) 工作负载:

  • 构建基因组二级分析管道,将原始的全基因组序列处理成变异调用。将原始文件与参考序列对齐,并使用动态并行调用指定染色体列表上的变异。

  • 通过使用不同的电气和化合物模拟各种布局,提高下一代移动设备或其他电子产品的生产效率。通过各种模拟对工作负载进行大批量处理,以便获得最佳设计。

机器学习

机器学习为组织提供了一种快速分析收集的数据的方法,以识别模式并在最少的人为干预下做出决策。机器学习从一组初始数据(称为训练数据)开始。训练数据可以提高机器学习模型的预测准确性,并作为模型学习的基础。在认为经过训练的模型足够精确以满足业务需求之后,您可以将该模型部署到生产环境中。Github 上的AWS Step Functions 数据科学项目是一个开源库,它提供使用亚马逊 SageMaker 和 Step Functions 预处理数据、训练然后发布模型的工作流程。

预处理现有数据集是组织创建训练数据的常用方式。这种预处理方法可以添加信息,例如通过标记图像中的对象、注释文本或处理音频。要预处理数据,你可以使用 AWS Glue,也可以创建一个在 Jupyter Notebook 中运行的 SageMaker 笔记本实例。数据准备就绪后,可以将其上传到 Amazon S3 进行访问。训练机器学习模型后,您可以调整每个模型的参数以提高准确性。

Step Functions 提供了一种在上 SageMaker编排 end-to-end 机器学习工作流程的方法。这些工作流可能包括数据预处理、后处理、特征工程、数据验证和模型评估。将模型部署到生产环境后,您可以完善和测试新方法,以持续改善业务成果。您可以直接在 Python 中创建可用于生产的工作流程,也可以使用 Step Functions 数据科学SDK来复制该工作流程,尝试新选项,并将经过改进的工作流程投入生产。

客户使用 Step Functions 的机器学习工作流类型包括:

欺诈侦测

  • 识别并防止欺诈性交易(例如信用欺诈)的发生。

  • 使用经过训练的机器学习模型侦测并预防账户盗用。

  • 识别促销滥用行为,包括创建虚假账户,以便您可以快速采取行动。

个性化和推荐

  • 根据对目标客户兴趣的预测,向其推荐产品。

  • 预测客户是否会将其账户从免费套餐升级为付费订阅。

数据扩充

  • 将数据扩充作为预处理的一部分,为更精确的机器学习模型提供更好的训练数据。

  • 为文本和音频摘录添加注释,以便添加语法信息,例如讽刺和俚语。

  • 为图像中的其他对象添加标签,为模型学习提供关键信息,例如对象是苹果、篮球、岩石还是动物。

微服务编排

Step Functions 为你提供了管理微服务工作流程的选项。

微服务架构将应用程序分解为松耦合的服务。这样做的好处包括提高可扩展性、增强弹性和加快上市时间。每个微服务都是独立的,因此无需扩展整个应用程序,即可轻松纵向扩展单个服务或功能。各个服务是松散耦合的,因此独立的团队可以专注于单个业务流程,而无需了解整个应用程序。

微服务还提供适合您业务需求的单个组件,无需重写整个工作流程即可为您提供灵活性。不同的团队可以使用他们选择的编程语言和框架来处理他们的微服务。

对于长时间运行的工作流程,您可以使用具有 AWS Fargate 集成功能的标准工作流程来编排在容器中运行的应用程序。对于需要即时响应的短期、高容量工作流程,Synchronic Express 工作流程是理想的选择。一个例子是基于 Web 的应用程序或移动应用程序,它们需要完成一系列步骤才能返回响应。您可以直接从 Amazon API Gateway 触发同步快速工作流程,在工作流程完成或超时之前,连接一直处于打开状态。对于不需要即时响应的短期工作流,Step Functions 还提供了异步快速工作流。

一些使用 API Step Functions 的编排示例包括:

同步或实时工作流

  • 更改记录中的值;例如更新员工的姓氏并使更改立即可见。

  • 在结账时更新订单,例如添加、移除或更改商品数量;然后立即向客户展示更新的购物车。

  • 运行快速处理任务,并立即将结果返回给请求者。

容器编排

  • 使用亚马逊 Elastic Kubernetes Service 在 Kubernetes 上运行作业,或者使用 Fargate 在亚马逊弹性容器ECS服务 () 上运行作业,并 AWS 与其他服务集成,例如通过亚马逊发送通知SNS,作为相同工作流程的一部分。

IT 和安全自动化

借助 Step Functions,您可以创建自动缩放工作流程并对工作流程中的错误做出反应的工作流程。您的工作流程可以自动重试失败的任务,并使用指数退避来处理错误

在 IT 自动化场景中,错误处理对于管理复杂而耗时的操作至关重要,例如升级和修补软件、部署安全更新以解决漏洞、选择基础架构、同步数据和路由支持工单。通过自动执行重复和耗时的任务,您的组织可以快速、一致地大规模地完成例行操作。您的工作重点可以转移到战略工作上,例如功能开发、复杂的支持请求和创新,同时满足您的运营需求。

当需要人工干预才能继续工作流程时,例如批准大幅增加信用额度,您可以在 Step Functions 中定义分支逻辑,这样低于限额的请求就会自动获得批准,而达到该限额的请求则需要人工批准。当需要人工批准时,Step Functions 可以暂停工作流程,等待人工回复,然后在收到响应后继续工作流程。

自动化工作流程的一些示例包括以下内容:

IT 自动化

  • 自动修复诸如开放SSH端口、磁盘空间不足或 Amazon S3 存储桶被授予公共访问权限之类的事件。

  • 自动部署 AWS CloudFormation StackSets。

安全自动化

  • 自动响应用户和用户访问密钥被泄露的场景。

  • 根据策略措施自动修复安全事件响应,例如将操作限制在特定范围内。ARNs

  • 在收到网络钓鱼电子邮件后的几秒钟内向员工发出警告。

人工审批

  • 自动进行机器学习模型训练,然后在部署更新的模型之前获得数据科学家对模型的批准。

  • 根据情绪分析自动发送客户反馈,从而快速将负面评论上报以供审核。