简单的问题:
SAM Lambda 自动版本控制是否AutoPublishAlias
适用于AWS::Serverless::Function
代码CodeUri
更改但它指向的实际代码却没有的情况?
背景
我们正在使用 SAMAWS::Serverless::Function
资源类型部署多个 Lambda@Edge 函数。
我们的部署通过将代码放入 S3 存储桶然后触发 CloudFormation 堆栈更新来运行。除了这些 Lambda 之外,我们的堆栈还包含其他内容。
这样,我们经常会在 lambda 代码不变的情况下进行部署。
然而,每次部署,代码 URI 都会更改为我们最新部署的存储桶,这会按预期触发尝试发布的新版本,该版本与SAM 文档中的注释内联(粘贴在下面作为上下文)
注意: AutoPublishAlias 将仅在 CodeUri 更改时发布新版本。对其他配置的更新(例如:MemorySize、Timeout)等不会发布新版本。因此,您的别名将继续指向使用旧配置的旧版本。
我问的原因是因为我们遇到了一些暂时的 CloudFormation 部署问题,我一直试图找出可能与此相关的根本原因。我们在 CloudFormation 堆栈更新中的 SAM 生成版本上得到的错误如下:
存在此 Lambda 函数的版本 ( {some number} )。修改函数以创建新版本。
我查看了创建版本的SAM 代码及其大部分文档,但找不到明确的答案。
我们可能每次都在版本上手动创建AWS::Lambda::Function
和AWS::Lambda::Version
使用不同的逻辑 ID,这应该(?)解决问题,但我们试图利用 SAM 对我们的 Lambda 进行自动版本控制。
任何帮助表示赞赏!