【问题标题】:AWS CF !If failesAWS CF !如果失败
【发布时间】:2020-07-19 19:59:29
【问题描述】:

当条件满足时,我的 AWS CF 失败。 这意味着当 CreateProdResources 为真时,我会收到以下错误:

Value of property AlarmActions must be of type List of String
AlarmActions:
                - !Ref SparksTeamSNSTopic
                - !If
                    - CreateProdResources
                    - - !Ref SparksProdAlarmSNSTopic
                      - !ImportValue
                          'Fn::Sub': '${Environment}-BMCCriticalAlarmTopic'
                    - !Ref 'AWS::NoValue'

【问题讨论】:

    标签: yaml amazon-cloudformation devops


    【解决方案1】:

    试试下面的模板,我还提供了 2 种不同的方法来满足你的 !if 条件。

    从您上面的代码 sn-p 中,我可以看到您正在尝试使用条件将 2 个主题 包含到 单个列表项 中,从而导致您的错误AlarmActions 必须是字符串列表类型。因此,您需要将 2 个主题拆分为 2 个列表项,如我所示。

    AlarmActions:
      - !Ref CloudtrailAlarmNotification
      - !If
        - CreateProdResources
        - Fn::ImportValue:
            !Sub 'RestAPI-${PartnerDataEndpointResource}-URLendpoint-${Stage}'
        - !Ref 'AWS::NoValue'
      - !If [CreateProdResources, !Ref SparksProdAlarmSNSTopic, !Ref 'AWS::NoValue']
    

    【讨论】:

    • 谢谢,已经发现我需要将 if 条件拆分为 2。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 1970-01-01
    • 2013-08-29
    • 2012-08-29
    • 2010-09-16
    • 2019-02-23
    相关资源
    最近更新 更多