无效的资源属性cloudformation

时间:2015-08-28 15:16:19

标签: amazon-web-services amazon-cloudformation

我正在尝试使用CloudFormation自动执行某些构建部署。我现在正在尝试创建一个带有公有子网的VPC,但我不断收到此错误

A client error (ValidationError) occurred when calling the ValidateTemplate operation: Invalid template resource property 'PublicSubnet'

我在模板中的部分如下:

       "PublicSubnet" : {
        "Type": "AWS::EC2::Subnet",
        "Properties": {
            "CidrBlock": "10.0.1.0/24",
            "Tags": [
                {
                    "Name": "public-1"
                },
                {
                    "VpcId": {
                        "Ref": "DemoVPC"
                    }
                }
            ]
        },

任何指导都将不胜感激。

3 个答案:

答案 0 :(得分:1)

如果文档的JSON结构变形,通常也会出现此错误消息。如果没有良好的工具,很容易与开放式和闭合式托架混淆。

答案 1 :(得分:0)

AWS::EC2::Subnet的语法是:

{
   "Type" : "AWS::EC2::Subnet",
   "Properties" : {
      "AvailabilityZone" : String,
      "CidrBlock" : String,
      "MapPublicIpOnLaunch" : Boolean,
      "Tags" : [ Resource Tag, ... ],
      "VpcId" : { "Ref" : String }
   }
}

看起来你的VpcId不在Tags里面。 Tag Type具有以下属性

{
  "Key" : String,
  "Value" : String
}

答案 2 :(得分:0)

要创建子网资源,必须使用VpcId和CidrBlock。虽然你可以将VpcId作为标签本身,但VpcId应该是属性之一。有关详细信息,请参阅http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-ec2-subnet.html,特别是那些必需