如何在cloudformation yml中获取最新的lambda版本?
How to get the latest lambda version in cloudformation yml?
我正在尝试在 cloudformation 中引用 edge lambda for cloudfront distribution。
我现在拥有的是:
LambdaFunctionARN:
Fn::GetAtt: [BasicAuthLambdaFunction,Arn]
但是我得到这个错误:
An error occurred: GGGCloudFrontDistribution - The function
ARN must reference a specific function version. (The ARN must end with
the version number.)
所以..有没有什么技巧可以引用函数的最新版本?
您不能使用最新版本。您必须使用特定版本作为链接状态的文档:
You must specify the ARN of a function version; you can't specify a Lambda alias or $LATEST.
如果您在模板中创建 Lambda 函数,您还可以创建一个版本并使用它。
BasicAuthLambdaFunctionVersion:
Type: "AWS::Lambda::Version"
Properties:
FunctionName:
Ref: BasicAuthLambdaFunction
# ...
LambdaFunctionARN:
Fn::GetAtt: [BasicAuthLambdaFunctionVersion,Arn]
请注意,更新堆栈时,当 Lambda 函数代码更改时,不会创建新版本。您必须通过将 BasicAuthLambdaFunctionVersion
的名称更改为 BasicAuthLambdaFunctionVersion2
或其他名称来手动创建和使用新版本。要自动执行此操作,您可以在使用前使用脚本编辑模板。
如果您使用的是无服务器框架,请查看:
https://github.com/silvermine/serverless-plugin-cloudfront-lambda-edge
https://github.com/serverless/serverless/issues/3944
我正在尝试在 cloudformation 中引用 edge lambda for cloudfront distribution。
我现在拥有的是:
LambdaFunctionARN:
Fn::GetAtt: [BasicAuthLambdaFunction,Arn]
但是我得到这个错误:
An error occurred: GGGCloudFrontDistribution - The function ARN must reference a specific function version. (The ARN must end with the version number.)
所以..有没有什么技巧可以引用函数的最新版本?
您不能使用最新版本。您必须使用特定版本作为链接状态的文档:
You must specify the ARN of a function version; you can't specify a Lambda alias or $LATEST.
如果您在模板中创建 Lambda 函数,您还可以创建一个版本并使用它。
BasicAuthLambdaFunctionVersion:
Type: "AWS::Lambda::Version"
Properties:
FunctionName:
Ref: BasicAuthLambdaFunction
# ...
LambdaFunctionARN:
Fn::GetAtt: [BasicAuthLambdaFunctionVersion,Arn]
请注意,更新堆栈时,当 Lambda 函数代码更改时,不会创建新版本。您必须通过将 BasicAuthLambdaFunctionVersion
的名称更改为 BasicAuthLambdaFunctionVersion2
或其他名称来手动创建和使用新版本。要自动执行此操作,您可以在使用前使用脚本编辑模板。
如果您使用的是无服务器框架,请查看:
https://github.com/silvermine/serverless-plugin-cloudfront-lambda-edge https://github.com/serverless/serverless/issues/3944