Amazon web services 无效的资源属性cloudformation

Amazon web services 无效的资源属性cloudformation,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,我正在尝试使用CloudFormation自动化一些构建部署。我现在正试图创建一个带有公共子网的VPC,但我一直收到这个错误 A client error (ValidationError) occurred when calling the ValidateTemplate operation: Invalid template resource property 'PublicSubnet' 我在模板中的部分如下: "PublicSubnet" : { "Ty

我正在尝试使用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"
                    }
                }
            ]
        },
欢迎提供任何指导。

的语法为:

{
“类型”:“AWS::EC2::子网”,
“财产”:{
“AvailabilityZone”:字符串,
“CidrBlock”:字符串,
“MapPublicIpOnLaunch”:布尔值,
“标记”:[资源标记,…],
“VpcId”:{“Ref”:String}
}
}
似乎您的VpcId在
标记中,而它不应该在标记中。具有以下属性

{
“键”:字符串,
“值”:字符串
}

创建子网资源时,必须使用VpcId和CidrBlock。尽管可以将VpcId作为标记本身,但VpcId应该是属性之一。有关更多详细信息,请参阅,特别是那些说明必需的

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

看起来这可能是一个间距问题,出于某种原因,它认为这是一个资源属性。这很奇怪,因为它是经过JSON验证的。我希望标记名是“VpcId”,结果发现我使用的“标记”语法不正确。更糟糕的是,YAML不好。当我的一个函数声明被不正确地标记时,我出现了这个错误。错误消息肯定不会指向正确的方向,除非您推断缺少属性的原因是格式化