由于语法错误,Aws 复合警报不起作用

问题描述

我收到以下提到的 CF 的语法错误

    CMP:
Type: AWS::CloudWatch::Compositealarm
DependsOn:
 - QueueUploadWorkerpproximateNumberOfMessagesVisible
 - QueueDataWorkerApproximateAgeOfOldestMessage
Properties:
  AlarmName: CMP
  AlarmDescription: Compositealarm
  AlarmRule: (ALARM([!Ref 'ALARM1']) AND ALARM([!Ref 'ALARM2']))
  AlarmActions:
       - !Ref SNSTOPIC

资源处理程序返回消息:“AlarmRule 中的错误 [Unsupported token ''Alarms1']' at char 13,must be: ')'](服务:AmazonCloudWatch;状态代码:400;错误代码:ValidationError;请求 ID: 726ebbbd-2e30-447e-9944-4d72d9b63f2c;代理:null)”(RequestToken:92f75190-0b7e-e6f5-f5c0-d18377a82c4c,HandlerErrorCode:InvalidRequest)

解决方法

您可以使用 Sub 来引用您的 ALARM1ALARM2

AlarmRule: !Sub "(ALARM(['${ALARM1}']) AND ALARM(['${ALARM2}']))"

您必须仔细检查规则的语法,但现在 ALARM1ALARM2 将被正确引用。