透過騰訊雲語音服務(VMS · SendTtsVoice)撥打電話給值班人員播報告警,新手可依步驟逐步完成設定。

概述

騰訊雲語音通知媒介利用騰訊雲 VMS(語音訊息服務) · SendTtsVoice API,把告警以 TTS(文字轉語音)方式自動撥打到值班人員手機。用於對時效性要求最高的嚴重告警——電話比簡訊、IM 更能把人叫醒。

  • 適用情境:夜間/假日的 P0 級告警、需要強制觸達的故障通知。
  • 你需要準備:
    1. 一個已實名認證、已開通語音訊息 VMS 的騰訊雲帳號;
    2. 騰訊雲 SecretId / SecretKey(建議使用 CAM 子帳號);
    3. 已審核通過的 語音範本 TemplateId
    4. 已建立的 VoiceSdkAppid(語音應用 ID,於 VMS 控制台中建立)。
  • 整個設定分三步:①在騰訊雲開通 VMS 並申請語音範本 → ②在夜鶯新建騰訊雲語音通知媒介 → ③使用者填手機號碼、通知規則裡選擇接收人

騰訊雲 VMS 範本/簽名需要工單審核,週期 1~3 個工作日。

第一步:在騰訊雲控制台準備資料

  1. 登入 騰訊雲語音訊息控制台,首次使用需開通服務。
  2. 建立語音應用:進入 應用管理 → 建立應用,得到 VoiceSdkAppid(7 位數字)。
  3. 建立語音範本
    • 應用管理 → 你的應用 → 正文範本,申請一個 TTS 範本;
    • 重點:範本只能有一個變數 {1},因為夜鶯預先設定的請求內容裡寫的是 TemplateParamSet = ["{{$tpl.content}}"]——只傳了一個值,對應範本裡的 {1}
    • 把固定話術寫在範本裡,讓 {1} 只放變化部分:
      您有一條告警,{1},請及時處理
      
      然後到夜鶯 → 訊息範本 → 複製一份 Tencent Voice,把 content 欄位改短(例如改成 {{$event.RuleName}})。
    • 提交審核,通過後得到 TemplateId(一串數字,如 1234567)。
  4. CAM 存取管理 · 子帳號 建立一個子帳號,授予策略 QcloudVMSFullAccess(或等效權限),記下 SecretId / SecretKey(僅建立時顯示一次)。

第二步:在夜鶯新建騰訊雲語音通知媒介

  1. 登入夜鶯 → 左側選單 通知 → 通知媒介

  2. 在左側類型面板中點擊 騰訊雲語音,進入新建頁面(URL /notification-channels/add?ident=tx-voice)。

  3. 填寫基礎資訊:

    騰訊雲語音基礎設定

    區塊 欄位 是否需要修改 說明
    基礎設定 名稱 需要 例如 騰訊雲語音
    變數設定 聯絡方式 保持預設 Phone 發送時 $sendto 取使用者的手機號碼
    HTTP 設定 URL 保持預設 https://vms.tencentcloudapi.com(VMS 固定網域)
    HTTP 設定 請求方法 POST
  4. 請求標頭部分,除了常規的 Content-Type / Host 外,騰訊雲特有的驗證欄位也都放在這裡——這是唯一需要你修改的幾個

    騰訊雲語音請求標頭

    參數名稱 是否需要修改
    Content-Type application/json 保持預設
    Host vms.tencentcloudapi.com 保持預設
    Secret_ID 你的 SecretId 需要修改,第一步 CAM 取得的 AKID
    Secret_Key 你的 SecretKey 需要修改
    Service vms 保持預設
    X-TC-Action SendTtsVoice 保持預設
    X-TC-Region ap-beijing 依語音應用所在地域修改,常見 ap-guangzhou / ap-beijing / ap-nanjing
    X-TC-Version 2020-09-02 保持預設(API 版本)

    說明:Secret_ID / Secret_Key 雖然是填在「請求標頭」裡,但夜鶯後端在發送前會把它們取出來計算 TC3-HMAC-SHA256 簽章,並從實際請求標頭中移除——不會以明文傳給騰訊雲。

  5. 捲動到「請求內容」,預設範本已經幫你寫好:

    {
      "CalledNumber": "+86{{ $sendto }}",
      "TemplateId": "需修改為實際的範本 id",
      "TemplateParamSet": ["{{$tpl.content}}"],
      "VoiceSdkAppid": "需修改為實際的 appid"
    }
    

    把其中的佔位符替換成你的值:

    欄位 說明
    CalledNumber +86{{ $sendto }} 保持預設——必須帶 +86 前綴(國際 E.164 格式)
    TemplateId 你的範本 ID 第一步審核通過的數字 ID
    TemplateParamSet ["{{$tpl.content}}"] 依範本變數順序對應一個陣列——夜鶯預設只傳一個值,因此你的騰訊雲範本只能有一個 {1}{{$tpl.content}} 來自系統內建的 Tencent Voice 訊息範本,預設渲染為 S<級別>{Triggered/Recovered}<規則名>
    VoiceSdkAppid 你的 AppID 第一步建立的 7 位數字
  6. 點擊 儲存

第三步:使用者設定手機號碼 & 通知規則

  1. 進入 人員組織 → 使用者管理,為接電話的使用者填寫手機號碼(11 位國內號碼,不帶 +86 前綴,前綴會由請求內容自動拼上)。
  2. 進入 通知 → 通知規則 → 新增
    • 通知媒介:選騰訊雲語音媒介;
    • 訊息範本:選系統內建的 Tencent Voice——它的 content 欄位預設渲染為 S{{$event.Severity}}{{if $event.IsRecovered}}Recovered{{else}}Triggered{{end}}{{$event.RuleName}},例如 S1Triggered CPU使用率超門檻。搭配預設請求內容 TemplateParamSet = ["{{$tpl.content}}"],這串文字會作為 {1} 的取值發給騰訊雲;
    • 注意 {{$tpl.content}} 的長度必須在騰訊雲單變數長度限制內(預設 ≤ 30 字元),告警規則名很長時建議複製一份 Tencent Voice 範本改短再用;
    • 接收人 / 接收團隊:選擇目標使用者;
    • 適用級別:建議只勾一級(Critical);
    • 儲存。
  3. 點擊「通知測試」,目標手機應在 10 秒內響鈴並播報一段 TTS 告警語音。

騰訊雲側計費與配額

  • VMS 按通話時長/條數計費,詳見 騰訊雲 VMS 定價
  • 對同一手機號碼有每日呼叫次數上限(預設較低),可工單申請調整。
  • 若對方按鍵(例如按 1 認領),騰訊雲會回呼預留的 URL——夜鶯目前預設不接入此回呼;需要認領流程可自行實作。

常見問題

Q1:回傳 AuthFailure.SignatureFailure

A:Secret_Key 錯了,或機器時間漂移過大(TC3 簽章對時間敏感,超過 ±5 分鐘即判失敗)。請檢查伺服器 NTP 時間是否準確。

Q2:回傳 UnauthorizedOperation / CAM

A:子帳號未掛 QcloudVMSFullAccess 策略;或者你使用的 SecretId 屬於未開通 VMS 的帳號。

Q3:回傳 FailedOperation.InvalidTemplate / 範本未審核通過?

A:請檢查 TemplateId 是否寫對;登入 VMS 控制台查看範本狀態是否為「審核通過」。

Q4:回傳 FailedOperation.InsufficientBalance

A:帳戶餘額不足。請儲值或設定儲值告警。

Q5:回傳 InvalidParameterValue.InvalidCalledNumber

A:CalledNumber 必須是 E.164 格式,國內號碼寫成 +861XXXXXXXXXX。夜鶯的預設範本已經幫你在 {{ $sendto }} 前拼了 +86,請勿重複。

Q6:TemplateParamSet 陣列長度與範本不匹配會回傳什麼?

A:騰訊雲會回傳 InvalidParameterValue.TemplateParamSet。請打開 VMS 範本,數一下 {1} {2} {3} 有幾個,陣列長度要與其相等;並且不能有空字串

Q7:多個接收人會如何排程?

A:SendTtsVoice 單次只呼一個號碼,夜鶯會按接收人逐一呼叫。人數多時建議適當拉長「重試間隔」(例如 500ms)以避免觸發並行限流。

Q8:我使用的是海外帳號/國際號碼?

A:騰訊雲國際語音服務(SendCallVoice 等)屬於不同產品線,夜鶯預設 ident 不涵蓋。需要國際語音請在媒介裡把 URL 改成國際 endpoint、X-TC-Action 改為對應介面名稱,並按國際號碼格式填寫 CalledNumber

參考資料

快猫星云 联系方式 快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云 联系方式
快猫星云