写点什么

AWS Lambda 发布,可以用代码自由定义 Then 的 IFTTT

  • 2014-11-13
  • 本文字数:1807 字

    阅读完需:约 6 分钟

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 的尺寸。

2014-11-13 15:475627

评论

发布
暂无评论
发现更多内容

“智慧旅游”:区块链能否驾驭文旅行业?

电微13828808271

智慧公安

IDEA实用快捷建

华血

「架构实战营」作业#1

高亮

【架构实战营】第1模块作业

swordman

架构实战营

尤雨溪:Vue 3 将不会支持 IE11 了

清秋

翻译 Vue 4月日更 IE

“区块链+电子证照”,推动数字化经济建设

电微13828808271

区块链+ #区块链#

SARIF在应用过程中对深层次需求的实现

华为云开发者联盟

DevSecOps 元数据 SARIF 软件安全 规则

在微前端中,antd icon createFormIconfontCN 的本地化问题

blueju

大前端 antd umijs

MySQL-技术专题-Lock入门到精通

洛神灬殇

MySQL lock

架构实战营 模块一 作业

PB

架构实战营

【LeetCode】删除有序数组中的重复项 IIJava题解

Albert

算法 LeetCode 4月日更

Ubuntu 鼠标手势软件 -- EasyStroke

TroyLiu

Linux ubuntu 效率 快捷键 鼠标手势

低代码平台选型的道与术

TE产服

Thrift 学习笔记

U+2647

Thrift 4月日更

MVVP:一种基于状态的架构模式的设计与实现

行者

架构实战训练营

Nick~毓

你的Parquet该升级了:IOException: totalValueCount==0问题定位之旅

华为云开发者联盟

sql spark ETL任务 Parquet totalValueCount

物联网设备天线设计与选型指南

不脱发的程序猿

物联网 4月日更 物联网设备天线 天线设计与选型指南 射频

我,第一次做项目经理,干赔了

四猿外

新纪元·新生态!聚焦前沿科技,拥抱万物智联——2021开源科技节重磅来袭!

Pod 的状态

耳东@Erdong

容器 4月日更

私有依赖的打包与上传

blueju

JavaScript 大前端 npm

Baas是什么?区块链Baas平台开发解决方案带你知晓

源中瑞-龙先生

区块链 开发 解决方案 Baas

WordPress中常用的8个函数

Sakura

4月日更

浅谈一个优秀的 Android SDK 需要具备哪些要点

神策技术社区

android 数据采集 sdk 神策数据

站在巨人的肩膀上!淘宝网Java千亿级并发系统架构设计笔记

Java架构追梦

Java 架构 亿级并发 淘宝网

字节跳动上亿级别秒杀系统优化,用这个方案可行吗?

Java架构师迁哥

Elasticsearch入门,看完又要会!慎点

比伯

Java 架构 面试 程序人生 架构师

辽宁重点人员管控系统搭建,指挥调度系统搭建

生活中的这些难题,数据库开发者可为你解决!

华为云开发者联盟

数据库 开发者 华为云 GaussDB(for Redis) Redis Stream

「免费开源」基于Vue和Quasar的crudapi前端SPA项目实战—环境搭建 (一)

crudapi

Vue nodejs crudapi quasar SPA

AWS Lambda发布,可以用代码自由定义Then的IFTTT_亚马逊云科技_sai_InfoQ精选文章