Teams 連接器與 URL 安全
頻道內新增 Incoming Webhook(或租戶後繼連接器),URL 即 Bearer,寫入僅網關可讀檔(0440),見 密鑰最小權限;勿下發至各遠端 Mac。安裝與拓撲見 入門、多節點部署、佇列同步,工作者只送事件、網關統一 POST。
| 模式 | 權限面 | 輪替/稽核 |
|---|---|---|
| 各節點直連 Teams | 大(多份 URL) | 難以一致撤銷 |
| 單一 OpenClaw 網關 | 小(單檔密鑰) | 刪連接器重建即可輪替 |
- 選穩定入口主機部署 OpenClaw,設定
OPENCLAW_CONFIG_ROOT,跑完健康檢查;建置節點不掛載 Teams URL。 - 於 Teams 建立 Webhook,將 URL 寫入網關密鑰目錄;除錯時只記錄主機名與路徑末四碼,避免完整 token 進日誌。
- Staging 與 Production 使用不同頻道與不同 URL,避免誤報。
- 輪替流程:刪除舊連接器 → 建新 Webhook → 換檔 → 重載網關;細節可對照 IM 告警與權杖輪替。
- 負載用租戶支援的 MessageCard/Adaptive Card;錯格式常
400。若禁傳統連接器,改 Power Automate/Logic Apps 窄 HTTPS,仍單密鑰、單發送者。
網關/代理出站白名單
僅網關需對 outlook.office.com、*.webhook.office.com 等租戶實際主機做 TLS POST;企業代理攔截時放行 CONNECT。Runner 禁止繞過網關直連公網(思路同 共用建置 Webhook)。與 daemon 同環境 curl -I 驗收;出口收斂後只維護網關 IP,演練見 叢集故障轉移。
多節點狀態匯聚欄位設計
網關先正規化各平台 JSON 再渲染卡片;設定拆分見 專案設定與日誌。
| 網關內部鍵 | 來源示例 | Teams 呈現用途 |
|---|---|---|
workflow | workflow/pipeline 名 | 卡片首行標題 |
state | conclusion 等 | 成敗/進行中(統一 emoji) |
branch | ref | 發布/功能分支 |
commit | sha | 短 SHA+連結 |
run_url | html_url | 日誌深連結 |
mesh_node_id | Runner/標籤 | 標註池中哪台 Mac |
provider_run_id | run_id | 配 state 冪等 |
重試與冪等
遇 429/5xx 用有上限指數退避+抖動,單次逾時約 15~30 秒。provider_run_id+state 去重,72 小時內已送達則略過(見 佇列重試)。僅網關呼叫 Teams,符合 Mesh 單點出站。
收不到訊息 FAQ
| 現象 | 優先排查 |
|---|---|
| CI 成功、頻道空 | 網關是否 200;連接器是否存活;代理擋主機;JSON schema |
| 部分節點有通知 | Runner 直連舊 URL;防火牆舊 IP |
| 同建置重複 | 冪等含 state;多網關實例共用去重儲存 |
| 403/401 | 輪替未換檔;中間層改標頭 |
可抄參數:
0440、出站白名單、去重 72 小時、逾時 15~30 秒、退避上限寫 Runbook。
下一步(免登入導覽)
完成後應由單一網關匯入 Teams。免登入:首頁、購買/套餐、幫助、部落格、OpenClaw 索引。若要多台遠端 Mac 組池並統一通知,請至套餐頁依併發與地域加節點,網關與建置機分離後再收斂 Teams 出站與密鑰面。