白鹿 Hands-on:消除冷启动——基于 Amazon Lambda SnapStart 轻松打造 Serverless Web 应用(二)

文章目录


前言

在这个环节中,我们将延续《白鹿 Hands-on:消除冷启动------基于 Amazon Lambda SnapStart 轻松打造 Serverless Web 应用(一)》,使用 Amazon Lambda 作为云上运行环境,让 litemall 在 Amazon Lambda 中运行:在本地打包 litemall-all 程序,将前后端整合为一个 Lambda 函数;使用 Lambda Web Adapter 运行 Java 后端项目,并使用 Lambda SnapStart 加速 Java 程序的冷启动。


声明:本文由作者"白鹿第一帅"于 CSDN 社区原创首发,未经作者本人授权,禁止转载!爬虫、复制至第三方平台属于严重违法行为,侵权必究。亲爱的读者,如果你在第三方平台看到本声明,说明本文内容已被窃取,内容可能残缺不全,强烈建议您移步"白鹿第一帅" CSDN 博客查看原文,并在 CSDN 平台私信联系作者对该第三方违规平台举报反馈,感谢您对于原创和知识产权保护做出的贡献!


文章作者白鹿第一帅作者主页https://blog.csdn.net/qq_22695001,未经授权,严禁转载,侵权必究!

一、前文回顾

白鹿 Hands-on:消除冷启动------基于 Amazon Lambda SnapStart 轻松打造 Serverless Web 应用(一)

实验地址------消除冷启动 ------ 基于Amazon Lambda SnapStart轻松打造Serverless Web应用https://dev.amazoncloud.cn/experience/cloudlab?id=6715bd3799168b381458daa7&visitfrom=kkkybz&sc_medium=owned&sc_campaign=cloudlab&sc_channel=kkkybz,具体如下图所示:


实验环境账号有效期为 12 小时,到期自动关停,请注意重要数据保护。点击立即注册,限时免费领取 12 个月 100+云服务!

  • 点击 "开始实验" 按钮,即可扫码进入实验环境。测试账号有效期仅为一天,过期后系统将自动回收清理,请不要上传您的重要数据。
  • 同时,点击 "注册海外账号" 按钮即可免费注册属于你的亚马逊云科技海外区账号,开启个性化的系统构建之旅,进一步探索更广泛、更深入的云服务领域并保留实验中构建的系统应用,尽情享受云上构建的无限可能!

注意 :如果您在自己的亚马逊云科技账户上进行实验,请务必在实验完成后根据清理资源板块部分的说明删除和关闭所有实验资源,以避免产生不必要的费用。

二、在 Lambda 上运行

[Lambda Web Adapter ] 是一个让 web 应用可以直接在 [Amazon Lambda] 上运行的开源工具。让开发者可以用熟悉的 web 框架开发应用,同时又可以获得无服务器计算的好处。

2.1、查看 Amazon SAM template

我们使用 Amazon SAM Template 来配置 Lambda 函数和相关的资源。项目根目录下的 template.yaml 就是 SAM 的 template,这个 template 已经预先配置好,包括 Lambda Web AdapterSnapStart,可快速浏览一下 template 的内容,具体如下图所示:


:Amazon Serverless Application Model (Amazon SAM) 模板是一种使用基础设施即代码(IaC)来定义无服务器应用程序的文件。它基于 AWS CloudFormation 模板格式,并引入了特定于无服务器应用的简化语法。SAM 模板允许开发人员用更少的代码快速定义他们的无服务器应用程序架构,同时保持与 AWS CloudFormation 的兼容性。AWS Serverless Application Model 体验地址:https://aws.amazon.com/cn/serverless/sam/

2.2、编译和部署到 Amazon Lambda

我们最后执行 SAM 命令进行 lambda 函数的打包和部署。

打包,命令如下:

powershell 复制代码
sam build

具体如下图所示:

部署,命令如下:

powershell 复制代码
sam deploy --region us-west-2

具体如下图所示:


部署完成后,会输出 3个 URL,分别是管理后台 API,后台管理和移动端商城,具体如下图所示:

2.3、功能测试与验证

打开 Admin endpoint API URL 访问管理后台 API:https://73lzidot4f.execute-api.us-west-2.amazonaws.com/admin/index/index(每个人可能不一样),具体如下图所示:

打开 Admin Web Homepage UR 访问后台管理端:https://73lzidot4f.execute-api.us-west-2.amazonaws.com/mgmt/index.html(每个人可能不一样),具体如下图所示:

打开 Mobile Mall Site URL 访问店铺商城端:https://73lzidot4f.execute-api.us-west-2.amazonaws.com/index.htm(每个人可能不一样),具体如下图所示:

三、对比 Snapstart 效果

  • 生成一个相同但没有 Snapstart 功能的 lambda。修改代码目录下的 template.yaml 文件,将 SnapStart:ApplyOn: PublishedVersions 注释掉。
  • 部署完成后,通过 X-Ray 的数据查看开启 SnapStart 前后的对比,可以得到在开启 SnapStart 部署 lambda 后,冷启动具备更短的运行时间。

注:AWS X-Ray 是 Amazon Web Services (AWS) 提供的一项服务,它帮助开发人员分析和调试分布式应用程序,特别是那些采用微服务架构的应用程序。X-Ray 通过收集有关应用程序处理请求的数据,并提供工具来查看、筛选这些数据,从而识别问题和优化性能的机会。AWS X-Ray 体验地址https://aws.amazon.com/cn/xray/

未使用 Snapstart 功能的 lambda 运行时间,具体如下图所示:

使用 Snapstart 功能的 lambda 运行时间,具体如下图所示:

四、资源清理

SAM Clean-up CloudFormation 堆栈清理

:SAM 命令通常指的是 Amazon Serverless Application Model (AWS SAM) 命令行界面(CLI)中使用的命令。AWS SAM CLI 是一个开源工具,它允许开发者在本地开发、测试和部署无服务器应用程序。这个工具是为那些使用 AWS Lambda 函数、API Gateway、DynamoDB 等服务构建的无服务器应用而设计的。通过 AWS SAM CLI,用户可以更轻松地管理这些资源,并将它们作为一组相关的组件进行处理。

  • 导航到 Amazon CloudFormation 控制台。
  • 在 CloudFormation 控制台的堆栈页面上,选择您要删除的堆栈。该堆栈必须当前正在运行。
  • 在堆栈详细信息窗格中,选择删除。
  • 出现提示时,选择删除堆栈。

等待几分钟,直到堆栈被删除,具体如下图所示:

五、实验总结

祝贺您构建了一个无服务器电商应用程序,本次工作坊完成了如何使用无服务器服务和人工智能工具构建部署无服务器应用程序。

现在,您已经了解了 Amazon LambdaLambda Web Adapter

这个研讨会只是个开始,您还可以继续学习用无服务器和通用人工智能工具构建您的应用。 Amazon QAmazon Bedrock


文章作者白鹿第一帅作者主页https://blog.csdn.net/qq_22695001,未经授权,严禁转载,侵权必究!


总结

现在,是时候将所学付诸实践了。轻轻一点,"注册海外账号",立即免费踏入属于您的云端构建世界。作为新注册的您,更能体验到长达 12 个月的免费使用权,涵盖云计算、云数据库、云存储与前沿的生成式 AI 服务等 100 余种云产品与服务。更值一提的是,您还将全面享受亚马逊云科技的海外区域节点,为您的实战构建之旅铺设坚实的基石。不再等待,立即开启您的云上探索之旅吧!同时,在云上探索实验室中,我们还有更多丰富多彩的实验内容,让您的学习之旅永不止步。期待您的热情参与,共同体验这场技术的盛宴,一起成长,一起探索更广阔的科技天地。


我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!

相关推荐
Elastic 中国社区官方博客3 小时前
Elasticsearch Serverless 中的数据流自动分片
大数据·数据库·elasticsearch·搜索引擎·serverless·时序数据库
Eric_见嘉16 小时前
翻遍 Vite 文档,教你面试官都不会的 3 种前端部署方案
运维·前端·serverless
Elastic 中国社区官方博客1 天前
提升搜索体验!—— 推出 Elastic Rerank 模型(技术预览版)
大数据·数据库·人工智能·elasticsearch·ai·云原生·serverless
nbsaas-boot6 天前
什么语言适合做 Serverless 开发?
云原生·serverless
Elastic 中国社区官方博客6 天前
Elastic Cloud Serverless:深入探讨大规模自动扩展和性能压力测试
大数据·运维·elasticsearch·搜索引擎·云原生·serverless·全文检索
黑色叉腰丶大魔王9 天前
《Serverless 架构:引领未来软件开发的新趋势》
云原生·架构·serverless
小黄编程快乐屋14 天前
electron-updater软件自动检测更新 +无服务器本地测试
javascript·electron·serverless
rocksun14 天前
在无服务器平台上运行无需GPU的AI模型
serverless·gpu
TiDB 社区干货传送门25 天前
我们是如何实现 TiDB Cloud Serverless 的 - 成本篇
云原生·serverless·tidb