【发布时间】:2018-06-28 07:47:01
【问题描述】:
我已经在CloudFormation 中使用nested stacks 几个月了,它们非常有用。所以我想我应该花点时间让组织中的其他团队可以重复使用每个嵌套堆栈。
我在here 和here 等几个地方看到了AWS::Include 的用例,这对我来说很有意义。
我想到的一种方法是为每个资源使用一个 sn-p,例如 AWS::EC2::Subnet 或 AWS::EC2::InternetGateway 可以包含零次或多次一个vpc.json 模板,它本身可以用作大型应用程序中的嵌套堆栈。
sn-p 不带任何参数,但可以引用父模板中存在的参数。
乍一看,这对我来说似乎还不够。考虑这个例子:
"PublicSubnet": {
"Type": "AWS::EC2::Subnet",
"Properties": {
"VpcId": {"Ref": "VPC"},
"AvailabilityZone": {
"Fn::Select" : [ "0", { "Fn::GetAZs" : {"Ref": "AWS::Region"} }]
},
"CidrBlock": {
"Fn::FindInMap": ["AZSubnetMap", {
"Fn::Select" : [ "0", { "Fn::GetAZs" : {"Ref": "AWS::Region"} }]},
"PublicSubnet"]},
"MapPublicIpOnLaunch": "true",
"Tags": [..]
}
}
例如,如何避免在子网 sn-p 中为 AZ 硬编码 "0"?
【问题讨论】:
标签: amazon-web-services amazon-ec2 amazon-cloudformation