AWS Lambda function 版本化和格式化

函数版本化和别名化

当你开始使用Lambda构建复杂系统时,你将想要以一个可控的基础来演进它们。我们已经添加了一个新的版本化特性来简化开发和测试这一重要方面。

每次你上传一个特定函数代码的最新副本时,Lambda将会自动创建一个新的版本,并给它分配一个数字(1,2,3等等)。该函数的Amazon Resource Name(ARN,亚马逊资源名称)现在在末尾接受一个可选的版本限定符(一个:,然后是一个版本号)。为了便于使用和后向兼容,没有限定符的ARN总是指向函数的最新版本。像“arn:aws:lambda:us-west-2:123456789012:function:PyFunc1:2”这样带有限定符的ARN是指一个特定的版本(在本例中指2)。

下面是你开始考虑这一新特性时必须记住的几件事:

函数的每一个版本有它自己的描述和配置(语言/运行时间,内存大小,超时时间,IAM角色等等)。

一个特定函数的每一个版本产生一组独特的CloudWatch测量指标。
该函数的CloudWatch日志将会包含函数版本,作为流名称的一部分。
Lambda将会存储每一个函数的多个版本。每一个Lambda账户可以存储多达大15亿字节的代码,你可以按照需要删除较老的版本。
你也可以创建命名的别名,将它们分配给函数代码的具体版本。例如,你可以最初分配“prod”给一个函数的版本3,分配“test”给版本5,分配“dev”给版本7。然后你使用该别名作为ARN的一部分,ARN是你用来调用函数的,像这样:

生产— “arn:aws:lambda:us-west-2:123456789012:function:PyFunc1:prod”
测试—“arn:aws:lambda:us-west-2:123456789012:function:PyFunc1:test”
开发— “arn:aws:lambda:us-west-2:123456789012:function:PyFunc1:dev”
在你想要使用一个既存的非版本化或非别名化的ARN时,你可以使用携带版本号或别名的ARN(我们喜欢把这样的ARN成为限定的ARN)。事实上,作为一项最优实践,我们推荐使用它们。

在问题发生时,该特性使阶段之间的代码推进或是向较早版本的回退变得简单。例如,你可以将你的prod别名指向代码的版本3,然后重新将其映射,使其指向版本5(有效地将其从测试阶段推进到生产阶段),不需对客户端应用或触发函数调用的事件源作任何修改。

摘抄:https://www.csdn.net/article/2015-10-14/2825912

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章