2017-08-04 91 views
0

我定义我的参数是这样的:AWS cloudformation -resource属性错误

"InstanceSecurityGroup" : { 
     "Type" : "AWS::EC2::SecurityGroup", 
     "Properties" : { 
     "VpcId" : {"Ref": "VPCLIST"} , 
     "GroupDescription" : "Enable 3306/80/SSH access via port 22" 
} 

,并在执行这个我:

{ 
    "PrivateSubnets":{ 
     "Description":"db subnetlist", 
     "Type": "List<AWS::EC2::Subnet::Id>" 
    }, 

    "VPCLIST": { 
     "Description": "VPC list", 
     "Type": "List<AWS::EC2::VPC::Id>" 
    } 
} 

和“资源”像部分以下,参照上述参数得到下面的错误。

AWS EC2 :: :: SecurityGroup InstanceSecurityGroup “属性VpcId的值必须是String类型的”

注:我只默认VPC可用它未作为字符串?对此问题的任何解决方案...

+0

下面是错误信息:错误 无法列出数据:内部故障 –

回答

0

安全组要求VpcId是一个字符串,属性是一个数组列表,因此您需要将该属性更改为Type:String,或使用 Fn::Select函数。

{ "Fn::Select" : [ 0, VPCLIST ] } 

列表 - VPC ID的数组

{ 
    "Type" : "AWS::EC2::SecurityGroup", 
    "Properties" : { 
    "GroupName" : String, 
    "GroupDescription" : String, 
    "SecurityGroupEgress" : [ Security Group Rule, ... ], 
    "SecurityGroupIngress" : [ Security Group Rule, ... ], 
    "Tags" : [ Resource Tag, ... ], 
    "VpcId" : String 
    } 
} 

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html

0

正确的做法应该是让这种变化:

{ 
    "PrivateSubnets": { 
    "Description":"db subnetlist", 
    "Type": "AWS::EC2::Subnet::Id" 
    }, 
    "VPCLIST": { 
    "Description": "VPC list", 
    "Type": "AWS::EC2::VPC::Id" 
    } 
}