seo怎么优化简述,优化软件刷排名seo,超级外链工具 增加外链中,乐至县建设局网站Hello大家好#xff0c;我们今天开始讨论AWS Lambda的内容。
SAP认证考试会涉及到很多Lambda的内容#xff0c;想要通过认证考试虽然不一定非要精通开发#xff0c;但需要知道Lambda的一些功能和特性、适用场景以及Lambda是如何工作的。
我们开始吧#xff01;
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倍以上。然后CPULambda是与配置的内存成正比的方式线性分配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 2019AWS推出了一个“预配置并发”这个功能可以配置预热Lambda执行环境。这样的话在调用函数时可以使用环境来立即执行代码而无需花费时间进行冷启动。
最后要优化Lambda函数的延迟还要做好相应的监控。 知道哪里的问题才能想办法优化。 CloudWatch仅显示Lambda函数的一些指标如果我们的使用场景是Lambda结合多个AWS服务且需要知道下游AWS服务例如DynamoDBS3对于每个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 - 第一部分的内容希望能够给大家带来帮助。