Cloudformation LayerVersion S3Bucket使用参数

问题描述

我正在尝试使用Cloudformation打包和部署一个使用单个Lambda层的简单“ hello world”无服务器应用程序。我遇到的问题是,我的CF模板文件中的LayerVersion部分似乎不喜欢我使用!Ref来指定S3Bucket和{{ 1}}值。我不想硬编码这些;我在文档中找不到的任何内容都表明我尝试执行的操作不起作用,但不起作用:(

这是S3Key命令失败的输出

deploy

这是完整的CF模板文件

aws cloudformation deploy --template-file out.yml --stack-name cftest-lambda --parameter-overrides S3BucketNameParameter=cftest-0eddf3f0b289f2c2 S3LambdaLayerNameParameter=cftest-lambda-layer-1602434332.zip --capabilities CAPABILITY_NAMED_IAM

Waiting for changeset to be created..

Failed to create the changeset: Waiter ChangeSetCreateComplete Failed: Waiter encountered a terminal failure state Status: Failed. Reason: Transform AWS::Serverless-2016-10-31 Failed with: Invalid Serverless Application Specification document. Number of errors found: 1. Resource with id [libs] is invalid. property Content not defined for resource of type AWS::Serverless::LayerVersion

关于如何正确处理此问题的任何建议?

解决方法

LayerContent正确属性是:

  Bucket: String
  Key: String
  Version: String

但是,您正在使用(不同的名称):

 S3Bucket: String
 S3Key: String