You need to enable JavaScript to run this app. AWS CloudFormation模板YAML格式错误:MetricFilter的FilterPattern行报错求助
优惠活动
大模型
产品
解决方案
定价
更多

AWS CloudFormation模板YAML格式错误:MetricFilter的FilterPattern行报错求助

AWS CloudFormation YAML格式报错排查结果

核心问题原因

你遇到的格式报错是YAML语法的固有规则导致的:

  • YAML解析器会将以{开头的内容默认识别为**内联字典(对象)**的起始标记,而你配置的FilterPattern值是CloudWatch日志过滤规则,本身就以{开头,未做特殊包裹的情况下会被YAML误认为是对象声明,触发格式解析错误。
  • 你原写法中用\"转义双引号的操作也没必要,反而增加了语法冲突的概率。

修复方案

两种方案任选一种即可:

方案1:用单引号包裹整个过滤规则

单引号在YAML中会将内部内容直接识别为纯字符串,不需要额外转义双引号,修改后代码如下:

FilterPattern: '{($.errorCode="*UnauthorizedOperation") || ($.errorCode="AccessDenied*")}'

方案2:使用YAML字面量块标记

如果过滤规则较长,推荐用|字面量块标记,彻底避免特殊符号冲突:

FilterPattern: |
  {($.errorCode="*UnauthorizedOperation") || ($.errorCode="AccessDenied*")}

修复后完整模板

AWSTemplateFormatVersion: "2010-09-09"

Resources:
  MySNSTopic:
    Type: AWS::SNS::Topic
    Properties:
      Subscription:
      - Endpoint: "abcd@abcd.com"
        Protocol: email
   
  snstopic: 
    Type: AWS::Logs::LogGroup
    DependsOn: MySNSTopic
    Properties: 
      RetentionInDays: 7
  
  UnauthorizedApiCalls: 
    Type: AWS::Logs::MetricFilter
    DependsOn: snstopic
    Properties: 
      LogGroupName: 
        Ref: "snstopic"
      FilterPattern: '{($.errorCode="*UnauthorizedOperation") || ($.errorCode="AccessDenied*")}'
      MetricTransformations: 
        - 
          MetricValue: "1"
          MetricNamespace: "unauthorized-api-calls"
          MetricName: "LogMetrics"

内容的提问来源于stack exchange,提问作者David Perera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 03:42:04