我有一个CloudFormation脚本来生成一个SecurityGroup和一个ELB;我试图在ELB创建中引用SecurityGroup;这里的资源位:如何将创建的SecurityGroup从CloudFormation分配给ELB?
"ELBSecurityGroup" : {
"Type" : "AWS::EC2::SecurityGroup",
"Properties" : {
"GroupDescription" : "Security group for the Arena dev stack",
"SecurityGroupIngress" : [
{"IpProtocol" : "tcp", "FromPort" : 80, "ToPort" : 80, "CidrIp" : { "Ref" : "OfficeIp" }}
]
}
},
"ProjectLoadBalancerTest" : {
"Type" : "AWS::ElasticLoadBalancing::LoadBalancer",
"Properties" : {
"AvailabilityZones" : { "Fn::GetAZs" : "" },
"Instances" : [ ],
"Listeners" : [ {
"LoadBalancerPort" : "80",
"InstancePort" : "12345",
"Protocol" : "HTTP"
} ],
"HealthCheck" : {
"Target" : {
"Fn::Join" : [ "", [ "HTTP:", "12345", "/status.json" ] ]
},
"HealthyThreshold" : "2",
"UnhealthyThreshold" : "5",
"Interval" : "60",
"Timeout" : "30"
},
"SecurityGroups" : [
{ "Ref" : "ELBSecurityGroup" }
]
}
}
不幸的是,这种失败:
Invalid id: "sebelbtest2-ELBSecurityGroup-1F5Z5DIIVQKD1" (expecting "sg-...")
所以,我怎么能引用ELBSecurityGroup用作在ELB创建的属性?
谢谢!
我想出了如何解决这个问题,请参阅下面的我的(更新的)答案 - 我只需要使安全组成为VPC之一(通过分配VpcId),然后ELB用{“Ref”拉出正确的值: ...} – Seb