如果在 cloudwatch 日志组的日志条目中,它们实际上显示为 json,您可以直接在任何需要字段的位置引用密钥。
(不需要@,cloudwatch 会自动将其附加到所有默认值)
如果您使用的是 python,您也可以使用 aws_lambda_powertools 以非常巧妙的方式执行此操作(并且它是一个实际的 aws 产品)
如果它们在您的日志中显示为字符串,那么它可能是一个转义字符串,您必须完全匹配它 - 包括空格等等。当你解析时,你会想要做这样的事情:
如果这是您的日志消息的字符串 '{"AKey" : "AValue", "Key2" : "Value2"}
parse @message "{\"*\" : \"*\",\"*\" : \"*\"} akey, akey_value, key2, key2_value
然后您可以过滤或计数或针对这些变量进行任何操作。 parse 特别是一个匹配模式并将通配符分配给变量的语句,一次一个,按顺序
如果您使用了复杂的 json,如果您的上述正则表达式有效,那么您只需要一个过滤器语句
field @message
| pares @message ... your regex as value_var
| filer value_var /some more regex/
如果它不是日志条目中的字符串,而是一个实际的 json,您可以直接引用密钥:
filter a_key ~="some value" (or regex here)
https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/CWL_AnalyzeLogData-discoverable-fields.html
更多信息