CloudFormation模板报Cannot use Fn::GetAZs in Conditions错误求助
报错核心原因
该错误是你的Condition结构不符合CloudFormation语法规范导致的,并非Fn::GetAZs不支持在Conditions中使用:
CloudFormation的Conditions块规则为:每个条件名称下直接对应条件判断函数,你在DBInstanceLaunch条件下额外嵌套了一层自定义的IsFirstPrimaryAZ键,导致CloudFormation解析逻辑出错,抛出误报。
修正方案
根据你的业务命名需求选择对应写法即可:
- 保留
DBInstanceLaunch作为条件名:
Conditions: DBInstanceLaunch: Fn::Equals: - !Ref DBAvailabilityZone - Fn::Select: - 0 - Fn::GetAZs: ''
- 如果你的实际条件判断逻辑就是
IsFirstPrimaryAZ,可直接将其作为条件名:
Conditions: IsFirstPrimaryAZ: Fn::Equals: - !Ref DBAvailabilityZone - Fn::Select: - 0 - Fn::GetAZs: ''
兼容性优化建议
如果修改结构后仍有报错,可将Fn::GetAZs: ''替换为Fn::GetAZs: !Ref 'AWS::Region',适配部分旧版本区域的CloudFormation解析规则。
内容的提问来源于stack exchange,提问作者sameerawsnoob
相关产品推荐
相关产品推荐

