当前位置: 首页 > news >正文

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

文章目录

  • 前言
  • 一、前文回顾
  • 二、在 Lambda 上运行
    • 2.1、查看 Amazon SAM template
    • 2.2、编译和部署到 Amazon Lambda
    • 2.3、功能测试与验证
  • 三、对比 Snapstart 效果
  • 四、资源清理
  • 五、实验总结
  • 总结


前言

在这个环节中,我们将延续《白鹿 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 函数的打包和部署。

打包,命令如下:

sam build

具体如下图所示:

在这里插入图片描述
部署,命令如下:

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 余种云产品与服务。更值一提的是,您还将全面享受亚马逊云科技的海外区域节点,为您的实战构建之旅铺设坚实的基石。不再等待,立即开启您的云上探索之旅吧!同时,在云上探索实验室中,我们还有更多丰富多彩的实验内容,让您的学习之旅永不止步。期待您的热情参与,共同体验这场技术的盛宴,一起成长,一起探索更广阔的科技天地。

在这里插入图片描述


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

相关文章:

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

文章目录 前言一、前文回顾二、在 Lambda 上运行2.1、查看 Amazon SAM template2.2、编译和部署到 Amazon Lambda2.3、功能测试与验证 三、对比 Snapstart 效果四、资源清理五、实验总结总结 前言 在这个环节中,我们将延续《白鹿 Hands-on:消除冷启动——…...

ROC曲线

文章目录 前言一、ROC的应用?二、使用方式1. 数据准备2.绘图可视化 前言 在差异分析中,ROC曲线可以用来评估不同组之间的分类性能差异。差异分析旨在比较不同组之间的特征差异,例如在基因表达研究中比较不同基因在不同条件或组织中的表达水平…...

c++ 位图和布隆过滤器

位图(bitmap) 定义 位图是一种使用位数组存储数据的结构。每一位表示一个状态,通常用于快速判断某个值是否存在,或者用来表示布尔类型的集合。 特点 节省空间:一个字节可以表示8个状态。高效操作:位操作…...

阿里云CPU过载的一点思考

现象:阿里云ECS服务器连续5个周期CPU超90%告警 分析: max_connections和max_user_connections都做了限制,但是依然告警,服务器上有四个子服务,查看了每个服务的配置文件,发现使用同一个数据库账号&#x…...

单片机学习笔记 15. 串口通信(理论)

更多单片机学习笔记:单片机学习笔记 1. 点亮一个LED灯单片机学习笔记 2. LED灯闪烁单片机学习笔记 3. LED灯流水灯单片机学习笔记 4. 蜂鸣器滴~滴~滴~单片机学习笔记 5. 数码管静态显示单片机学习笔记 6. 数码管动态显示单片机学习笔记 7. 独立键盘单片机学习笔记 8…...

算法训练营day22(二叉树08:二叉搜索树的最近公共祖先,插入,删除)

第六章 二叉树part08 今日内容: ● 235. 二叉搜索树的最近公共祖先 ● 701.二叉搜索树中的插入操作 ● 450.删除二叉搜索树中的节点 详细布置 235. 二叉搜索树的最近公共祖先 相对于 二叉树的最近公共祖先 本题就简单一些了,因为 可以利用二叉搜索树的…...

Linux history 命令详解

简介 history 命令显示当前 shell 会话中以前执行过的命令列表。这对于无需重新输入命令即可重新调用或重新执行命令特别有用。 示例用法 显示命令历史列表 history# 示例输出如下&#xff1a;1 ls -l 2 cd /var/log 3 cat syslog执行历史记录中的命令 !<number>…...

Kafka知识体系

一、认识Kafka 1. kafka适用场景 消息系统&#xff1a;kafka不仅具备传统的系统解耦、流量削峰、缓冲、异步通信、可扩展性、可恢复性等功能&#xff0c;还有其他消息系统难以实现的消息顺序消费及消息回溯功能。 存储系统&#xff1a;kafka把消息持久化到磁盘上&#xff0c…...

【Android】EventBus的使用及源码分析

文章目录 介绍优点基本用法线程模式POSTINGMAINMAIN_ORDEREDBACKGROUNDASYNC 黏性事件 源码注册getDefault()registerfindSubscriberMethods小结 postpostStickyunregister 介绍 优点 简化组件之间的通信 解耦事件发送者和接收者在 Activity、Fragment 和后台线程中表现良好避…...

【大数据学习 | Spark调优篇】Spark之内存调优

1. 内存的花费 1&#xff09;每个Java对象&#xff0c;都有一个对象头&#xff0c;会占用16个字节&#xff0c;主要是包括了一些对象的元信息&#xff0c;比如指向它的类的指针。如果一个对象本身很小&#xff0c;比如就包括了一个int类型的field&#xff0c;那么它的对象头实…...

Linux:文件系统inode

早期&#xff0c;存储文件的设备是磁盘&#xff08;当下的市场几乎都是SSD&#xff09;&#xff0c;但大家习惯的把它们都称为磁盘&#xff0c;磁盘是用来表示区分内存的存储设备。而在操作系统看来&#xff0c;这个存储设备的结构就是一个线性结构&#xff0c;这一点很重要。 …...

力扣难题解析

滑动窗口问题 76.最小覆盖子串 题目链接&#xff1a;76. 最小覆盖子串 - 力扣&#xff08;LeetCode&#xff09; 题目描述&#xff1a; 给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串&#xff0c;则返回空…...

4.5-Channel 和 Flow:SharedFlow 和 StateFlow

文章目录 SharedFlow数据流的收集和事件订阅的区别launchIn() 和 shareIn() 的区别SharedFlow 与 Flow、Channel 的区别shareIn() 适用场景 shareIn() 的具体参数说明shareIn() 的 replay 参数shareIn() 的 started 参数WhileSubscribed() 的参数及适用场景 MutableSharedFlow、…...

Qt | TCP服务器实现QTcpServer,使用线程管理客户端套接字

点击上方"蓝字"关注我们 01、QTcpServer >>> QTcpServer 是 Qt 网络模块中的一个类,用于实现TCP服务器。它允许创建一个服务器,可以接受来自客户端的连接。QTcpServer 是事件驱动的,这意味着它将通过信号和槽机制处理网络事件。 常用函数 构造函数: QT…...

【提高篇】3.6 GPIO(六,寄存器介绍,下)

目录 2.3 输出速度寄存器OSPEEDR(GPIOx_OSPEEDR) (x = A..I) 2.4 上拉/下拉寄存器 (GPIOx_PUPDR) (x = A..I) 2.5 输入数据寄存器(IDR) 2.6 输出数据寄存器(ODR) 2.7 置位/复位寄存器(BSRR) 2.8 BSRR与ODR寄存器的区别 2.3 输出速度寄存器OSPEEDR(GPIOx_OSPEEDR) (…...

【AI】数据,算力,算法和应用(3)

三、算法 算法这个词&#xff0c;我们都不陌生。 从接触计算机&#xff0c;就知道有“算法”这样一个神秘的名词存在。象征着专业、权威、神秘、高难等等。 算法是一组有序的解决问题的规则和指令&#xff0c;用于解决特定问题的一系列步骤。算法可以被看作是解决问题的方法…...

深度学习笔记——生成对抗网络GAN

本文详细介绍早期生成式AI的代表性模型&#xff1a;生成对抗网络GAN。 文章目录 一、基本结构生成器判别器 二、损失函数判别器生成器交替优化目标函数 三、GAN 的训练过程训练流程概述训练流程步骤1. 初始化参数和超参数2. 定义损失函数3. 训练过程的迭代判别器训练步骤生成器…...

网络安全开源组件

本文只是针对开源项目进行收集&#xff0c;如果后期在工作中碰到其他开源项目将进行更新。欢迎大家在评论区留言&#xff0c;您在工作碰到的开源项目。 祝您工作顺利&#xff0c;鹏程万里&#xff01; 一、FW&#xff08;防火墙&#xff09; 1.1 pfSense pfSense项目是一个免费…...

Python毕业设计选题:基于django+vue的智慧社区可视化平台的设计与实现+spider

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 养老机构管理 业主管理 社区安防管理 社区设施管理 车位…...

Oracle LinuxR7安装Oracle 12.2 RAC集群实施(DNS解析)

oracleLinuxR7-U6系统Oracle 12.2 RAC集群实施&#xff08;DNS服务器&#xff09; 环境 RAC1RAC2DNS服务器操作系统Oracle LinuxR7Oracle LinuxR7windows server 2008R2IP地址172.30.21.101172.30.21.102172.30.21.112主机名称hefei1hefei2hefei数据库名hefeidbhefeidb实例名…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

【网络安全产品大调研系列】2. 体验漏洞扫描

前言 2023 年漏洞扫描服务市场规模预计为 3.06&#xff08;十亿美元&#xff09;。漏洞扫描服务市场行业预计将从 2024 年的 3.48&#xff08;十亿美元&#xff09;增长到 2032 年的 9.54&#xff08;十亿美元&#xff09;。预测期内漏洞扫描服务市场 CAGR&#xff08;增长率&…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练

前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1)&#xff1a;从基础到实战的深度解析-CSDN博客&#xff0c;但实际面试中&#xff0c;企业更关注候选人对复杂场景的应对能力&#xff08;如多设备并发扫描、低功耗与高发现率的平衡&#xff09;和前沿技术的…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

Golang——9、反射和文件操作

反射和文件操作 1、反射1.1、reflect.TypeOf()获取任意值的类型对象1.2、reflect.ValueOf()1.3、结构体反射 2、文件操作2.1、os.Open()打开文件2.2、方式一&#xff1a;使用Read()读取文件2.3、方式二&#xff1a;bufio读取文件2.4、方式三&#xff1a;os.ReadFile读取2.5、写…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...