【发布时间】:2018-04-27 11:14:15
【问题描述】:
使用 Amazon Lambda 函数我使用 AWS Lambda 功能提供的版本控制功能。每次我将新版本的工件部署到 AWS 时,我都会创建新版本的函数并发布它(使用屏幕截图中的弹出窗口)。
但是如何发布我的函数的任何以前版本(例如,当我需要回滚我的上一个发布时)?
【问题讨论】:
标签: amazon-web-services aws-lambda versioning
使用 Amazon Lambda 函数我使用 AWS Lambda 功能提供的版本控制功能。每次我将新版本的工件部署到 AWS 时,我都会创建新版本的函数并发布它(使用屏幕截图中的弹出窗口)。
但是如何发布我的函数的任何以前版本(例如,当我需要回滚我的上一个发布时)?
【问题讨论】:
标签: amazon-web-services aws-lambda versioning
您应该为每个新版本提供一个别名。
相反,假设您在通知配置中指定别名 ARN(例如,PROD 别名 ARN),而不是指定函数 ARN。当您将 Lambda 函数的新版本推广到生产中时,您只需更新 PROD 别名以指向最新的稳定版本。您无需更新 Amazon S3 中的通知配置。
当您需要回滚到以前版本的 你的 Lambda 函数。在这种情况下,您只需更新 PROD 别名 指向不同的功能版本。无需更新 事件源映射。
【讨论】:
我发现一个解决方案可以在您急需使用 lambda 的先前(工作)版本、下载部署包、使用 aws cli 重新部署下载的 zip 包时使用。我敢肯定有一个更优雅的解决方案,但如果你处于紧要关头并且你现在需要一些东西,这很有效。
$ aws lambda update-function-code \
--function-name my_lambda_function \
--zip-file fileb://function.zip
【讨论】:
为了回滚到特定版本,您需要将分配给当前版本的别名指向您要回滚到的版本。
例如:我的最新版本是 20,并且有一个别名“Active”。对于我要回滚或删除版本 20,我需要删除别名或将其重新分配给另一个版本。因此,如果我将别名指向版本 17,那么 lambda 会将版本 17 作为默认版本或 prod 版本。
您可以在此处更新别名:
(使用相关值更新 myRegion 和 functionName。)
在上述指定页面的“Aliases”部分,点击“Version”下拉菜单(默认情况下会显示分配别名的版本)。 选择您的别名要指向的版本,然后点击保存。
就是这样!!!
【讨论】:
Lambda 函数中没有这样的功能。
【讨论】: