什么是AWS Lambda?——事件驱动的函数执行环境
AWS CTO Werner Vogels在AWS re:Invent 2014大会的第二场主题演讲上公布了两个新服务和一系列新的实例,两个新服务都相当令人瞩目:第一个宣布的新服务是Amazon EC2 Container Service,跟Docker紧密联合的管理服务,令人兴奋,不过不是本篇报道的重点。
本篇报道主要想向大家介绍一下今天宣布的第二个服务:AWS Lambda。
什么是AWS Lambda?
根据Jeff Barr在博客上的描述,Lambda是一个“可简单创建Lambda函数、无需管理的计算平台”。不过我们也可以这么理解:Lambda是一个针对AWS计算资源的IFTTT脚本创建器和管理器。
举个例子:你有一个照片类应用。照片上传到S3之后,需要在DynamoDB上记录新照片的元数据。Lambda的作用就是可以有一个地方放一个触发脚本来执行这个任务,而不用关心这个脚本运行在什么机器或者虚拟机上。
Vogels在专访中表示,也可以将Lambda理解为将functions(函数)从计算资源层抽象出来的服务。
Lambda的设计理念
Werner Vogels在主题演讲上简要叙述了Lambda设计思路的由来。
Vogels首先抛出一个问题:什么是云计算的根本(primitives)?
答案:云计算是一个执行环境。
Vogels再抛出第二个问题:什么是应用的根本?
答案:函数(functions,即业务逻辑的载体)+数据(data,即跟业务相关的输入与输出),以及这两者之间的交互——即事件(events。常见的事件如增加、变更、删除等)。
换言之,对于一个应用来说,除了functions、data、events这三个东西是根本之外,其他无论什么代码和框架,无非都是胶水或者UI罢了。
既然如此,理想的情况是用最少的时间写胶水,将做多的时间投入到应用的核心当中。
而最常见的胶水代码,就是触发器(trigger):当发生一个事件(event)时,执行某个函数(function),输出新的数据 (data)。Vogels以Excel表单为例:在一个表单当中,一个单元格数值的变更,触发总和列对应单元格数值的变更,就是一个事件触发函数将新的 变量纳入计算得出新的数值的过程。这个过程是自动的,还可以是并发的,即一处变更同时触发多个函数。
基于这个思路,AWS做了Lambda服务。
Lambda的用法
以下内容来自于Jeff Barr的博文:
Lambda服务的核心概念是Lambda function(简称function,函数),目前仅支持Node.js。围绕function可以定义情景,包括执行环境(语言、内存、超时、 IAM角色)以及这个function要触发的另一个function。function的代码和有关情景的元数据均存储在AWS中,以ARN(Amazon Resource Name)的方式被外部识别。如需包含第三方库,可以放在ZIP文件中上传。
function上传之后,开发者可以将其指定到指定的AWS资源(如某个S3 bucket,某个DynamoDB表,某个Kinesis流),然后Lambda就会建立该资源跟你的function之间的关联。当资源方面发生变 动,Lambda就会去自动张罗资源去执行你的function。用于运行function的资源的创建分配和释放都有Lambda自动来做,开发者完全 不需要去干预。
每一个function默认会指定一个比较短的执行时间上限,不过这个上限最高可以调整到60秒。
每一个function具有双重的IAM角色:一个是触发角色(invocation role),决定Lambda执行某个function的权限;另一个是执行角色(execution role),决定该function操作AWS资源的权限。
Lambda会监控每个function的执行情况,并将请求数、延时、可用性、错误率等指标记录在CloudWatch里。控制台里可以看到过去30日的指标。
使用Lambda的两点须知:
- 情景信息设置了该function的可用内存,可设置到128MB到1GB之间的任何数值。Lambda会这个数值选择相应的CPU能力、网络带宽和IO带宽。
- 每个function的触发可以使用最多256个进程或线程,占用本地512MB存储空间,1024个文件描述符,以及10个出口网络连接。
- Lambda对每个AWS账户设置了一系列管理限制。预览版期间,每个function最多可同时触发另外25个function。
Lambda服务的定价见官网,由请求数、function运行期间使用的存储、运行期间使用的内存三部分组成。预览版期间有一部分免费的用量。
总结
Lambda是让开发者们兴奋的服务,在Twitter上激起了大量讨论。Jeff Barr表示Lambda后续还会有很多更新,比如对更多AWS资源的支持和对更多语言的支持。
除了Amazon EC2 Container Service和AWS Lambda之外,本次主题演讲还宣布了高性能EC2实例C4,可挂载的EBS卷(SSD)可支持到16TB的尺寸。
转自:http://www.infoq.com/cn/news/2014/11/aws-lambda-summary
本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/bonelee/p/6508518.html,如需转载请自行联系原作者
什么是AWS Lambda?——事件驱动的函数执行环境相关推荐
- 什么是AWS Lambda?
什么是AWS Lambda? 计算服务的演进 EC2------Container-------Lambda 虚拟机---容器--------------serverless无服务器架构 EC2(El ...
- aws lambda使用_使用AWS Lambda,S3和AWS CloudFront进行动态内容缓存
aws lambda使用 快速提供内容对于任何网站或应用程序具有更好的客户体验都是必不可少的. 如果您将网站或应用程序托管在AWS Cloud中,那么无论从何处访问应用程序,都可以以较低的延迟快速提供 ...
- 使用AWS Lambda,S3和AWS CloudFront进行动态内容缓存
快速提供内容对于任何网站或应用程序具有更好的客户体验至关重要. 如果您将网站或应用程序托管在AWS Cloud中,那么无论从何处访问应用程序,都可以以较低的延迟快速提供内容. AWS提供了CloudF ...
- aws mongodb_使用Node.js,AWS Lambda和MongoDB Atlas进行无服务器开发
aws mongodb This article was originally published on mongoDB. Thank you for supporting the partners ...
- 使用Node.js,AWS Lambda和MongoDB Atlas进行无服务器开发
本文最初在mongoDB上发布 . 感谢您支持使SitePoint成为可能的合作伙伴. 近年来,开发人员的状况发生了巨大变化. 对于我们开发人员来说,在我们自己的机器上运行我们所有的工具(数据库,We ...
- 带有执行环境的函数 - 闭包
学习 JavaScript 的同学都会面对闭包,总觉得很难,你会看到闭包各种版本的定义,即使把闭包的概念背会也不一定的能够理解闭包.想要掌握闭包,需要看很多关于闭包的资料,加上对 JavaScript ...
- JavaScript执行环境及作用域(一)——执行环境栈和作用域链机制
2019独角兽企业重金招聘Python工程师标准>>> 执行环境是JavaScript中最为重要的一个概念,每个执行环境都有一个与之关联的变量对象,执行环境中所有的变量和函数都保存在 ...
- html代码在线运行环境,ES5/可执行代码与执行环境
可执行代码类型 一共有三种 ECMA 脚本可执行代码: 全局代码是指被作为 ECMAScript Eval 代码是指提供给 eval 内置函数的源代码文本.更精确地说,如果传递给 eval 内置函数的 ...
- 闭包、执行环境、作用域链
闭包是指有权访问另一个函数作用域中的变量的函数,创建的常见方式就是在一个函数内部创建另一个函数. 我们来理解下执行环境和作用域链: 1.执行环境有全局执行环境和函数执行环境之分. 2.每次进入一个新的 ...
最新文章
- CVPR 2022|MPViT:用于密集预测的多路径视觉Transformer
- 解决IDEA使用lombok注解无效,@Data不生效问题
- 深入理解nodejs的HTTP处理流程
- ArcGIS删除地图投影坐标,只保留地理坐标
- k means sse python_python实现kMeans算法
- 在51CTO学习数通HCNP的经历
- 基于时空图卷积网络预测交通流
- mysql查询有什么意义_mysql分页查询有什么作用
- 电阻应用电路之运放如何消除偏置电流的影响
- 引入tinymce-vue后调试器报错 Refused to apply styl
- 【12c】直方图Histograms
- 秒杀:超卖问题(图解+秒懂+史上最全)
- 图像宽度所占字节必须是4的倍数详解
- python unrar问题_python利用unrar实现rar文件解压缩
- Unity 接入Apple登录
- opencv 读取NV12格式(.yuv)文件,并转为RGB格式保存为JPG
- composingBuild依赖统一管理实践
- Qt编写可视化大屏电子看板系统1-布局方案
- Cycladic(基克拉泽斯文明)
- win10 无法打开wlan 解决方案