CloudFormation模板格式错误:每个Parameters对象都必须包含Type成员

时间:2019-03-29 07:53:07

标签: amazon-web-services amazon-cloudformation

我有以下非常简单的CloudFormation模板:

---
AWSTemplateFormatVersion: 2010-09-09
Parameters:
  InstanceType:
    Description: 'EC2 Instance Type'
    Default: t2.micro
Resources:
  EC2Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      ImageId: ami-08589eca6dcc9b39c
      InstanceType: !Ref InstanceType
      KeyName: default

使用以下方法验证此模板:

▶ aws cloudformation validate-template --template-body file://cloudformation.yml

我收到以下神秘错误消息:

An error occurred (ValidationError) when calling the ValidateTemplate operation:
  Template format error: Every Parameters object must contain a Type member.           

是什么意思?我在Google上搜索了此错误消息,却一无所获。

1 个答案:

答案 0 :(得分:3)

该错误消息可能令人困惑-尤其是在您有很多参数的情况下-并且似乎没有任何地方记录该错误消息。但是在文档中提到了here

  

必须为每个参数分配AWS CloudFormation支持的参数类型。有关更多信息,请参见Type

要修复此模板,只需添加一个类型:

---
AWSTemplateFormatVersion: 2010-09-09
Parameters:
  InstanceType:
    Type: String  ## ADD THIS LINE
    Description: 'EC2 Instance Type'
    Default: t2.micro
Resources:
  EC2Instance:
    Type: 'AWS::EC2::Instance'
    Properties:
      ImageId: ami-08589eca6dcc9b39c
      InstanceType: !Ref InstanceType
      KeyName: default

另请参见related questions,请参见堆栈溢出。