AWS Lambda 自动使用最新层

AWS Lambda 自动使用最新层

我们有一个无服务器堆栈,它依赖多个 AWS Lambda 来执行任务。为了帮助代码可重复使用,我们在 Lambda 之间共享了多个 Lambda 层。

我们的问题是,当我们对某个层进行更改时,它会创建该层的新版本。所有使用此层的 Lambda 都不会自动使用最新版本。但它们足够聪明,可以检测到有新版本并且不再运行(抛出需要使用最新层的异常)

对于 50 多个 Lambda,AWS 门户更新层的流程非常糟糕。一个接一个地手动打开每个 Lambda,删除层,添加新层等。

有没有办法使用 CLI 或其他自动化方法更新所有 Lambdas 以使用所有必要层的最新版本?

答案1

每次更新层时,都会循环遍历 Lambda 函数并更新其配置。您可以使用AWS CLI要做到这一点:

aws lambda update-function-configuration --layers ...

不过,更好的方法是针对层和 lambda 进行 CI/CD 部署并配置依赖项。每当更新层管道时,它都应触发依赖于该层的所有 Lambda 的重新部署。所有现代 CI/CD 工具都可以做到这一点 - GitLab、Jenkins、GoCD 甚至 AWS CodePipeline。

这样,您所要做的就是将新层代码推送到 git 存储库,您的 CI/CD 工具将处理剩下的事情。

希望有帮助:)

答案2

自 2022-03-31 起,AWS Lambda 控制台现在支持批量更新:AWS 公告

相关内容