AWS Lambda - 第一部分
Hello大家好,我们今天开始讨论AWS Lambda的内容。
SAP认证考试会涉及到很多Lambda的内容,想要通过认证考试虽然不一定非要精通开发,但需要知道Lambda的一些功能和特性、适用场景以及Lambda是如何工作的。
我们开始吧!
Lambda与其他服务一起使用
Lambda 可以与多个AWS服务进行集成,从而调用函数,执行一些自动化任务。比如:API网关、Kinesis、DynamoDB、S3、IOT、CloudWatch Events、CloudWatch Logs、SNS、Cognito、SQS等等,这些服务都和Lambda进行了集成,可以与其一起工作。
您可以配置触发器来调用函数,以响应如:资源生命周期事件、响应传入的 HTTP 请求、使用队列中的事件或按计划运行等。
Lambda通过与多个AWS服务的集成,可以胜任很多场景的自动化的工作。
使用Lambda结合S3自动创建缩略图
接下来我们就看两个比较常见的Lambda的使用案例,他们也经常出现在考试的题目中。
第一个案例是为每个上传到S3存储桶的图像文件自动创建缩略图,大致流程是这样的:
- 当有新的图像文件存储到S3存储桶中后,S3将触发我们配置的一个Lambda函数;
- 这个Lambda函数的功能为创建缩略图,且将缩略图比如存放在另外指定的S3存储桶中供使用;
- 以及将一些图像的元数据如:图像名称、大小、创建日期等推送到DynamoDB中存储。
使用Lambda结合CloudWatch Events 执行Cron job
另一个非常常见的案例是使用Lambda 结合 CloudWatch Events 执行Cron job。
我们在日常工作中经常会有一些定期要执行的任务,在以往一般都是通过在EC2上使用CRON来定期调用、执行相应的任务。
这样的话就需要启动EC2实例,尽管可能这台EC2大部分时间不工作,我们还是需要为其付费,而且还要负责维护这台EC2实例。那现在可以:
- 通过定义CloudWatch Events
- 然后我们可以定义一个时间间隔,比如每个小时去触发我们配置的Lambda函数,执行一个最长可为15分钟的任务。
这是通过无服务器架构执行Cron任务的最佳实践,CloudWatch Events和Lambda都是无服务器的,不需要我们管理任何基础设施以及为基础设施付费。
Lambda支持的运行环境
我们继续,Lambda支持的运行环境。
Lambda运行环境支持多种语言,如:Node.js 、Python、Ruby 、Java、Go以及.NET等。
您也可以通过自定义运行环境来使用其他的编程语言,通过这种方式Lambda几乎支持任何语言。
如果在考试题目中出现Docker相关的场景,那么在大多数情况下Lambda都不是一个很好的选择。
如果出现Docker的场景,一般AWS想让您考虑使用ECS、Fargate,或者和Docker配合很好的批处理Batch,而不是Lambda。
虽然有的时候可以通过自定义运行环境来使用Lambda 执行Docker同样的工作,但是一般不推荐这么做。所以,如果看到Docker,优先考虑ECS、Fargate或者Batch,而不是Lambda。
Lambda的使用限制
接下来我们讨论Lambda的使用限制。其中有一些是需要我们记住的,这样才能够判断在一些场景中是否适合使用Lambda。
- 首先是内存,也就是提供给您的Lambda函数的内存,是在128MB到3GB之间,最高为3个G,所以如果您运行的函数如果需要超过3GB的内存,那么就无法使用Lambda。在2020年12月1日左右,AWS对外公布Lambda已经最高支持10G的内存了,比之前提高了3倍以上。
- 然后CPU,Lambda是与配置的内存成正比的方式线性分配CPU处理能力的。也就是说,您无法手动指定需要多少CPU计算能力。您指定的内存越大,那么获得的CPU计算能力越高。在内存为1792 MB 时,函数拥有相当于一个完整 vCPU的处理能力。不过也要注意您的代码是支持多线程的,否则即使分配了多vCPU也无法充分利用。
- 然后,函数的超时时间为15分钟,您的函数运行不能超过15分钟。所以如果在考试中有题目要运行任务超过15分钟的场景,那么Lambda就不是一个很好的选择。
- Lambda函数的/tmp目录,用来下载和存储临时文件的目录,最大支持512MB存储空间。所以如果您从S3拉取比如2G的文件然后使用函数来处理的话,是做不到的,因为您的函数的最大存储空间为512MB。
- 部署程序包大小包括层最大支持250MB,您上传到AWS的程序包是不能超过250M的。所以,要注意的一点是,您需要结合/tmp来确定有多少空间来运行您的Lambda函数。
- 最后,默认情况下,最大的并发的数量是1000。也就是最高可以同时运行1000个函数实例。注意这是一个软限制,可以请求在提高限制。
Lambda的延迟因素
好的,接下来我们来讨论Lambda的延迟因素。
我们前面介绍了为Lambda分配内存,从而获得更高的CPU计算能力。其实要优化Lambda的性能,提高执行的效率,除了这些还需要了解并发限制、冷启动因素以及做好Lambda的相关监控,下面我们就分别来讨论:
首先是Lambda函数运行的并发限制,因为资源从来都不是无限的,对吧。
我们上一张PPT讨论过,在默认情况下,最大的并发的数量是1000,是软限制,可以提交申请增加。所以在使用Lambda时,先要评估默认的并发数是不是满足需要,如果不满足提前提交申请增加并发。
只增加并发数量,并不是就意味着这样就OK了,这只代表马路宽了一些,可以同时经过的车多了,但还有一个非常容易忽视的因素—冷启动时间。
什么是冷启动时间呢?我们看一下这个图,当我们在第一次调用Lambda函数时,它要从S3下载代码,下载所有依赖项,创建一个容器并在执行代码之前初始化运行环境,这整个持续时间(除了代码执行)就是冷启动时间。
如果在函数执行过程中,有新的请求调用函数,也就是出现了函数并发调用,那么会在分配一个新的实例处理该事件,新的实例在执行我们的函数代码前,同样需要下载代码,下载所有依赖项,创建一个容器,初始化运行环境等等,这样势必会增加Lambda函数的响应延迟。
在re:invent 2019,AWS推出了一个“预配置并发”这个功能,可以配置预热Lambda执行环境。这样的话,在调用函数时可以使用环境来立即执行代码,而无需花费时间进行冷启动。
最后,要优化Lambda函数的延迟,还要做好相应的监控。 知道哪里的问题才能想办法优化。 CloudWatch仅显示Lambda函数的一些指标,如果我们的使用场景是Lambda结合多个AWS服务,且需要知道下游AWS服务(例如DynamoDB,S3)对于每个lambda调用的情况的话,就可以使用X-Ray。X-Ray可以通过可视化的方式,跟踪和调试lambda函数和其他AWS服务之间的问题。
Lambda安全相关
接下来我们讨论Lambda安全相关。
首先,和其他服务一样,可以使用IAM来管理对 Lambda API 和资源(如函数和层)的访问。
然后,Lambda 函数也具有一个策略,称为执行角色,这个执行角色的配置在很多AWS服务中也都存在,是用来向函数授予访问 AWS 服务和资源的权限,是函数被调用时代入的角色。比如您的Lambda函数需要写入DynamoDB,就需要给函数分配执行角色并提供相应的写入权限。
除此之外,Lambda还有一个叫作基于资源的策略,和S3的存储桶策略有点类似,使用JSON格式定义策略。
我们来看一个策略:
这个策略的大致内容是,允许这个账户下的S3的一个存储桶调用名为 my-function 的函数。 也就是通过Lambda的基于资源的策略,允许AWS服务调用Lambda函数。
另外要注意下,当您将这个S3或者其他AWS服务与Lambda函数建立连接时,将会创建相应的基于资源的策略,这块要注意下,考试中可能会有相应的考点。
因此,使用基于资源的策略可以做两件事:
- 第一,可以允许其他的AWS账户调用或者管理Lambda函数。如果您需要跨账户调用Lambda函数,就需要使用基于资源的策略,以允许其他账户调用;
- 第二,允许AWS服务调用或管理您的Lambda函数,比如上面的这个S3存储桶的例子。
好,以上是Lambda权限策略部分。
以上就是我们今天课时的内容,我们讨论了AWS Lambda - 第一部分的内容,希望能够给大家带来帮助。
相关文章:
AWS Lambda - 第一部分
Hello大家好,我们今天开始讨论AWS Lambda的内容。 SAP认证考试会涉及到很多Lambda的内容,想要通过认证考试虽然不一定非要精通开发,但需要知道Lambda的一些功能和特性、适用场景以及Lambda是如何工作的。 我们开始吧! Lambda与…...
Java 基础进阶篇(七)—— 面向对象三大特征之三:多态
文章目录 一、多态的概述二、多态中成员访问特点 ★三、多态的优势与劣势四、多态下的类型转换4.2 自动类型转换(从子到父)4.2 强制类型转换(从父到子)4.3 instanceof 关键字 一、多态的概述 多态:是指执行同一个行为…...
day9 实现UDP通信
目录 socket函数拓展 UDP通信实现过程 代码实现 socket函数拓展 send与recv函数: /*用于发送数据*/ ssize_t send(int sockfd, const void *buf, size_t len,int flags);/*用于接收数据*/ ssize_t recv(int sockfd, void *buf, size_t len,int flags);/*前三个…...
自然语言处理(NLP)在放射学报告评价中的应用:应用和技术进展
自然语言处理(NLP)在放射学报告评价中的应用:应用和技术进展 写在最前面摘要引言先进的技术BERT算法优点 Applications in Radiology 放射学应用Quality 质量将关键发现通知转诊临床医生放射科关键绩效指标和评估 个别放射科医生的表现同行学…...
日常开发为什么需要做Code Review
日常开发为什么需要做Code Review 一、背景 最近在开始一个新的项目,在查看项目中代码及具体细节时,发现这个项目真实一堆乱麻,没有规律可循,可总结下这个项目的缺陷 没有规律可循,没有结构性设计不做公共封装&#…...
OSPF的优化
O_ASE --- 标志域外路由信息 --- 因为域外的路由信息不可控性较强,所以,信任程度较低,我们将其优先级设置为150。 LSA --- 链路状态通告 --- OSPF协议在不同网络环境下产生的用于携带和传递不同的信息。 LSDB --- 链路状态数据库 SPF --- 最短…...
C++项目中打破循环依赖的锁链:实用方法大全
C项目中打破循环依赖的锁链 一、简介(Introduction)1.1 循环依赖的定义(Definition of Circular Dependencies)1.2 循环依赖带来的问题(Problems Caused by Circular Dependencies)1.3 解决循环依赖的重要性…...
IDEA连接HBase
新建maven工程 打开pom.xml添加hbase需要的依赖 <dependency><groupId>org.apache.hbase</groupId><artifactId>hbase-client</artifactId><version>2.3.5</version> </dependency><dependency><groupId>org.apa…...
Mask2Former来了!用于通用图像分割的 Masked-attention Mask Transformer
原理https://blog.csdn.net/bikahuli/article/details/121991697 源码解析 论文地址:http://arxiv.org/abs/2112.01527 项目地址:https://bowenc0221.github.io/mask2former Mask2Former的整体架构由三个组件组成: 主干特征提取器ÿ…...
【量化课程】01_投资与量化投资
文章目录 1.1 什么是投资1.1.1 经济意义上的投资1.1.2 投资的分类1.1.3 金融投资1.1.4 个人投资者投资品种1.1.5 投资VS投机 1.2 股票投资的基本流程1.3 常见的股票投资分析流派1.3.1 投资者分析流派 1.4 什么是量化投资1.4.1 量化投资基本概念1.4.2 量化投资的优势1.4.3 量化投…...
SpringBoot实现导出Excel功能
1 问题背景 需求要做一个导出excel的功能 2 前言 本篇着重阐述后端怎么实现,前端实现的部分只会粗略阐述。该实现方案是经过生产环境考验的,不是那些拿来练手的小demo。本文阐述的方案可以借鉴用来做毕设或者加到自己玩的项目中去。再次声明,…...
NSSCTF之Misc篇刷题记录⑧
NSSCTF之Misc篇刷题记录 [MMACTF 2015]welcome[广东强网杯 2021 团队组]欢迎参加强网杯[虎符CTF 2022]Plain Text[SWPUCTF 2021 新生赛]原来你也玩原神[SWPUCTF 2021 新生赛]我flag呢?[鹤城杯 2021]New MISC NSSCTF平台:https://www.nssctf.cn/ PS&…...
从零开始学习Linux运维,成为IT领域翘楚(七)
文章目录 🔥Linux下常用软件安装_JDK和Tomcat安装🔥Linux下常用软件安装_MySQL安装🔥Linux下常用软件安装_MySQL卸载 🔥Linux下常用软件安装_JDK和Tomcat安装 Jdk 安装 解压jdk安装包 tar -zxvf jdk-8u201-linux-x64.tar.gz -C/…...
优漫动游设计APP的UI界面需要注意哪些问题?
一、加载 加载时间的长短,很大程度的决定了用户体验是否有所提升,虽然理想中的页面加载出来应该一秒就够了,但是设计师不要忽略网络问题!如果网速不够的话,页面加载三五秒都算是快的了,所以在用户等待的过程中&a…...
面试 004
什么是 Java 内存结构 Java 内存结构就是 JVM 的运行书数据区的内存结构: 里面有堆、虚拟机栈、本地方法栈、程序计数器; 虚拟机栈:里面的数据结构是栈帧,存放了方法名,局部变量等信息 方法区在 1.8 的时候…...
CCF-202206-2-寻宝!大冒险!
目录 题目背景 问题描述 一、思路: 二、实现方法(C) 2.1、方法一(int储存) 思路: C实现如下: 2.2、方法二(结构体储存) 思路: 注意:边界…...
二叉搜索树中的众数
1题目 给你一个含重复值的二叉搜索树(BST)的根节点 root ,找出并返回 BST 中的所有 众数(即,出现频率最高的元素)。 如果树中有不止一个众数,可以按 任意顺序 返回。 假定 BST 满足如下定义&…...
认识JSP
什么是JSP? JSP(Java Server Pages)是一种类似于HTML的标记语言,用于创建动态Web页面。与HTML不同的是,JSP页面中可以嵌入Java代码,由Web服务器在动态页面中生成HTML代码,从而实现Web应用程序的前端交互效…...
MySQL数据管理
一、MySQL数据库管理 1、库和表 行(记录):用来描述一个对象的信息 列(字段):用来描述对象的一个属性 2、常用的数据类型 int :整型 float :单精度浮点 4字节32位 double &…...
第十九章 Unity 其他 API
本节介绍一些其他经常使用的Unity类。首先,我们回顾一下Vector3向量类,它既可以表示方向,也可以表示大小。它在游戏中可以用来表示角色的位置,物体的移动/旋转,设置两个游戏对象之间的距离。在我们之前的课程中&#x…...
sha256算法详解,用C语言模拟sha256算法
SHA-256是一种加密算法,它可以将任意长度的数据块计算出一个固定长度的输出值,通常是256位。SHA-256具有以下特点: 1. 固定输出长度:SHA-256的输出长度为256位,不受输入数据的长度限制。 2. 不可逆性:SHA-256采用单向哈希函数,即无法从输出值反向推出输入数据。 3. 抗…...
前端技术未来发展展望
前端技术在未来的发展中将继续保持快速、变化多样和创新性强的趋势。以下是我认为前端技术未来发展的几个方向: 框架和库的演进:框架和库的更新换代将继续加速。React、Vue、Angular等主流框架的更新周期将会缩短,同时各自的生态系统也将更加…...
第四十六天|dp
今天的题还是完全背包的题 139. Word Break 这道题其实用deque也能做,但是需要cache去记录之前尝试过的值,.相对简单的办法就是用完全背包了 这道题worddict就是物品.我们的dp[i]代表到i为止是不是能满足题意分成segmentation 处置化全为false,但是dp[0]True.这是因为为0时…...
汇编语言-复习自用
本文用于自我复习汇编语言,参考b站一位老师的讲解整理而成,感谢老师的无私付出视频链接链接 文章目录 1.第一章1.1计算机组成1.2读取1.3 寄存器及数据存储1.4 mov和and指令1.5 确定物理地址1.6 内存分段表示法1.7debug使用1.8CS:IP1.9jmp指令改变csip1.1…...
Android moneky自动点击应用设想
近期又有人发错私密消息到群聊天里,造成巨大反应的事件,可谓是一失手成大恨,名利受损。 而如果手机里安装一个monkey自动点击程序,没事的时候,跑跑monkey,倒一杯茶,静静的看手机屏幕在那里点击&…...
16.基于主从博弈理论的共享储能与综合能源微网优化运行研究
说明书 MATLAB代码:基于主从博弈理论的共享储能与综合能源微网优化运行研究 关键词:主从博弈 共享储能 综合能源微网 优化调度 参考文档:《基于主从博弈理论的共享储能与综合能源微网优化运行研究》完全复现 仿真平台:MATLAB …...
使用 ESP32 设计智能手表第 2 部分 - 环境光和心率传感器
我们研究了如何为我们的智能手表项目制作一些有趣的表盘。在这一部分中,我们将研究如何将一些传感器连接到我们的智能手表,并将连接 BH1750 环境光传感器和 MAX30102 心率传感器。我们将分别研究这些模块中的每一个的接口。 先决条件——安装必要的库 本文下方提供的 GitHub …...
分布式事务 --- 理论基础、Seata架构、部署
一、分布式事务问题 1.1、本地事务 本地事务,也就是传统的单机事务。在传统数据库事务中,必须要满足四个原则: 1.2、分布式事务 分布式事务,就是指不是在单个服务或单个数据库架构下,产生的事务,例如&am…...
低代码开发重要工具:JVS列表页字段样式配置说明
列表页中,通常存在各种各样的样式控制,例如字段宽度需要可调、字段的颜色根据内容变化等,那么我们接下来介绍下字段的样式控制的内容以及对应的效果。 1、字段样式控制配置位置 进入列表页的 数据配置界面,每个字段可以有独立的配…...
explain结果字段分析
select_type simple:表示不需要union操作或者不包含子查询的简单select语句。有连接查询时,外层的查询为simple且只有一个。 primary:一个需要union操作或者含有子查询的select,位于最外层的单位查询的select_type即为primary且只…...
做兼职的翻译网站吗/广告推销
本期教程我们将和小伙伴们一起研究如何使用计算机视觉和图像处理技术来检测汽车在行驶中时汽车是否在改变车道!大家一定听说过使用OpenCV 的haar级联文件可以检测到面部、眼睛等,但是如果目标是汽车,公共汽车呢? 1.数据集本教程将…...
汕头网站设计哪里好/抖音seo查询工具
叶酸PEG荧光素(FITC-PEG-FA),叶酸(-FA)具有高亲和力的叶酸受体,可用于靶向药物传递的细胞膜受体。异硫氰酸荧光素FITC荧光标记的聚乙二醇是荧光标记PEG衍生物中的一种。(FITC-PEG)吸收波长495 nm࿰…...
上海的广告公司网站建设/关键词工具
老李分享:测试金字塔,懂开发的测试工程师更有竞争力测试金字塔:金字塔分为5层:第一层是单元测试,是针对类库和程序集来进行测试;第二层是组件级测试,接口级的测试;第三层是服务级测试…...
云南网站建设优选平台/seo内容优化心得
PYTHON 官方手册学习笔记 一:PYT HO N 安装配置 1、windows安装Python之后需要配置环境变量 在dos窗口运行 set path %path%;d:\python32即可、设置完成之后就可以直接在 dos命令行输入python打开python编辑器 2、python编辑器的选择、建议使用Vim或者是自带的IDLE编辑器 二:解…...
wordpress属于区域连技术吗/上海网站seo外包
漏洞描述 GoCD plugin aip 参数中的 pluginName 参数存在任意文件读取漏洞,导致攻击者可以获取服务器中的任意敏感信息 fofa语法 title“Create a pipeline - Go” POC /go/add-on/business-continuity/api/plugin?folderName&pluginName../../../etc/pas…...
内江市住房和城乡建设局网站/民宿平台搜索量上涨
根据近期Scala路线图所公布的信息来看,Scala从版本2.12开始,只能运行在Java 8及之后的版本上。InfoQ找到了Adriaan Moors(Typesafe的Scala技术主管)和Json Zaugg(Typesafe工程师),了解到更多关于…...