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

如何在Adaptive Cards中显示Elastic告警含特殊字符的属性文本?

解决Adaptive Card访问Elastic带特殊符号字段的问题

核心方案:用方括号语法访问特殊属性名

Adaptive Card的数据绑定支持通过[]包裹属性名的方式,直接读取包含点号、@等特殊字符的字段,无需修改Elastic生成的原始数据结构。

适配你的数据的完整示例

以下是针对你提供的Elastic告警数据编写的Adaptive Card片段,可正确显示所有目标字段:

{
  "type": "Container",
  "$data": "${$root.hits.hits}",
  "items": [
    {
      "$when": "${$index < 2}",
      "type": "TextBlock",
      "text": "日志内容: ${fields['log.@m']}",
      "wrap": true
    },
    {
      "$when": "${$index < 2}",
      "type": "TextBlock",
      "text": "节点名称: ${fields['kubernetes.node.name'][0]}",
      "spacing": "Small"
    },
    {
      "$when": "${$index < 2}",
      "type": "TextBlock",
      "text": "日志级别: ${fields['log.@l'][0]}",
      "spacing": "Small"
    }
  ]
}

关键细节说明

  • 非数组字段(如log.@m):直接使用${fields['log.@m']}格式访问,完整保留原始属性名
  • 数组类型字段(如kubernetes.node.name、log.@l):Elastic返回的这类字段通常是单元素数组,需通过[0]提取第一个元素
  • 该语法完全符合Adaptive Card的表达式规则,无需额外配置或修改数据源

误区修正

你之前尝试的${log.m}写法错误,原因是未保留原始字段的@符号,必须完整使用log.@m作为属性名并用方括号包裹。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 15:55:51