问题描述
我正在尝试使用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