【发布时间】:2021-12-29 13:37:39
【问题描述】:
我正在处理 CloudFormation 模板,并注意到 Lambda 的复杂性,这对我来说是新的。这是一个sn-p:
VersionLambdaRandom:
Type: AWS::Lambda::Version
Properties:
Description: Version testing.
FunctionName: !Sub "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:${LambdaRandom}"
DependsOn: LambdaRandom
AliasLambdaRandom:
Type: AWS::Lambda::Alias
Properties:
FunctionName: !Sub "arn:${AWS::Partition}:lambda:${AWS::Region}:${AWS::AccountId}:function:${LambdaRandom}"
FunctionVersion: '1'
Name: TestDeploymentAlias
DependsOn:
- LambdaRandom
- VersionLambdaRandom
在向上和向下旋转此堆栈的过程中,删除了版本和别名以及此处未包含的随机 Lambda,我注意到当我再次创建堆栈时版本号不会重置。本质上,我将再次创建堆栈,并且在部署过程中会出现以下故障:
Function not found: arn:aws:lambda:us-east-1:<Acct#>:function:RandomLambdaFunction:1 (Service: AWSLambdaInternal; Status Code: 404; Error Code: ResourceNotFoundException)
查看控制台,可以看到新创建的函数的一个版本创建成功;但是,它现在是版本 2 而不是版本 1。这对我来说似乎很奇怪,因为我完全删除了堆栈,其中包括删除 lambda 和版本。
除了每次切换函数名之外,我还能做些什么来确保创建堆栈时创建的版本始终保持为一个?
【问题讨论】:
-
为什么要关心版本号?改为引用
AWS::Lambda::Version的输出。 -
进展如何?仍然不清楚为什么不能删除版本?
-
@Marcin - 已回复。
标签: amazon-web-services aws-lambda amazon-cloudformation