在2014年亚马逊re:Invent大会上,我们推出了 AWS Lambda并一直受到令人难以置信的欢迎。开发人员和系统架构师们很快指出,他们可以快速轻松地构建无服务器系统,这些系统不需任何管理,可以伸缩处理大量的请求。作为一个回顾,Lambda函数可以在下列事件中做出响应: •对 Amazon Simple Storage Service(S3,简单存储服务)桶的修改—参见 Handling Amazon S3 Events(处理亚马逊S3事件)。 •对 Amazon DynamoDB表的更新—参见 Processing Events from Amazon DynamoDB Streams(处理Amazon DynamoDB流中携带的事件)。 •Amazon Kinesis流中携带的消息—参见 Processing Events from an Amazon Kinesis Stream(处理Amazon Kinesis流中携带的事件)。 •关于 Amazon Simple Notification Service(SNS,简单通知服务)主题的通知—参见 Invoking Lambda Functions Using Amazon SNS Notifications(使用Amazon SNS通知调用Lambda函数)。 •(通过 Amazon API Gateway,亚马逊API网关接收的)HTTP请求—参见Walkthrough: API Gateway and Lambda Functions(演练:API网关和Lambda函数)。 • AWS CloudFormation模板评估—参见 AWS::Lambda::Function。 • Amazon Cognito事件触发—参见 Amazon Cognito Events(Amazon Cognito事件)。 •激活Alexa技能—参见 Developing an Alexa Skill as a Lambda Function(作为一种Lambda函数开发Alexa技能)。 • Amazon Simple Workflow Service (SWF)活动对 Lambda函数的调用—参见 AWS Lambda任务。 •接收的电子邮件消息—参见 Receive and Process Incoming Email with Amazon SES(使用Amazon SES接收和处理电子邮件) 在过去的一年中,我们已经为Lambda产品添加了很多新特性。我们在三个AWS区域(美国东部(北弗吉尼亚),美国西部(俄勒冈州)和欧洲(爱尔兰))投放了该产品,今年早些时候我们又增加了亚太地区(东京)。投放的Lambda产品支持用 Node.js格式编写的函数;今年早些时候又增加了对Java格式函数的支持。正如你可以从上面的列表中看到的一样,我们也将Lambda和AWS的很多其他部分联系起来。在 AWS Compute Blog(AWS计算博客)中,你可以找到一些很好的实例,它们向你展示如了何以强大和创新的方式使用Lambda,包括(我个人最喜爱的) Microservices Without the Servers(无服务器微服务)。 re:Invent大会上发布的新特性 今天我们要宣布Lambda的一组新特性,这组特性使Lambda变得更有用。下面是我们刚刚在台上宣布的特性的一个概述:
正如你可以看到的,上面的概述都是关于函数的。让我们来逐一看一看这些新特性。
从一个Lambda访问VPC中的资源
很多AWS客户将微服务寄宿在 Amazon Virtual Private Cloud(VPC,虚拟私有云)中,想要能够从从他们的Lambda函数中访问微服务。可能他们运行一个带有查询数据的MongoDB集群,或者想要使用 Amazon ElastiCache作为Lambda函数的一个状态性存储位置,但又不想这些资源暴露到因特网中。
你不久就可以在目标VPC中建立一个或多个安全组来访问这种资源了,你也可以配置它们接收来自Lambda的流量,将它们添加到目标VPC子集中。然后在你创建Lambda函数时(你也可以将它们添加到一个已经存在的函数中),你将需要指定VPC,子集,和安全组。你也将需要(通过函数的IAM角色)为你的函数赋予权限来使它访问几个与弹性组网相关的EC2功能。
该特性将在今年的晚些时候可用。在我们投放该特性时,我将发布更多信息(和一个演练)。
Python功能
你可能已经用Node.js和Java写过Lambda函数了。今天我们将要新增对 Python 2.7的支持,包括对 AWS SDK for Python(适用于Python的AWS SDK)的内置访问。Python易学易用,几分钟之内你就能掌握和运行。我们已经收到了很多很多支持Python的诉求,也很高兴能够交付它。你今天就可以开始使用Python了。下面是运转中的Python的外观:
延长的函数持续时间
Lambda是 Extract-Transform-Load(ETL,提取,转换,加载)应用很好的选择。它能轻松地按比例增加,来摄入和处理大量的数据,不需任何持久的基础设施。为了支持这一流行的使用场景,你的Lambda函数现在可以运行长达五分钟的时间了。一如既往地,在你创建函数时,你只需指定想要的超时时间。你的函数能够咨询上下文对象,查看它还有多少时间可用。
下面展示了如何使用Python访问和记录超时时间的值:
print(" Remaining time (ms): " + str(context.get_remaining_time_in_millis()) + "/n")
正如以往一样,耗费完它们自己所有时间的函数将会被终止。
函数版本化和别名化
当你开始使用Lambda构建复杂系统时,你将想要以一个可控的基础来演进它们。我们已经添加了一个新的版本化特性来简化开发和测试这一重要方面。
每次你上传一个特定函数代码的最新副本时,Lambda将会自动创建一个新的版本,并给它分配一个数字(1,2,3等等)。该函数的Amazon Resource Name(ARN,亚马逊资源名称)现在在末尾接受一个可选的版本限定符(一个:,然后是一个版本号)。为了便于使用和后向兼容,没有限定符的ARN总是指向函数的最新版本。像“arn:aws:lambda:us-west-2:123456789012:function:PyFunc1:2”这样带有限定符的ARN是指一个特定的版本(在本例中指2)。
下面是你开始考虑这一新特性时必须记住的几件事:
函数的每一个版本有它自己的描述和配置(语言/运行时间,内存大小,超时时间,IAM角色等等)。
你也可以创建命名的别名,将它们分配给函数代码的具体版本。例如,你可以最初分配“prod”给一个函数的版本3,分配“test”给版本5,分配“dev”给版本7。然后你使用该别名作为ARN的一部分,ARN是你用来调用函数的,像这样:
在你想要使用一个既存的非版本化或非别名化的ARN时,你可以使用携带版本号或别名的ARN(我们喜欢把这样的ARN成为限定的ARN)。事实上,作为一项最优实践,我们推荐使用它们。
在问题发生时,该特性使阶段之间的代码推进或是向较早版本的回退变得简单。例如,你可以将你的prod别名指向代码的版本3,然后重新将其映射,使其指向版本5(有效地将其从测试阶段推进到生产阶段),不需对客户端应用或触发函数调用的事件源作任何修改。
定时调用函数(Cron)
你现在可以定期定时地调用Lambda函数了。你可以指定一个固定的速率(调用之间的时间间隔:分钟数,小时数,或天数)或者指定一个Cron样的表达式:
该特性现在在控制台中已可用,对API和CLI的支持正在努力研发中。
活动推荐:10月23 亚马逊AWS云计算研讨会之云中的安全部署与开发运维
( 翻译/吕冬梅 责编/王鑫贺 )
订阅“AWS中文技术社区”微信公众号,实时掌握AWS技术及产品消息!
AWS中文技术社区为广大开发者提供了一个Amazon Web Service技术交流平台,推送AWS最新资讯、技术视频、技术文档、精彩技术博文等相关精彩内容,更有AWS社区专家与您直接沟通交流!快加入AWS中文技术社区,更快更好的了解AWS云计算技术。
本网页所有文字内容由 imapbox邮箱云存储,邮箱网盘, iurlBox网页地址收藏管理器 下载并得到。
ImapBox 邮箱网盘 工具地址: https://www.imapbox.com/download/ImapBox.5.5.1_Build20141205_CHS_Bit32.exe
PC6下载站地址:PC6下载站分流下载
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox 网页视频 工具地址: https://www.imapbox.com/download/ImovieBox4.7.0_Build20141115_CHS.exe
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算