推荐使用 SMN 消息通知,该方式适用于常规账号。AOM Webhook 数据订阅目前受限开放,仅在您的账号已开通该能力时使用。
在 Flashduty On-call 创建集成
您可通过以下两种方式获取集成推送地址,任选其一。使用专属集成
当您不需要将告警事件路由到不同的协作空间时,优先选择此方式。展开
展开
- 进入 Flashduty 控制台,选择 协作空间,进入目标协作空间。
- 选择 集成数据,单击 添加一个集成。
- 选择 华为云 AOM 集成,单击 保存。
- 打开生成的集成卡片,复制 推送地址。
使用共享集成
当您需要根据告警 Payload 将事件路由到不同的协作空间时,选择此方式。展开
展开
- 进入 Flashduty 控制台,选择 集成中心 > 告警事件。
- 选择 华为云 AOM 集成并填写集成名称。
- 配置默认路由并选择协作空间。创建后可在 路由 中继续配置路由规则。
- 单击 保存,复制生成的 推送地址。
接入前准备
- 已在 Flashduty 创建 华为云 AOM 集成并取得 HTTPS 推送地址。
- 已在华为云创建或准备好 AOM 告警规则。
- 使用 SMN 时,当前账号需要具备创建主题、订阅主题以及查看主题的权限。
- 告警规则需要同时发送 告警触发 和 告警恢复 通知。
方式一:通过 SMN 接入
创建 SMN 主题与订阅
1
创建 SMN 主题
- 登录华为云控制台,进入 消息通知服务 SMN。
- 选择 主题管理 > 主题,单击 创建主题。
-
将主题名称设置为 Flashduty,然后保存。

2
添加 HTTPS 订阅
- 在 Flashduty 主题中单击 添加订阅。
- 协议选择 HTTPS。
-
在订阅终端中填写 Flashduty AOM 集成的 推送地址,然后保存。
Flashduty 会验证 SMN 的订阅确认请求并自动访问华为云确认地址。订阅状态变为 已确认 后,SMN 才会发送告警。

配置 AOM 消息模板
在 AOM 2.0 控制台进入 告警中心 > 告警通知 > 消息模板。部分控制台版本中的入口名称为 告警 > 告警行动规则 > 消息模板。 创建消息模板时,通知方式选择 HTTP/HTTPS。Flashduty 支持以下两种正文格式:- HTML
- JSON
HTML 模板支持中文和英文。建议在正文第一行增加上报类型,Flashduty 将优先使用该字段识别告警与恢复。中文模板英文模板
创建告警通知规则
1
关联 SMN 主题与消息模板
- 在 AOM 2.0 控制台进入 告警中心 > 告警通知。
- 在 通知规则管理 中创建告警通知规则。
- 选择前面创建的 Flashduty SMN 主题和 AOM 消息模板。
2
发送触发与恢复通知
在 AOM 告警规则中启用通知,并确保通知场景同时包含 告警触发 和 告警恢复。
3
验证接入
触发一条测试告警,然后恢复该告警。回到 Flashduty 集成页面,确认最新事件时间已更新,并在告警详情中检查等级、资源和恢复状态。
方式二:通过 AOM Webhook 数据订阅
账号已开通该能力时,可在 AOM 2.0 控制台进入 设置 > 全局设置 > 数据订阅,创建 Webhook 告警订阅规则,并将目标地址设置为同一个 Flashduty AOM 集成推送地址。 Webhook 请求需要使用 AOM 官方的结构化事件格式:id、starts_at 以及六个核心 metadata 字段必须有有效值。
告警与恢复关联
Flashduty 按以下优先级识别恢复:
华为云中文模板的
clear_type 枚举值为 触发 和 恢复;英文模板的枚举值为 generated 和 cleared。Flashduty 优先使用这些值判断告警与恢复。
SMN HTML 没有可用的上报类型时,主题中包含“恢复”、
_resolved、_recovered 或 _clear 也会被识别为恢复。-
metadata.event_type -
metadata.event_name -
metadata.resource_provider -
metadata.resource_type -
metadata.resource_id
id 会保存为标签,但不参与告警与恢复关联,因此告警通知和恢复通知的 ID 可以不同。
如果两个独立告警的上述五个字段完全相同,Flashduty 会将其视为同一告警。请确保 metadata.event_name 或 metadata.resource_id 能区分需要独立处理的告警。
字段与等级映射
常用 AOM 字段会转换为 Flashduty 标签:
告警等级映射如下:
常见问题
SMN 订阅为什么一直没有确认?
SMN 订阅为什么一直没有确认?
确认订阅终端使用完整的 HTTPS 集成推送地址,并且地址中的
integration_key 未被修改。Flashduty 仅会自动访问合法的华为云 HTTPS 确认地址。为什么手动重放 SMN 请求会提示签名无效?
为什么手动重放 SMN 请求会提示签名无效?
SMN 的
signature 与消息正文、消息 ID、subject、主题、时间和消息类型绑定。修改任一字段后,原签名都会失效。请通过 AOM 和 SMN 发送真实测试通知,不要复制并修改历史请求。告警为什么没有被恢复?
告警为什么没有被恢复?
确认告警规则发送了恢复通知。HTML 模板建议加入
${clear_type};SMN JSON 优先读取大于 0 的 ends_at,缺失、空值或 0 时需要确保 subject 能表明恢复;Webhook 数据订阅必须提供大于 0 的 ends_at。同时检查告警和恢复的五个关联字段是否一致。SMN JSON 和 Webhook 数据订阅有什么区别?
SMN JSON 和 Webhook 数据订阅有什么区别?
SMN JSON 是 SMN 通知报文中的
message 字段,外层仍包含签名和主题。Webhook 数据订阅直接发送 {“events”:[…]} 结构,不包含 SMN 外层字段。不要把两种外层结构混合在同一个请求中。