如何在CloudFormation脚本中设置非硬编码的默认可用区
解决CloudFormation参数默认值为第一个可用区的问题
你遇到的错误根源是:AWS::EC2::AvailabilityZone::Name是单个字符串类型的参数,而你给Default设置了一个数组(带-的写法会把值包装成数组元素),不符合CloudFormation对该类型参数默认值的要求。
直接去掉Default下面的破折号,让!Select表达式直接返回单个字符串即可,修改后的代码如下:
AvailabilityZones: Type: AWS::EC2::AvailabilityZone::Name Default: !Select - 0 - !GetAZs Ref: 'AWS::Region'
或者用更紧凑的短格式写法:
AvailabilityZones: Type: AWS::EC2::AvailabilityZone::Name Default: !Select [0, !GetAZs !Ref AWS::Region]
这样设置后,参数会自动将当前区域的第一个可用区设为默认值,同时保留下拉选择的功能,完全不需要硬编码可用区名称。
内容的提问来源于stack exchange,提问作者Rich
相关产品推荐
相关产品推荐

