同一条告警,机房 A 和机房 B 的处理人不同、设备编号不同、时间也不同。如果把这些信息写死在代码里,每次新增场景都要改文案、重新审核,非常低效。互亿无线预警通知支持模板变量,把固定话术做成模板,运行时再把动态数据填进去,实现个性化播报。…
同一条告警,机房 A 和机房 B 的处理人不同、设备编号不同、时间也不同。如果把这些信息写死在代码里,每次新增场景都要改文案、重新审核,非常低效。互亿无线预警通知支持模板变量,把固定话术做成模板,运行时再把动态数据填进去,实现个性化播报。
预警通知模板变量的工作原理
在互亿无线控制台预先报备一段带占位符的模板,例如"【预警】服务器{1}的CPU使用率达到{2},请{3}立即处理"。调用接口时,用 templateid 指定模板,content 字段按顺序传入变量值,多个变量之间用英文竖线 | 分隔。平台会把变量拼进模板再下发短信或合成语音,变量顺序与占位符一一对应,错位就会播报错乱。
模板变量发送的代码示例
下面用 Python 演示带变量的短信预警发送,并做基本的参数校验:
import requests
url = "https://api.ihuyi.com/sms/Submit.json"
def send_tpl(templateid, variables, mobile):
content = "|".join(str(v) for v in variables)
data = {
"account": "你的APIID",
"password": "你的APIKEY",
"mobile": mobile,
"templateid": str(templateid),
"content": content
}
try:
r = requests.post(url, data=data, timeout=(5, 10))
res = r.json()
print(res)
return res.get("code") == 2
except requests.RequestException as e:
print("发送异常:", e)
return False
send_tpl(1234, ["web-01", "92%", "张工"], "13800000001")
语音接口同样支持变量拼接,content 传入变量后由 TTS 合成,约 70 字对应 20 秒播报,无需提前录音。参数说明可参考短信接口文档。
模板变量使用的注意事项
- 变量顺序必须与模板占位符一一对应,错位会导致播报内容张冠李戴。
- 变量内容不要包含模板外的敏感词或营销话术,否则可能被拦截。
- 数字、英文缩写建议在模板里写清楚读法,例如 CPU 直接念字母,TTS 能正常处理。
- 语音播报变量时,过长的变量会拉长通话,建议单条控制在 70 字以内。
- 变量里的手机号、金额建议做脱敏,避免在语音中读出完整敏感信息。
模板变量的常见坑
- 竖线分隔符必须是英文半角 |,写成中文全角|会被当成普通文字拼进模板。
- 变量个数多于占位符时多出的部分会被忽略,少了则占位符可能原样播报,提交前先在测试额度里跑一遍。
- 模板审核通过后再用 templateid 发送,未报备模板直接发内容容易被通道拦截。
模板变量带来的维护收益
使用模板变量后,文案修改只需在控制台更新模板,业务代码一行不用动;新增场景只需新增一个模板 ID,复用同一份发送逻辑。这对多机房、多业务线的团队尤其友好。互亿无线提供免费技术支持,模板审核期间可以用测试额度先跑通变量拼接逻辑。
模板变量在多业务线的组织方式
团队内建议按业务线给模板分组,例如机房告警、账单提醒、风控通知各建一套模板,并在内部登记模板 ID 与变量顺序。这样新同事接入时照着登记填变量即可,不用回头翻代码。变量值统一由后端拼装,前端和监控只传结构化字段,避免直接拼字符串造成竖线转义问题。
| 占位符 | 含义 | 示例 |
|---|---|---|
| {1} | 对象或主机名 | web-01 |
| {2} | 指标值 | 92% |
| {3} | 处理人 | 张工 |
- 变量值里如果本身含竖线或特殊符号,先做替换,防止被误当成分隔符。
- 模板变更后要回归一条测试,确认播报顺序没有变化。
把固定话术沉淀为模板,让预警通知既规范又灵活,注册免费试用开始搭建你的变量化告警模板库。