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

如何修改AWS Lambda推送至Teams的Message Card文本颜色

如何修改Teams Message Card的文本颜色(AWS Lambda + Webhook场景)

兄弟,我太懂你这个痛点了!传统的Teams Message Card确实没有官方属性直接给title字段设置文本颜色,你代码里加的"color": "FF0000"不是标准字段,Teams会直接忽略它,这就是为啥你的尝试没生效。

不过别慌,有两个靠谱的办法能实现你要的标题变色效果:

方法1:用text字段结合HTML标签模拟标题

Message Card的text字段支持有限的HTML标签,其中就包括<font>标签可以设置颜色。你可以把带颜色的标题内容放到text里,再通过加粗等格式让它看起来像标题,示例代码如下:

data = {
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "themeColor": "0072C6",
    # 要是想保留原标题的位置,就留着;想全变色就直接把内容移去text里
    "title": self.title,
    "text": f"<font color='FF0000'>Severity: {str(self.severity)}</font>\n{self.findings}\n Account: {self.account}\nTags: {json.dumps(self.tags)}"
}

如果想让整个标题(包括self.title和Severity部分)都变色,就把所有内容包进<font>标签:

"text": f"<font color='FF0000'>{self.title} Severity: {str(self.severity)}</font>\n{self.findings}\n Account: {self.account}\nTags: {json.dumps(self.tags)}"

方法2:用sections模块构建带样式的标题

另一种更规整的方式是用Message Card的sections字段,在sections里的activityTitle同样支持HTML标签,这样可以把带颜色的标题单独放进去,结构更清晰:

data = {
    "@context": "https://schema.org/extensions",
    "@type": "MessageCard",
    "themeColor": "0072C6",
    "sections": [
        {
            "activityTitle": f"<font color='FF0000'>{self.title} Severity: {str(self.severity)}</font>",
            "text": f"{self.findings}\n Account: {self.account}\nTags: {json.dumps(self.tags)}"
        }
    ]
}

几个关键注意点

  • 颜色值要加单引号或双引号,支持十六进制(比如FF0000)或者直接用颜色名称(比如red)
  • 别加#前缀!Teams解析传统Message Card时会忽略带#的颜色值,直接写纯十六进制字符串就行
  • 测试的时候直接把JSON payload通过你的Lambda发送到Teams webhook就行,不用找第三方工具,发完看效果调整就行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 06:52:49