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

如何在CloudWatch Insights中解析对象数组字段并拼接多值?

CloudWatch Insights提取数组字段并拼接值的解决方案

问题场景

需要从CloudWatch日志中提取event.detail.Entries数组内所有Code字段的值,拼接成逗号分隔的字符串,但现有查询仅能获取第一个Code值,无法拿到全部结果。

示例日志

Field   Value
@message                      {"level":"INFO","message":"Event","timestamp":"2023-04-05T20:27:42.606Z","event":{"version":"0","time":"2023-04-05T20:27:41Z","resources":[""],"detail":{"Entries":[{"Code":"C25"},{"Code":"C27"}]}}}
@timestamp                    1680726462608
event.detail.Entries.0.Code   C25
event.detail.Entries.1.Code   C27
event.time                    2023-04-05T20:27:41Z
event.version                 0
level                         INFO
message                       Event
timestamp                     2023-04-05T20:27:42.606Z

期望结果

@timestamp                    code
2023-04-05T20:27:42.606Z      C25,C27

已尝试的查询(仅返回第一个值)

filter message like /Event/
| parse @message '{"Code":"*"}' as code
| sort @timestamp desc
| limit 20

解决方法

使用CloudWatch Insights的map和array_join函数处理数组字段,直接提取并拼接所有Code值:

filter message like /Event/
| fields @timestamp, array_join(map(event.detail.Entries, x -> x.Code), ",") as code
| sort @timestamp desc
| limit 20

逻辑说明

  1. event.detail.Entries是CloudWatch已自动解析完成的数组字段,包含所有Entry元素
  2. map(event.detail.Entries, x -> x.Code)遍历数组中的每个元素,提取出每个元素的Code值,生成一个新的字符串数组
  3. array_join(..., ",")将生成的字符串数组用逗号拼接成单个字符串,最终得到所有Code值的拼接结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:57:53