高级 Serverless 工作流模式和最佳实践

云计算
re:Invent
0
0
## 视频 <video src="https://dev-media.amazoncloud.cn/30-LibaiGenerate/31-LiBaiRebrandingVideo/API401-Advanced_serverless_workflow_patterns_and_best_practices-LBrebrandingWCaptionCN.mp4" class="bytemdVideo" controls="controls"></video> ## 导读 您是一名使用 Amazon Step Functions 工作流构建应用程序的经验丰富的[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)开发人员吗?您是否想要一份指南,帮助您在生产工作负载中释放 Amazon Step Functions 的全部威力?您是否在纠结是选择快速工作流还是标准工作流?或者是使用映射状态、并行状态还是嵌套工作流?在本讲座中,您可以学习到构建工作流和成本优化的最佳架构实践和可重复模式,并发现可用于构建安全、高规模、高性能[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)应用程序的便捷作弊码。真实的生产场景将说明这些优势。 ## 演讲精华 <font color = "grey">以下是小编为您整理的本次演讲的精华,共1400字,阅读时间大约是7分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。</font> 本段文字主要介绍了Ben Smith在亚马逊云科技的职责以及他在re:Invent上的演讲内容。作为亚马逊云科技的主要开发者倡导者,Ben Smith的演讲主题是关于高级[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)工作流模式和最佳实践。他热情地欢迎观众参加会议,并向大家介绍自己在加入亚马逊云科技后的经历。Ben主要使用亚马逊云科技的Step Functions功能来构建应用,这使得他有全球旅行的机会,并与成功利用Step Functions的客户互动。通过与客户的交流,Ben对客户面临的挑战和采用的最佳实践有了更深入的了解。 这次演讲是对Ben的这些学习经验的整合,形成了一套关于使用Step Functions开发健壮且具有弹性的[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)应用的推荐模式和最佳实践。他希望这次会议能提供有价值的信息,帮助观众在re:Invent上成功地使用Step Functions。 根据观众的兴趣,Ben认为与会者可能已经在使用Step Functions,他们正在寻求对自己的方法进行验证以及新的实施模式。他分享了演讲议程,旨在解释为什么在构建新微服务时应该首选Step Functions。 为了展示Step Functions的优势,Ben将一个简单的基于Lambda的从DynamoDB中检索项目的微服务与一个使用Step Functions工作流的等效实现进行了比较。使用Lambda函数的实现需要配置运行时、SDK、参数、查询、出口处理程序、上下文和事件对象,以及try/catch块,总共有超过20行的代码。而使用Step Functions工作流的实现只需要配置适当的参数,以更具可读性和可维护性且显著更少的代码实现了相同的结果。 Ben强调了Step Functions如何提供了单一的窗口来观察工作流程的执行情况,精确地找到故障发生的位置,并在数据通过每个状态时进行检查。他指出,在没有编排的情况下实施分布式异步[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)架构时,这种程度的可观测性是非常困难和复杂的。 本段文字主要介绍了Ben对Step Functions的一些看法和建议。他表示,Step Functions可以与超过220种亚马逊云科技服务进行集成,用户可以直接调用这些服务的SDK进行操作,而不需要启动Lambda函数。这使得Step Functions能够协调超过11,000个不同的操作。同时,他还介绍了两种执行模式:标准模式和快速模式。标准模式支持长达一年的执行时间,具有异步模式和严格的一次执行语义;而快速模式则提供更高的吞吐量,至少执行一次,但将工作流程的持续时间限制为5分钟。为了降低成本,Ben建议利用Step Functions的内置功能来替换那些用于简单数据转换的小型Lambda函数。例如,生成唯一ID的功能以前需要自定义的Lambda函数,但现在可以利用内置的States.UUID()内在函数,这样就不需要额外的费用。对于常见的同步应用中的轮询循环,Ben建议使用EventBridge和Step Functions的Emit/Wait状态来实现回调模式,这样在工作流程等待异步任务主动回调以触发后续操作时,工作流程可以暂停。最后,Ben通过一个实际示例展示了如何使用API Gateway直接调用Step Functions的工作流来实现REST CRUD API,从而避免了在两个服务之间插入Lambda函数导致的重复授权逻辑、更紧的权限控制以及更清晰的职责分离。 本段文字主要描述了Ben如何优化咖啡订购应用Serverless Espresso的问题,以及如何使用Step Functions内建功能来替换工作流程中用于简单数据转换的许多小Lambda函数。针对必须使用标准模式的工作流程,Ben建议将快速执行步骤的Express工作流程嵌套在较慢的父级标准工作流程中以最小化状态转换数量。此外,他强调了扩展性的重要性,并以一个视频处理工作流为例,展示了如何利用事件驱动的跨服务通信进行优化。 这段文字主要描述了几位技术专家在re:Invent上关于如何运用亚马逊的Step Functions和Serverless服务的演讲内容。他们探讨了如何通过分布式映射状态(Distributed Map)对大量S3对象或CSV数据进行处理以提高应用的并行处理能力。同时,他们也通过使用Saga模式和断路器模式实现了失败步骤的顺序补偿,提高了应用程序的健康检查能力。此外,专家们还展示了如何使用Step Functions根据业务逻辑来选择运行时环境,如在处理长视频时,可以根据视频长度决定是在Lambda和ECS Fargate之间进行选择。最后,他们还介绍了一些新功能,如恢复功能、HTTP状态、测试API、Bedrock集成和工作流程工作室集成等。建议读者查阅他们的公开仓库(s12d.com/workflows)以获取可重复使用的模板并将其应用于自己的账户。 总的来说,本·史密斯(Ben Smith)的演讲详细阐述了建议的Amazon Step Functions模式和最佳实践,并通过具体的例子展示了如何降低运营成本、提高灵活性、扩展功能、集成工作流程、实现规模化以及运用最新的功能。核心观点是,Step Functions作为一个强大的编排服务,可以在亚马逊云科技上构建、可视化、监控和维护[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)应用程序。 **下面是一些演讲现场的精彩瞬间:** 演讲者在了解观众及其参与讲座原因方面表现出了浓厚的兴趣。 ![](https://d1trpeugzwbig5.cloudfront.net/API401-Advanced_serverless_workflow_patterns_and_best_practices/images/rebranded/API401-Advanced_serverless_workflow_patterns_and_best_practices_0.png) 通过提高API的工作流能力,实现了更高的工作效率和对同步执行的优化。 ![](https://d1trpeugzwbig5.cloudfront.net/API401-Advanced_serverless_workflow_patterns_and_best_practices/images/rebranded/API401-Advanced_serverless_workflow_patterns_and_best_practices_1.png) 亚马逊云科技的Express工作流成本计算方式主要依据其内存分配和工作流程持续时长而定。 ![](https://d1trpeugzwbig5.cloudfront.net/API401-Advanced_serverless_workflow_patterns_and_best_practices/images/rebranded/API401-Advanced_serverless_workflow_patterns_and_best_practices_2.png) 为了降低开销并保持执行保障,可将长期运行的任务从标准工作流中提取至独立的Express工作流中。 ![](https://d1trpeugzwbig5.cloudfront.net/API401-Advanced_serverless_workflow_patterns_and_best_practices/images/rebranded/API401-Advanced_serverless_workflow_patterns_and_best_practices_3.png) 在亚马逊云科技的Step Functions中,内置函数可实现简单数据转换,无需依赖Lambda函数。 ![](https://d1trpeugzwbig5.cloudfront.net/API401-Advanced_serverless_workflow_patterns_and_best_practices/images/rebranded/API401-Advanced_serverless_workflow_patterns_and_best_practices_4.png) 演讲者还讲述了一个关于他年轻女儿询问航程时间的故事,以此类比工作流程中无效的轮询现象。 ![](https://d1trpeugzwbig5.cloudfront.net/API401-Advanced_serverless_workflow_patterns_and_best_practices/images/rebranded/API401-Advanced_serverless_workflow_patterns_and_best_practices_5.png) 如今,亚马逊云科技的App Composer已与Step Functions工作流工作室完成集成,用户可直接在IDE中构建[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)工作流。 ![](https://d1trpeugzwbig5.cloudfront.net/API401-Advanced_serverless_workflow_patterns_and_best_practices/images/rebranded/API401-Advanced_serverless_workflow_patterns_and_best_practices_6.png) ## 总结 本次演讲深入探讨了如何运用亚马逊云科技的Step Functions构建[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)应用的高级技巧。首先阐述了Step Functions在服务间工作流程的可视化和协调方面所具有的优势。一个显著特点是,相较于标准工作流程,大多数情况下使用Step Functions的Express工作流程更加快速、经济实惠。演讲者接着展示了一系列优化Step Functions工作流程的方法,例如避免轮询循环并采用回调模式。此外,一些值得关注的技巧还包括利用Step Functions的内置函数而非Lambda以降低开销,以及通过使用重启执行和错误处理等功能来构建有弹性的工作流程。在整个过程中,演讲者都强调了分布式映射状态等模式,以便轻松实现工作流程的并行化以提高高可扩展性。这次演讲为开发者提供了一个全面的概述,讲述了如何运用Step Functions构建健壮且成本优化的[无服务器](https://aws.amazon.com/cn/serverless/?trk=cndc-detail)应用的最佳实践。 ## 演讲原文 ## 想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站! [2023亚马逊云科技re:Invent全球大会 - 官方网站](https://webinar.amazoncloud.cn/reInvent2023/?s=8739&smid=19458 "2023亚马逊云科技re:Invent全球大会 - 官方网站") [点击此处](https://aws.amazon.com/cn/new/?trk=6dd7cc20-6afa-4abf-9359-2d6976ff9600&trk=cndc-detail "点击此处"),一键获取亚马逊云科技全球最新产品/服务资讯! [点击此处](https://www.amazonaws.cn/new/?trk=2ab098aa-0793-48b1-85e6-a9d261bd8cd4&trk=cndc-detail "点击此处"),一键获取亚马逊云科技中国区最新产品/服务资讯! ## 即刻注册亚马逊云科技账户,开启云端之旅! [【免费】亚马逊云科技“100 余种核心云服务产品免费试用”](https://aws.amazon.com/cn/campaigns/freecenter/?trk=f079813d-3a13-4a50-b67b-e31d930f36a4&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技“100 余种核心云服务产品免费试用“") [【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”](https://www.amazonaws.cn/campaign/CloudService/?trk=2cdb6245-f491-42bc-b931-c1693fe92be1&sc_channel=el&trk=cndc-detail "【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用“")
目录
亚马逊云科技解决方案 基于行业客户应用场景及技术领域的解决方案
联系亚马逊云科技专家
亚马逊云科技解决方案
基于行业客户应用场景及技术领域的解决方案
联系专家
0
目录
关闭