白鹿 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 Adapter** 和 **SnapStart**,可快速浏览一下 template 的内容,具体如下图所示: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/0fd737290d1546bba6282cc3e9089c87.png) ***注** :Amazon Serverless Application Model (Amazon SAM) 模板是一种使用基础设施即代码(IaC)来定义无服务器应用程序的文件。它基于 AWS CloudFormation 模板格式,并引入了特定于无服务器应用的简化语法。SAM 模板允许开发人员用更少的代码快速定义他们的无服务器应用程序架构,同时保持与 AWS CloudFormation 的兼容性。**AWS Serverless Application Model** 体验地址:* ### 2.2、编译和部署到 Amazon Lambda 我们最后执行 SAM 命令进行 lambda 函数的打包和部署。 打包,命令如下: ```powershell sam build ``` 具体如下图所示: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1208ea9348714f30b624d2a91f9427dc.png) 部署,命令如下: ```powershell sam deploy --region us-west-2 ``` 具体如下图所示: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c91cdde9b783480b9463c3d679ee0993.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3e2d7a9cf2ab476c9ad6c07e24cf572f.png) 部署完成后,会输出 3个 URL,分别是管理后台 API,后台管理和移动端商城,具体如下图所示: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/1123a1e4b17f4ee8baaf6f7148e09c91.png) ### 2.3、功能测试与验证 打开 Admin endpoint API URL 访问管理后台 API:(每个人可能不一样),具体如下图所示: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/4a449bf2faf240fbadce99eb4a1ea926.png) 打开 Admin Web Homepage UR 访问后台管理端:(每个人可能不一样),具体如下图所示: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d2de4fc8842f431985ae7a6cd4c454ac.png) 打开 Mobile Mall Site URL 访问店铺商城端:(每个人可能不一样),具体如下图所示: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e473563f97f74e388d2d664b8556e953.png) ## 三、对比 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 体验地址** :* 未使用 Snapstart 功能的 lambda 运行时间,具体如下图所示: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/9a823c7cf8154d7cab65e9eddf4e947a.png) 使用 Snapstart 功能的 lambda 运行时间,具体如下图所示: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/a3d12b40ab4b4ee59fa3864a5c00b38a.png) ## 四、资源清理 **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 控制台的堆栈页面上,选择您要删除的堆栈。该堆栈必须当前正在运行。 * 在堆栈详细信息窗格中,选择删除。 * 出现提示时,选择删除堆栈。 等待几分钟,直到堆栈被删除,具体如下图所示: ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b648fdabc5f444db876b35c7a89f10a1.png) ## 五、实验总结 祝贺您构建了一个无服务器电商应用程序,本次工作坊完成了如何使用无服务器服务和人工智能工具构建部署无服务器应用程序。 现在,您已经了解了 **[Amazon Lambda](https://aws.amazon.com/cn/lambda/?nc1=h_ls)** 、 **[Lambda Web Adapter](https://github.com/awslabs/aws-lambda-web-adapter)**。 这个研讨会只是个开始,您还可以继续学习用无服务器和通用人工智能工具构建您的应用。 **[Amazon Q](https://aws.amazon.com/cn/q/?nc2=h_ql_prod_ml_q)** 、**[Amazon Bedrock](https://aws.amazon.com/cn/bedrock/?nc2=h_ql_prod_ml_br)**。 *** ** * ** *** **文章作者** :[白鹿第一帅](https://blog.csdn.net/qq_22695001),**作者主页** :,未经授权,严禁转载,侵权必究! *** ** * ** *** ## 总结 现在,是时候将所学付诸实践了。轻轻一点,"注册海外账号",立即免费踏入属于您的云端构建世界。作为新注册的您,更能体验到长达 12 个月的免费使用权,涵盖云计算、云数据库、云存储与前沿的生成式 AI 服务等 100 余种云产品与服务。更值一提的是,您还将全面享受亚马逊云科技的海外区域节点,为您的实战构建之旅铺设坚实的基石。不再等待,立即开启您的云上探索之旅吧!同时,在云上探索实验室中,我们还有更多丰富多彩的实验内容,让您的学习之旅永不止步。期待您的热情参与,共同体验这场技术的盛宴,一起成长,一起探索更广阔的科技天地。 ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/8fe8adfcdf7cfc8b800dbeaae0c69ea4.jpeg) *** ** * ** *** > 我是白鹿,一个不懈奋斗的程序猿。望本文能对你有所裨益,欢迎大家的一键三连!若有其他问题、建议或者补充可以留言在文章下方,感谢大家的支持!

相关推荐
huoren_no14 天前
基于Netlify + Localtunnel 实现本地项目“无服务器”部署上线
云原生·serverless
老马啸西风5 天前
MOSN(Modular Open Smart Network)-00-聊一聊 MOSN
云原生·中间件·开源·serverless·go·service_mesh
桂月二二7 天前
云原生无服务器计算:事件驱动的原子化运算革命
云原生·serverless
阿里云大数据AI技术8 天前
在EMR Serverless Spark中实现StarRocks读写操作
大数据·分布式·云原生·spark·serverless·emr
腾讯云大数据9 天前
腾讯云EMR Serverless HBase上线:全托管服务,开箱即用
云原生·serverless·云计算·腾讯云·hbase
云上的阿七10 天前
无服务器架构将淘汰运维?2025年云计算形态预测
运维·架构·serverless
浏览器爱好者14 天前
Google Cloud Run 如何实现无服务器(Serverless)部署?
云原生·serverless
kngines14 天前
【实战ES】实战 Elasticsearch:快速上手与深度实践-8.2.1AWS OpenSearch无服务器方案
大数据·elasticsearch·搜索引擎·serverless
笑远19 天前
无服务器数据库
数据库·云原生·serverless