Amazon web services 由于语法错误,Aws复合报警无法工作
我得到下面提到的CF的这个语法错误Amazon web services 由于语法错误,Aws复合报警无法工作,amazon-web-services,amazon-cloudformation,Amazon Web Services,Amazon Cloudformation,我得到下面提到的CF的这个语法错误 CMP: Type: AWS::CloudWatch::CompositeAlarm DependsOn: - QueueUploadWorkerpproximateNumberOfMessagesVisible - QueueDataWorkerApproximateAgeOfOldestMessage Properties: AlarmName: CMP AlarmDescription: CompositeAlarm AlarmR
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']”在字符13处出错,必须是“)”](服务:AmazonCloudWatch;状态代码:400;错误代码:ValidationError;请求ID:726ebbbd-2e30-447e-9944-4d72d9b63f2c;代理:null)”(请求令牌:92f75190-0b7e-e6f5-f5c0-d18377a82c4c,HandlerErrorCode:InvalidRequest)您可以使用来引用您的ALARM1
和ALARM2
:
AlarmRule: !Sub "(ALARM(['${ALARM1}']) AND ALARM(['${ALARM2}']))"
您必须仔细检查规则的语法,但现在将正确引用
ALARM1
和ALARM2
。为什么不!参考工作here@wasimmir因为它的语法不正确。如果要引用字符串中的值,必须使用Sub。它不起作用。它以另一种方式引用arn,并在下面给出了错误资源处理程序返回的消息:“无法将复合报警保存为报警规则中不存在的报警[arn:aws:cloudwatch:eu-west-1:123456789:alarm:['Alarm1'],arn:aws:cloudwatch:eu-west-1:123456789:alarm:['Alarm2'](服务:AmazonCloudWatch;状态代码:400;错误代码:ValidationError;请求ID:55b75e37-ed60-4fed-a2fc-3576acf5dddb;代理:null)”(请求令牌:e8e41628-4296-8107-74fe-0af24cc066b6,句柄错误代码:InvalidRequest)@wasimmir请分享您的完整代码,而不是几行代码。如果没有完整的示例,很难知道您的错误的上下文。实际问题中的代码,当我在aws文档中提到核心队列名称时,它会起作用,但当我尝试引用它时,我会得到错误。就像在这个URL中它是如何出现的一样