AWS CloudFormation错误“属性AlarmActions的值必须为字符串列表类型”

时间:2020-04-02 15:33:54

标签: amazon-web-services yaml amazon-cloudformation devops

我正在尝试更新cf堆栈,并在部署时遇到以下错误: “属性AlarmActions的值必须为字符串列表类型”

这是AlarmActions属性:

 AlarmActions:
                - !Ref SparksTeamSNSTopic
                - !If
                    - CreateProdResources
                    - - !Ref SparksProdAlarmSNSTopic
                      - !ImportValue
                          'Fn::Sub': '${Environment}-BMCMajorAlarmTopic'
                    - - !Ref 'AWS::NoValue'                   

2 个答案:

答案 0 :(得分:0)

根据AWS documentationAlarmActions属性必须包含值,作为字符串列表。因此,如果它是 JSON

,则应该具有类似的内容
"AlarmActions":[
      {"Ref":"ARN of something"},
      {"Ref":"ARN of something"}           
]

但是,由于您已经使用了YAML,因此应该具有以下内容:

AlarmActions:
      - !Split [",", !Ref SparksTeamSNSTopic]  <-- make sure SparksTeamSNSTopic contains a list of strings; hence this will split it by comma 

您可以将SparksTeamSNSTopic定义为

"SparksTeamSNSTopic" : ["topicarn1", "topicarn2"]

答案 1 :(得分:0)

尝试一下,

AlarmActions:
    - !Ref SparksTeamSNSTopic
    - !If
      - CreateProdResources
      - - !Ref SparksProdAlarmSNSTopic
        - !ImportValue
            'Fn::Sub': '${Environment}-BMCMajorAlarmTopic'
      - !Ref 'AWS::NoValue'