CloudFormation - SAM 模板的结构无效。 “资源”部分是必需的

Posted

技术标签:

【中文标题】CloudFormation - SAM 模板的结构无效。 “资源”部分是必需的【英文标题】:CloudFormation - Structure of the SAM template is invalid. 'Resources' section is required 【发布时间】:2018-12-26 08:06:03 【问题描述】:

我正在尝试使用代码管道部署 lambda,并使用 sam yml 进行代码部署,但失败并出现以下错误: 失败 - 转换 AWS::Serverless-2016-10-31 失败,原因是:无服务器应用程序规范文档无效。发现的错误数量: 1. SAM 模板的结构无效。 “资源”部分是必需的

sam.yml 是:

AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: Lambda1
Resources:
callDetails:
Type: 'AWS::Serverless::Function'
Properties:
  Handler: lambda_function.lambda_handler
  Runtime: python3.6
  CodeUri: .
  Description: 'Lambda Function'
  MemorySize: 128
  Timeout: 30
  Role: 'arn:aws:iam::XXXXXX:role/YYYYYYYYY'
  Environment:
    Variables:
      REGION: ap-southeast-2

buildspec.yml 有以下命令 - aws cloudformation 包 --template-file samTemplate.yaml --s3-bucket XXXX --output-template-file outputSamTemplate.yaml

输出SamTemplate:

enter code here

AWSTemplateFormatVersion: '2010-09-09'
Description: Lambda Function
Resources:
 callDetails:
  Properties:
   CodeUri: s3://TTTTTTTTTTTTT/CCCCCCCCC
   Description: callDetails Lambda Function
   Environment:
     Variables:
       REGION: ap-southeast-2
   Handler: lambda_function.lambda_handler
   MemorySize: 128
   Role: arn:aws:iam::XXXXX:role/validationsLambdas
   Runtime: python3.6
   Timeout: 30
  Type: AWS::Serverless::Function
 Transform: AWS::Serverless-2016-10-31

【问题讨论】:

sam.yml 中Resources 行之后的缩进似乎关闭了。在这里发帖时只是复制粘贴错位吗? 【参考方案1】:

在我的情况下,我有一些资源块为空的 yml 文件,删除这些文件解决了问题。

【讨论】:

以上是关于CloudFormation - SAM 模板的结构无效。 “资源”部分是必需的的主要内容,如果未能解决你的问题,请参考以下文章

如何知道 sam/cloudformation 堆栈 lambda 正在执行啥

Cloudformation Cognito - 如何通过 SAM 模板设置应用程序客户端设置、域和联合身份

AWS - SAM cli yaml 模板不适用于 cloudformation 堆栈

SAM API 网关与 Cloudformation WAFRegional

为啥我的 cloudformation 模板超过 1 MB?

如何自定义 AWS Codestar / Cloudformation 模板来创建特定的代码构建项目?