Fn :: If内部的CloudFormation参数参考Fn :: Sub

时间:2020-05-19 23:42:28

标签: amazon-cloudformation

我正在尝试使用Fn :: Sub替换字符串中的两个变量。问题在于变量值是基于条件语句的。如何正确书写?

"Fn::Sub":["https://${QS}.${CUR}.website.com, 
           {"QS": {"Fn::If": ["condition1", ${abc}-${AWS::Region}, ${abcq}]}},
           {"CUR": {"Fn::If": ["condition1", ${AWS::Region}, ${abcq}]}}
          ]

在这里,condition1是条件之一,而abc和abcq是参数。

1 个答案:

答案 0 :(得分:1)

您可以尝试以下方法。由于我无法运行实际代码进行验证,因此可能需要进行一些调整。

我认为以下应该是您要实现的目标的方法:

"Fn::Sub":
[
    "https://${QS}.${CUR}.website.com, 
    {"QS":  
        {
            "Fn::If": [
                "condition1", 
                {"Fn::Sub": "${abc}-${AWS::Region}"}, 
                {"Fn::Ref": "abcq"}    
            ]
        }
    },
    {"CUR": 
        {
        "Fn::If": [
                "condition1", 
                {"Fn::Ref": "AWS::Region"},    
                {"Fn::Ref": "abcq"}    
            ]
        }
    }
]