开始构建 Serverless 事件驱动型应用程序

演讲者介绍了如何使用AmazonWebServices(AWS)的Serverless技术,如Lambda、EventBridge、DynamoDB和ApplicationComposer,构建可扩展、模块化的应用程序。通过实例展示,包括汉语词汇提醒应用,强调了无服务器架构的优势、CI/CD和基础设施即代码的重要性。
摘要由CSDN通过智能技术生成

关键字: [Amazon Web Services re:Invent 2023, Amazon Application Composer, Serverless Applications, Event Driven Architectures, Application Composer, Amazon Web Services Services, Lambda Functions]

本文字数: 1600, 阅读完需: 8 分钟

视频

如视频不能正常播放,请前往bilibili观看本视频。>> https://www.bilibili.com/video/BV1tw411b7Me

导读

了解如何开始构建可以解决常见问题的 Serverless Web 应用程序。在本论坛中,了解将解决方案从概念原型化为使用 Amazon API 网关、Amazon Lambda、Amazon EventBridge、Amazon Step Functions、Amazon DynamoDB、Amazon Application Composer 等的全功能应用程序的过程。了解为何 Serverless 是一个伟大的工具集,用于尝试新想法,以及 Serverless 应用程序的可扩展性和模块性如何允许您从小处着手,并快速将想法变成现实。

演讲精华

以下是小编为您整理的本次演讲的精华,共1300字,阅读时间大约是6分钟。如果您想进一步了解演讲内容或者观看演讲全文,请观看演讲完整视频或者下面的演讲原文。

艾米丽·希亚(Emily Shea)担任亚马逊云科技(Amazon Web Services)的应用集成上市团队负责人。在2022年re:Invent上,她向广大观众分享了如何开始构建事件驱动的无服务器应用的经验。她的目标是帮助观众避免她曾面临的一些常见陷阱,并加速他们在无服务器领域的征程。

艾米丽表示,无服务器应用的吸引力在于它消除了管理服务器和基础设施的繁琐工作。通过使用无服务器技术,可以根据应用程序流量自动扩展,采用按使用量付费的计费方式,从而只需为实际使用的部分付费。此外,无需关注基础设施管理,开发人员可以更快地构建和部署应用程序。

为了展示如何开始使用无服务器,艾米丽提供了一个练习汉语词汇的应用程序示例。该应用程序需要定期调度以发送每日提醒,从数据库中随机选择一个字词,并发送包含该字的文本消息。这个简单的使用案例展示了如何将亚马逊云科技的服务(如EventBridge用于调度,Lambda函数用于代码执行,S3用于存储,以及SNS用于消息传递)结合在一起创建一个完整的无服务器应用程序。

艾米丽还提出了其他启动想法,如检查天气预报并推荐服装的应用程序,或使用Rekognition或Comprehend等机器学习服务处理图像或文档。她还提到了亚马逊云科技开发者倡导者构建的一个更复杂的示例——开源无服务器视频应用程序。

艾米丽强调,尽管无服务器主要用于简单的个人应用程序,但亚马逊云科技的主要客户(如荷兰邮政、全美国家儿童医院和墨西哥鸡肉贝尔)也使用这些相同的服务来运行大规模的关键任务工作负载。例如,荷兰邮政利用Lambda函数和DynamoDB处理其物流网络中每天超过100万个包裹,这使其能够在节假日等高峰期实现无缝扩展。

全国儿童医院(Nationwide Children's Hospital)利用Amazon Step Functions和Athena构建了一个分析应用程序,以自动化工作流程并从数PB的儿童癌症数据中提取见解。这一举措加速了研究进程并优化了治疗方案。

Taco Bell通过EventBridge开发了一个应用程序,能够从第三方送货服务接收订单事件,并在司机抵达餐厅时实时将这些事件路由至适当的销售点系统。

这些案例展示了无服务器模型在支持简单个人应用和应对高度复杂、处理每日数百万交易的任务关键应用方面的多功能性。

艾米丽提供了一套核心服务,作为构建无服务器应用程序的工具箱,包括:

  • 数据层:用于存储的S3和用于数据库的DynamoDB
  • 逻辑层:Lambda函数
  • 集成:用于工作流的Step Functions、用于消息队列的SQS、用于事件路由的EventBridge以及用于通知的SNS
  • 表示层:API Gateway用于API、Cognito用于身份验证以及Amplify用于网页托管
  • AI/ML:Rekognition、Comprehend、Forecast等

基于她的基本词汇提醒应用程序理念,艾米丽将其映射到了亚马逊云科技服务:

  • EventBridge:用于触发应用程序的日常事件
  • Lambda:从数据库获取单词并将消息发送给用户的函数
  • S3:存储完整单词数据库的CSV文件
  • SNS:用户收到每日词汇文本消息

她强调了使用基础设施即代码的重要性,如Serverless Application Model(SAM)框架,以定义和部署一致且可重复的环境。SAM提供了将亚马逊云科技资源配置为代码的简化语法。

艾米丽还强烈推荐尽早实施持续集成与持续部署(CI/CD)管道以实现自动化部署。例如,将应用程序代码存储在GitHub中,以便任何提交都会触发自动构建和部署管道,从而将更改同步到亚马逊云科技。

对于测试无服务器应用程序,艾米丽提供了一些建议,如在Lambda函数中对复杂逻辑进行单元测试,但在云中直接进行集成测试以验证服务的互操作性。她强调了使用SAM Accelerate工具快速将单个函数的代码更改同步到亚马逊云科技的能力,以进行更快的测试迭代。

接着,艾米丽通过增加词汇应用程序的复杂性来展示了多个迭代,展示了如何整合额外的服务:

通过API网关添加订阅网站后,我们使用了DynamoDB表来存储用户和偏好设置。Amplify负责管理UI和前端。我们采用了DynamoDB作为高效的无服务器数据库,具备自动扩展功能。同时,我们也探讨了访问模式的最佳实践。用户可以在我们的平台上保存测验结果和示例句子,Cognito负责用户身份验证。为了协调批量作业,我们使用了Step Functions来将单词转换为语音。此外,我们还尝试使用了CodeWhisperer的自然语言API来自动生成示例句子。在整个开发过程中,Emily一直致力于从小处开始并逐步发展,合理规划DynamoDB的高效查询访问模式,并采用事件驱动的架构。例如,当用户上传文档时,会触发Lambda函数异步处理,并使用亚马逊Comprehend进行摘要。用户可以立即获取生成的摘要,通过调用API网关和Lambda函数。Emily还分享了一些开发者的技巧,如使用视觉工作流程设计器(如新的Application Composer服务)来加速开发。她建议在云中直接测试应用程序集成,而不是在本地模拟服务。通过CI/CD自动化部署,我们可以实现快速且频繁的发布。Emily还展示了如何使用开源Local Stack框架在本地模拟亚马逊云科技服务,以简化开发者体验。为了展示无服务器开发的实际应用,Narin Gaa与Emily一起进行了现场演示,使用亚马逊云科技Application Composer构建了一个文档摘要应用程序。Narin使用拖放界面可视化地构建了应用程序架构:S3存储桶用于存储文档;由上传触发的Lambda函数,使用亚马逊CodeWhisperer进行摘要;DynamoDB表用于存储生成的摘要;API网关REST API,带有用于检索摘要的Lambda函数。Narin展示了如何使用Application Composer强制执行最佳实践,如默认加密和访问控制。它会生成亚马逊云科技CloudFormation基础设施代码模板,随时准备进行部署。

他向观众展示如何在Visual Studio Code中使用Application Composer扩展进行本地开发,该扩展具有新的本地同步功能。在使用SAM CLI部署栈之后,Narin展示了整个流程的运行情况——将文档上传到S3会自动生成存储在DynamoDB中的摘要版本。然后,可以通过调用API网关REST API按需求获取这些摘要。

Narin强调了轻松添加额外资源的方法,如用于Web托管的亚马逊云科技Amplify、用于工作流的Step Functions以及示例架构,以便随着时间的推移扩展应用程序功能。他建议观众学习一些学习资源,如亚马逊云科技Skill Builder,以继续他们的无服务器教育之旅并获得验证技术专长的亚马逊云科技Certified Cloud Practitioner和Developer Associate徽章。

总之,Emily和Narin成功地展示了如何使用亚马逊云科技服务从零开始构建无服务器应用程序。跟随Emily的真实世界经验和建议,观众应该有信心开始开发自己的无服务器应用。 Narin的现场演示提供了实际操作示例,以强调使用Application Composer加速开发的优点。总的来说,演讲者提供了多个引人入胜的客户故事以及任何人都可以利用无服务器优势的资源。他们强调了如何将Lambda、DynamoDB、API Gateway和S3等核心服务结合起来,以创建高度可扩展且成本高效的应用程序,而无需管理服务器。通过消除非差异化工作和基础设施管理,无服务器允许开发人员专注于业务逻辑并将创新更快地推向市场。

下面是一些演讲现场的精彩瞬间:

艾米丽·希恩在亚马逊云科技的Application Integration Go-To-Market团队中扮演着领导角色。

她最近进行了一场关于如何构建事件驱动型应用的演讲。

亚马逊云科技将繁琐的CloudFormation模板简化至一行简洁的代码,用于创建IAM策略、Lambda函数以及其他相关资源。

值得注意的是,亚马逊云科技的Application Composer是一个可视化设计工具,能轻松生成SAM模板,用于构建无服务器应用。

借助自动化的CI/CD管道部署无服务器应用,可以显著缩短开发周期。

此外,还提供了用于模拟对亚马逊云科技服务(如S3和SNS)调用的单元测试示例,以便测试复杂Lambda函数代码的逻辑。

总结

在本次演讲中,我们将探讨无服务器和基于事件的架构,以及如何利用亚马逊云科技服务实现这些概念。演讲者将通过分享在亚马逊云上构建无服务器应用程序的经验和最佳实践,为我们展示如何在实际项目中应用这些技术。

第一个关键点是演讲者如何通过构建一个简单的无服务器应用程序来学习汉语词汇。这个应用使用了EventBridge进行调度,Lambda处理逻辑,S3用于存储,SNS用于消息传递。这些核心亚马逊服务展示了如何构建基于事件的亚马逊无服务器应用程序。

第二个关键点在于应用程序的扩展过程,包括添加用户订阅、DynamoDB数据库、API Gateway和Cognito用于身份验证。这展示了如何随着需求的增长,逐步拓展无服务器应用程序的功能和服务范围。在这个过程中,演讲者还强调了合适的DynamoDB表设计的重要性。

第三个关键点涉及开发者工具的使用技巧,如使用SAM模板进行基础设施即代码操作,建立CI/CD管道以实现部署自动化,以及采用有效的测试方法。此外,演讲者还将讨论应用程序设计的最佳实践,如从小规模开始并逐步扩展功能。

总之,在亚马逊云上使用无服务器和基于事件的架构让开发者能够更高效地构建应用程序,同时减少了基础设施管理的负担。借助Lambda和EventBridge等核心服务,开发者可以轻松上手。遵循逐步发展的最佳实践,结合开发者工具和应用设计,将有助于创建可维护和可扩展的亚马逊无服务器应用程序。

演讲原文

https://blog.csdn.net/just2gooo/article/details/134831442

想了解更多精彩完整内容吗?立即访问re:Invent 官网中文网站!

2023亚马逊云科技re:Invent全球大会 - 官方网站

点击此处,一键获取亚马逊云科技全球最新产品/服务资讯!

点击此处,一键获取亚马逊云科技中国区最新产品/服务资讯!

即刻注册亚马逊云科技账户,开启云端之旅!

【免费】亚马逊云科技“100 余种核心云服务产品免费试用”

【免费】亚马逊云科技中国区“40 余种核心云服务产品免费试用”

亚马逊云科技是谁?

亚马逊云科技(Amazon Web Services)是全球云计算的开创者和引领者,自 2006 年以来一直以不断创新、技术领先、服务丰富、应用广泛而享誉业界。亚马逊云科技可以支持几乎云上任意工作负载。亚马逊云科技目前提供超过 200 项全功能的服务,涵盖计算、存储、网络、数据库、数据分析、机器人、机器学习与人工智能、物联网、移动、安全、混合云、虚拟现实与增强现实、媒体,以及应用开发、部署与管理等方面;基础设施遍及 31 个地理区域的 99 个可用区,并计划新建 4 个区域和 12 个可用区。全球数百万客户,从初创公司、中小企业,到大型企业和政府机构都信赖亚马逊云科技,通过亚马逊云科技的服务强化其基础设施,提高敏捷性,降低成本,加快创新,提升竞争力,实现业务成长和成功。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李白的朋友高适

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值