You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写AWS CloudWatch订阅过滤器适配混合JSON与纯文本格式日志

解决方案

你可以通过CloudWatch过滤器的字段存在性判断逻辑实现需求,调整后的订阅过滤器配置如下:

AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ClusterName:
    Type: String
Resources:
  TriggerEksControlPlane1:
    Type: AWS::Logs::SubscriptionFilter
    Properties: 
      DestinationArn: !Sub "arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:newrelic-log-ingestion"
      FilterPattern: "{ ($.level != \"Metadata\") || ($.level NOT EXISTS) }"
      LogGroupName: !Sub /aws/eks/${ClusterName}/cluster

工作原理

  • 对于合法JSON格式的日志:
    • 若日志包含level字段且值不等于Metadata,会匹配规则被推送
    • 若日志包含level字段且值等于Metadata,不会匹配
    • 若日志不包含level字段,会触发$.level NOT EXISTS条件被推送
  • 对于纯文本格式的日志:CloudWatch无法解析为JSON结构,会判定所有JSON字段不存在,触发$.level NOT EXISTS条件全部被推送

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 21:27:03