[英]Nested Mappings in Cloudformation template
我在cloudformation模板中有一個VPC設置的映射,如果有的話它可以正常工作
SubnetConfig:
VPC:
CIDR: '10.1.0.0/16'
PublicOne:
CIDR: '10.1.0.0/22'
PublicTwo:
CIDR: '10.1.4.0/22'
PrivateOne:
CIDR: '10.1.8.0/22'
PrivateTwo:
CIDR: '10.1.12.0/22'
我可以使用!FindInMap ['SubnetConfig', 'VPC', 'CIDR'] OR !FindInMap ['SubnetConfig', 'PublicOne', 'CIDR']
。
但是,我想根據PROD或非PROD環境使用不同的CIDR范圍。 在這種情況下,我的映射就像:
SubnetConfig:
PROD:
VPC:
CIDR: '10.1.0.0/16'
PublicOne:
CIDR: '10.1.0.0/24'
PublicTwo:
CIDR: '10.1.1.0/24'
PrivateOne:
CIDR: '10.1.2.0/24'
PrivateTwo:
CIDR: '10.1.3.0/24'
NON-PROD:
VPC:
CIDR: '10.2.0.0/16'
PublicOne:
CIDR: '10.2.0.0/22'
PublicTwo:
CIDR: '10.2.4.0/22'
PrivateOne:
CIDR: '10.2.8.0/22'
PrivateTwo:
CIDR: '10.2.12.0/22'
當然,cloudformation不允許這種映射。 有沒有一種方法可以定義此映射? 我已經提到了這篇文章,但沒有幫助
一種替代方法是將映射平坦化一個級別,例如
Mappings:
SubnetConfig:
PROD:
VPCCIDR: '10.1.0.0/16'
PublicOneCIDR: '10.1.0.0/24'
PublicTwoCIDR: '10.1.1.0/24'
PrivateOneCIDR: '10.1.2.0/24'
PrivateTwoCIDR: '10.1.3.0/24'
NON-PROD:
VPCCIDR: '10.2.0.0/16'
PublicOneCIDR: '10.2.0.0/22'
PublicTwoCIDR: '10.2.4.0/22'
PrivateOneCIDR: '10.2.8.0/22'
PrivateTwoCIDR: '10.2.12.0/22'
一種方法是您可以創建2個JSON格式的屬性文件,其中1個具有PROD范圍,另一個具有NON PROD范圍。 然后,可能可以讓您的代碼根據要部署的環境讀取屬性文件,選擇合適的文件,讀取值,然后在部署時將其傳遞給CF模板。 因此,與其對模板中的IP范圍進行硬編碼,還可以對其進行參數化,並從要從代碼傳遞給模板的輸入參數中讀取它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.