如何避免与安全组的云形式循环引用?

时间:2014-07-20 17:25:56

标签: amazon-web-services amazon-cloudformation

如何避免cloudformation模板之间的循环引用?

E.g。我的Web服务器有一个模板,另一个模板有我的数据库实例。模板DB会像:

"Database": {
  "Type":"AWS::RDS::DBInstance",
  "Properties": {
     // lots of other props
     "VPCSecurityGroups": [ {"Ref":"DBSecurityGroup"} ]
  }
},
"DBSecurityGroup" : {
  "Type":"AWS::RDS::DBSecurityGroup",
  "Properties": {
    // lots of other props
    "SecurityGroupIngress": [{... "SourceSecurityGroupId":{"Ref":"WebSecurityGroup"}}]
  }
}

但是在我的Web服务器模板中,我需要引用DBSecurityGroup:

"WebServer": {
  "Type":"AWS::EC2::Instance",
  "Properties": {
     // lots of other props
     "SecurityGroups": [ {"Ref":"DBSecurityGroup"} ]
  }
},
"WebSecurityGroup" : {
  "Type":"AWS::EC2::SecurityGroup",
  "Properties": {
    // lots of other props
    "SecurityGroupEgress": [{... "SourceSecurityGroupId":{"Ref":"DBSecurityGroup"}}]
  }
}

如何避免模板之间的这些循环引用?

1 个答案:

答案 0 :(得分:0)

使用单独的AWS::EC2::SecurityGroupEgress资源,而不是SecurityGroupEgress属性。

请参阅http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ec2.html#scenario-ec2-security-group-ingress

上的示例代码段