如何在cloudformation yml中获取最新的lambda版本?

时间:2018-01-07 13:21:38

标签: amazon-web-services amazon-cloudfront amazon-cloudformation serverless-framework

我正在尝试在cloudformation中引用edge lambda for cloudfront distribution

我现在拥有的是:

          LambdaFunctionARN:
            Fn::GetAtt: [BasicAuthLambdaFunction,Arn]

但是我收到了这个错误:

  

发生错误:GGGCloudFrontDistribution - 该功能   ARN必须引用特定的功能版本。 (ARN必须以   版本号。)

那么......是否有某种技术可以引用最新版本的函数?

1 个答案:

答案 0 :(得分:2)

您无法使用最新版本。您必须使用特定版本作为您链接的文档:

  

您必须指定功能版本的ARN;您无法指定Lambda别名或$ 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