我有一个带有 Lambda 资源的 CloudFormation 模板。
在部署步骤中,我需要使用我的 zip 文件(我已通过 aws cloudformation 包
上传)更新此 Lambda 函数。现在,我可以将 Lambda 函数的名称作为参数传递给 SAM functionName,但当我这样做时,它会提示 functionName 已经存在。
这很好,但我如何指定只更新代码而不尝试替换 Lambda 函数?
最佳答案
要更新 Lambda 函数的代码,您只需遵循以下流程:
# update code artefact and maybe compile it to target folder
# e.g. for Java using Maven: mvn clean compile package
$ aws cloudformation package ...
$ aws cloudformation deploy ...
这将更新模板中的所有资源。另请参阅this how-to guide .
如果您只想更新单个 Lambda 函数的代码,也可以使用 aws lambda update-function-code 。然而,对于堆栈中的不同 Lambda 函数来说,这可能有点乏味,因为您需要每个函数的 ARN。因此,去年我为此编写了一个小型 NPM 工具,名为 lambda-updater它在 CloudFormation 堆栈中搜索 Lambda 函数并仅更新函数的代码。您可能会感兴趣。
关于amazon-web-services - 使用 CloudFormation 更新 AWS Lambda 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49963524/