azure-reliability

azure-reliability

熱門

評估與提升 PaaS 應用程式(Azure Functions 與 Azure App Service)的可靠度狀態。掃描已部署資源的可用區備援(zone redundancy)、ZRS 儲存體、健康檢查探針及多區域故障移轉(multi-region failover)設定。提供以功能為核心的自我檢查清單,並在取得使用者確認後,端到端執行分階段的修復補救(透過 CLI 或 IaC 程式碼修補)。觸發時機(WHEN):「assess reliability」、「check reliability」、「zone redundant」、「multi-region failover」、「high availability」、「disaster recovery」、「single points of failure」、「reliability posture」、「resiliency」。

1224星標
196分支
更新於 2026/6/18
SKILL.md
唯讀
名稱
azure-reliability
描述

評估與提升 PaaS 應用程式(Azure Functions 與 Azure App Service)的可靠度狀態。掃描已部署資源的可用區備援(zone redundancy)、ZRS 儲存體、健康檢查探針及多區域故障移轉(multi-region failover)設定。提供以功能為核心的自我檢查清單,並在取得使用者確認後,端到端執行分階段的修復補救(透過 CLI 或 IaC 程式碼修補)。觸發時機(WHEN):「assess reliability」、「check reliability」、「zone redundant」、「multi-region failover」、「high availability」、「disaster recovery」、「single points of failure」、「reliability posture」、「resiliency」。

Azure 可靠度評估與組態設定

快速參考

屬性 詳細說明
最佳適用場景 可靠度狀態評估、啟用可用區備援、設定多區域故障移轉
核心功能 可靠度評估表、可用區備援組態設定、多區域 IaC 程式碼生成
支援的服務 Azure Functions、App Service(Container Apps 預計於未來版本支援)
MCP 工具 Azure Resource Graph 查詢、Azure CLI 指令

何時使用此 Skill

當使用者提出以下需求時觸發此 Skill:

  • 「評估我的 Function app 可靠度」
  • 「評估我的 Web app 可靠度」
  • 「檢查我資源群組的可靠度」(僅限 App Service 與 Functions 資源)
  • 「我的應用程式有支援可用區備援嗎?」(僅限 App Service 與 Functions 資源)
  • 「我的 App Service 計劃有支援可用區備援嗎?」
  • 「讓我的應用程式支援可用區備援」(僅限 App Service 與 Functions 資源)
  • 「讓我的 App Service 計劃支援可用區備援」
  • 「為我的應用程式設定多區域故障移轉」(僅限 App Service 與 Functions 資源)
  • 「檢查我的可靠度狀態」
  • 「找出單點故障 (SPOF)」(僅限 App Service 與 Functions 資源)
  • 「為我的應用程式啟用高可用性」(僅限 App Service 與 Functions 資源)
  • 「檢查災害復原準備狀態」
  • 「提升我應用程式的韌性」(僅限 App Service 與 Functions 資源)

適用範圍說明: 本 Skill 目前僅涵蓋 Azure Functions 與 Azure App Service。若使用者詢問 Azure Container Apps 的可靠度,請說明該功能已在規劃中但尚未支援,並僅針對範圍內的 App Service 及 Functions 資源繼續執行適用部分。

前置需求

  • 驗證:使用者已透過 az login 登入 Azure
  • 權限:目標訂閱 / 資源群組的「讀取者 (Reader)」存取權限(用於評估)
  • 權限:「特約用戶 (Contributor)」存取權限(用於變更組態設定)
  • Azure Resource Graph 擴充功能:az extension add --name resource-graph

MCP 工具

工具 用途
mcp_azure_mcp_extension_cli_generate 生成用於資源查詢與組態設定的 az CLI 指令
mcp_azure_mcp_subscription_list 列出可用的訂閱
mcp_azure_mcp_group_list 列出資源群組

主要查詢方式:透過 az graph query 執行 Azure Resource Graph 查詢(需先安裝 az extension add --name resource-graph)。

評估工作流程

階段 1:探索資源

  1. 確認評估範圍 — 請使用者提供資源群組、訂閱或應用程式名稱
  2. 查詢 Azure Resource Graph 以探索範圍內的所有資源
  3. 按服務類型分類資源(Functions、Storage 等)。若發現非 Functions 的運算資源(非 Function App 的 App Service 站台、Container Apps),請予以記錄但勿深入分析 — 這些服務已規劃於未來版本支援。

重要提示: 查詢務必限定在使用者指定的資源群組或訂閱範圍內。請在每個 Resource Graph 查詢中加入以下篩選條件:

  • 資源群組:| where resourceGroup =~ '<rg-name>'
  • 訂閱:在 az graph query 上使用 --subscriptions <sub-id> 旗標
  • 應用程式名稱:| where name =~ '<app-name>'

階段 2:評估可靠度

評估分為兩個步驟:先進行平台層級的探索,再針對各項服務深入剖析。

步驟 1 — 平台層級探索(清查現有資源)。 使用以下參考文件列舉範圍內的資源並檢測跨服務的可靠度漏洞:

平台檢查項目 參考文件
可用區備援 — 探索清查 references/zone-redundancy-checks.md
儲存體備援(跨服務) references/storage-redundancy-checks.md
多區域與全域負載平衡器 references/multi-region-checks.md
Front Door / Traffic Manager / App Insights 探針 references/health-probe-checks.md

步驟 2 — 依服務深入剖析。 針對步驟 1 中發現的每個運算資源,載入對應的服務參考文件。服務參考文件是該服務的 App Service 計劃/SKU 規則、評估查詢、CLI 指令、IaC 程式碼修補(Bicep + Terraform + AVM)與報告提示的唯一權威來源。

本版本的 Skill 僅提供 Azure Functions 與 App Service 的單一服務參考文件。下方明確列出其他運算服務,以確保分派邏輯清晰無誤:若資源符合未支援的項目,請勿嘗試載入參考文件、偽造 CLI 指令或生成 IaC 補丁。

偵測到的服務 參考文件
Azure Functions(microsoft.web/serverfarms 且包含 kind contains 'functionapp' references/services/functions/reliability.md
Azure App Service(非 Functions 站台:microsoft.web/sites 且無 kind contains 'functionapp'microsoft.web/serverfarms 且無 kind contains 'functionapp' references/services/app-service/reliability.md
Azure Container Apps(microsoft.app/containerappsmicrosoft.app/managedenvironments ⚪ 尚未提供 — 預計於未來版本推出

未支援服務的處理方式: 若資源符合上述未支援的項目,請在探索摘要中標示出來,並在階段 3 的表格中標註為 ⚪ not assessed (planned)(未評估,規劃中),同時跳過該資源的特定服務修復步驟。切勿嘗試為這些服務偽造 CLI 指令或 IaC 補丁。

階段 3:生成可靠度檢查清單

將評估結果呈現為以功能為核心的表格:每個可靠度功能占一行(運算資源可用區備援、可用區備援儲存體、健康檢查探針、多區域故障移轉),包含單一狀態指示符以及與該功能相關的具體資源。這能避免「一資源占一行」導致大量欄位顯示為 n/a 的雜訊。切勿給予數值評分或等級。

🔍 可靠度評估 — {scope}
─────────────────────────────────────────────────────────────────────────────────────────────
可靠度功能                        狀態        相關資源
─────────────────────────────────────────────────────────────────────────────────────────────
可用區備援 — 運算                🔴 OFF      • plan-web-ii5trxva2ark4 (P1v3)
                                              • plan-ii5trxva2ark4 (FC1)

可用區備援儲存體                 🔴 GRS      • stii5trxva2ark4(預設值;IaC 中未設定 SKU)

健康檢查探針                    🔴 OFF      • func-api-ii5trxva2ark4 — 需要修改程式碼 (FC1)
                                              • app-web-ii5trxva2ark4 — 未設定健康檢查路徑

多區域故障移轉                  🔴 OFF      • 僅單一區域 (eastus) — 未設定 Front Door
─────────────────────────────────────────────────────────────────────────────────────────────

需要我為您修復標示為 🔴 的項目嗎?我會先執行能快速見效的修復(App Service 計劃的可用區備援 + 支援計劃上的健康檢查),
之後在進行儲存體遷移與多區域設定前會再向您確認。(是/否)

表格填寫規則:

  • 四個功能類別行,按此順序排列: 可用區備援 — 運算 · 可用區備援儲存體 · 健康檢查探針 · 多區域故障移轉。僅當評估範圍內沒有任何資源適用某功能時,才可完全省略該行。
  • 狀態欄(Status) 包含一個符號 + 一個簡短單字,不加其他字元:
    • 🟢 ON — 範圍內所有相關資源皆已完整啟用該功能
    • 🟡 PARTIAL — 部分資源已啟用,部分未啟用(或僅完成部分組態設定,例如僅有 liveness)
    • 🔴 OFF — 所有相關資源皆未啟用該功能
    • 針對儲存體,在適用時將 OFF 替換為目前的 SKU(🔴 LRS🔴 GRS🟢 ZRS🟢 GZRS)。當 IaC 中未指定 SKU 時,標記為 🔴 GRS(ARM/AVM 預設值),並在資源說明中補充。
  • 相關資源欄(Resources) 僅列出與該功能相關的資源,每個資源占一個項目符號:
    • 針對「需要修復」的資源,附上簡短的單行原因說明(如 (FC1)(預設值;未設定 SKU)僅設定 liveness需要修改程式碼 (FC1))。
    • 針對該功能**已啟用(ON)**的資源,也在同一行標註 — 已啟用 (ON),讓使用者清楚瞭解哪些項目已符合標準。
  • 切勿包含 n/a 或空白儲存格。若某功能不適用於範圍內的任何資源,請直接移除該行。
  • 切勿提供數值評分、等級或總分。
  • 評估結束時,請提出單一「是/否」問題以啟動分階段修復流程。此處請勿列出每個資源的具修復清單 — 使用者回答「是」之後自然會看到(組態設定工作流程步驟 1)。

使用者體驗提示: 若評估發現應用程式已經具備所有核心可靠度功能(可用區備援、ZRS/GZRS 儲存體、健康檢查探針),請跳過修復提問,直接跳至組態設定工作流程的步驟 3(多區域後續追蹤)。未獲得明確同意前,切勿開始任何多區域相關作業。

組態設定工作流程

當使用者希望修復評估結果時:

⛔ 執行變更前務必向使用者確認。 說明將變更的內容、任何潛在的費用影響,以及是否有破壞性操作(例如重新建立環境)。

步驟 1:呈現修復計畫並選擇執行路徑

完成評估後,若使用者表示「修復它」/「提升我的可靠度」/「啟用可用區備援」:

  1. 列出每個可修復的項目及其具體修復動作
  2. 標示任何費用變化或重大變更(breaking changes)
  3. 詢問使用者想要選擇哪種路徑:
我會先從能快速見效的項目開始(無停機時間、執行快速):

1. ✏️  為 plan-ii5trxva2ark4 啟用可用區備援(Flex Consumption — 不會增加費用)
2. ✏️  將 func-api-ii5trxva2ark4 的健康檢查路徑設定為 /api/health

接著,再單獨詢問您是否要升級儲存體:

3. 🕒  將 stii5trxva2ark4 從 LRS 升級至 ZRS(費用稍微增加,遷移需耗時數小時)
   — 達到完整可用區備援所需,但我會在開始前先向您確認。

您希望如何套用這些變更?

  A) 立即修復 — 針對您線上運作的資源執行 az CLI 指令(立即生效,一次性操作)
  B) 修補 IaC 程式碼 — 更新您的 Bicep/Terraform 檔案,讓變更在後續部署中持續保留

(若您使用 azd 或 Terraform,建議選擇選項 B,避免 `azd up` 覆蓋掉變更。)

路徑 A:立即修復 (CLI)

透過 az CLI 指令直接對線上資源執行修復。先處理快速見效的項目,耗時的儲存體遷移則在執行前另行詢問。

每個服務具體的 CLI 指令皆收錄於各自的服務參考檔案中 — 請挑選與階段 2 探索到的資源相對應的指令:

修復項目 參考文件
啟用可用區備援 / 設定健康檢查探針 (Functions) references/services/functions/reliability.md
啟用可用區備援 / 設定健康檢查探針 (App Service) references/services/app-service/reliability.md
升級儲存體複寫(跨服務) references/configure-storage.md
設定多區域(跨服務) references/configure-multi-region.md
平台總覽 / 驗證 references/configure-zone-redundancy.md, references/configure-health-probes.md

執行順序