azure-reliability

azure-reliability

热门

评估并提升 PaaS 应用(Azure Functions 与 Azure App Service)的可靠性表现。自动扫描已部署资源的可用区冗余(Zone Redundancy)、ZRS 存储、健康检查探针及多区域故障转移配置。提供按功能维度划分的检查清单,并在获得用户确认后端到端执行分阶段修复(生成 CLI 命令或 IaC 补丁)。触发条件:"assess reliability", "check reliability", "zone redundant", "multi-region failover", "high availability", "disaster recovery", "single points of failure", "reliability posture", "resiliency"。

1224Star
196Fork
更新于 2026/6/18
SKILL.md
只读
名称
azure-reliability
描述

评估并提升 PaaS 应用(Azure Functions 与 Azure App Service)的可靠性表现。自动扫描已部署资源的可用区冗余(Zone Redundancy)、ZRS 存储、健康检查探针及多区域故障转移配置。提供按功能维度划分的检查清单,并在获得用户确认后端到端执行分阶段修复(生成 CLI 命令或 IaC 补丁)。触发条件:"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 Plan 是否支持可用区冗余?”
  • “为我的应用开启可用区冗余”(仅限 App Service 与 Functions 资源)
  • “为我的 App Service Plan 开启可用区冗余”
  • “为我的应用配置多区域故障转移”(仅限 App Service 与 Functions 资源)
  • “检查我的可靠性表现”
  • “排查单点故障”(仅限 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. 明确范围 — 询问用户的目标资源组、订阅 ID 或应用名称
  2. 查询 Azure Resource Graph 以发现指定作用域内的所有资源
  3. 按服务类型分类资源(Functions、Storage 等)。如果发现非 Functions 计算资源(非 Function App 的 App Service 站点、Container Apps),进行记录但不要深入探测 — 这些服务计划在后续版本的 Skill 中提供支持。

重要提示: 查询必须严格限定在用户指定的资源组或订阅范围内。在每一个 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 中发现的每个计算资源,加载对应的服务参考文档。服务参考文档是该服务的 Plan/SKU 规则、评估查询、CLI 命令、IaC 补丁(Bicep + Terraform + AVM)以及报告建议的唯一权威来源。

当前版本的 Skill 仅包含 Azure Functions 与 App Service 的服务参考文档。以下明确列出其他计算服务,以保证分发逻辑清晰无歧义:如果某资源属于不支持的类型,切勿尝试加载文档、凭空编造 CLI 命令或生成 IaC 补丁。

识别出的服务 参考文档
Azure Functions(microsoft.web/serverfarmskind 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/containerapps, microsoft.app/managedenvironments ⚪ 暂未提供 — 计划在未来版本支持

处理不支持的服务: 如果资源匹配上述不支持的行,请在资源发现汇总中予以标出,在阶段 3 的表格中标记为 ⚪ not assessed (planned),并跳过针对该资源的修复步骤。切勿为这些服务凭空编造 CLI 命令或 IaC 补丁。

阶段 3:生成可靠性检查清单

将评估结果以按功能维度划分的表格形式呈现:每个可靠性功能(计算层可用区冗余、可用区冗余存储 ZRS、健康检查探针、多区域故障转移)占一行,附带统一的状态标识以及与该功能相关的具体资源列表。这样可以避免给每个资源单独设一行导致大量单元格显示 n/a 的冗余信息。请勿给出数字打分或评级。

🔍 Reliability Assessment — {scope}
─────────────────────────────────────────────────────────────────────────────────────────────
Reliability Feature              Status      Resources
─────────────────────────────────────────────────────────────────────────────────────────────
Zone redundancy — compute        🔴 OFF      • plan-web-ii5trxva2ark4 (P1v3)
                                              • plan-ii5trxva2ark4 (FC1)

Zone-redundant storage           🔴 GRS      • stii5trxva2ark4 (defaulted; no SKU set in IaC)

Health probes                    🔴 OFF      • func-api-ii5trxva2ark4 — needs code change (FC1)
                                              • app-web-ii5trxva2ark4 — no health check path

Multi-region failover            🔴 OFF      • Single region (eastus) only — Front Door not configured
─────────────────────────────────────────────────────────────────────────────────────────────

Want me to fix the 🔴 items? I'll do the quick wins first (App
plan zone redundancy + health checks on supported plans), then ask before
storage migration and multi-region setup. (yes/no)

表格规则:

  • 固定四行功能维度,按此顺序: 可用区冗余 — 计算层 · 可用区冗余存储 · 健康检查探针 · 多区域故障转移。仅当作用域内没有任何资源适用该功能时,才可完全省略该行。
  • 状态列为“一个符号 + 一个简短单词”,不要包含其他字符:
    • 🟢 ON — 作用域内的所有相关资源均已完整启用该功能
    • 🟡 PARTIAL — 部分资源启用了该功能,部分未启用(或仅部分配置,如仅配置了存活探针)
    • 🔴 OFF — 所有相关资源均未启用该功能
    • 存储维度:适用时将 OFF 替换为当前的实际 SKU(如 🔴 LRS🔴 GRS🟢 ZRS🟢 GZRS)。若 IaC 中未显式指定 SKU,则标记为 🔴 GRS(ARM/AVM 的默认值),并在资源行附带说明。
  • 资源列仅列出与该功能相关的资源,每个资源占一个列表项:
    • 对“待修复”资源,包含简短的内联原因说明(如 (FC1)(默认配置;未设置 SKU)仅存活探针需要修改代码 (FC1))。
    • 已开启该功能的资源,在同一行标注 — 已开启,确保用户能清晰看到已有成果。
  • 请勿包含 n/a 或空单元格。如果某功能不适用于范围内的任何资源,直接移除该行。
  • 请勿包含数字打分、评级或总分。
  • 在评估结尾抛出单个 yes/no 确认问题以启动分阶段修复流程。此处不要罗列详细的具体修复清单 — 用户回答 yes 后会在“配置工作流步骤 1”中看到。

体验提示: 如果评估发现应用已经具备所有核心可靠性功能(可用区冗余、ZRS/GZRS 存储、健康检查探针),请跳过修复确认问题,直接跳转至配置工作流 步骤 3(多区域跟进)。在未经显式授权前,切勿执行任何多区域配置操作。

配置工作流

当用户希望修复评估中发现的问题时:

⛔ 在执行变更前必须始终向用户确认。 明确展示将要更改的内容、对成本的影响以及任何破坏性操作(如重新创建环境)。

步骤 1:展示修复方案并选择路径

在评估完成后,如果用户表示“帮我修复” / “提升可靠性” / “开启可用区冗余”:

  1. 列出每个可修复的缺陷及具体对应的变更操作
  2. 标注成本变动提示或破坏性变更
  3. 询问用户希望采用哪种修复路径:
I'll start with the quick wins (no downtime, fast):

1. ✏️  Enable zone redundancy on plan-ii5trxva2ark4 (Flex Consumption — no cost change)
2. ✏️  Set health check path to /api/health on func-api-ii5trxva2ark4

Then, separately, I'll ask if you want to upgrade storage:

3. 🕒  Upgrade stii5trxva2ark4 from LRS → ZRS (small cost increase, migration takes hours)
   — Required for full zone redundancy, but I'll confirm with you before starting.

How would you like to apply these changes?

  A) Fix now — Run az CLI commands against your live resources (immediate, one-time)
  B) Patch my IaC — Update your Bicep/Terraform files so changes persist across deploys

(If you use azd or Terraform, option B is recommended so `azd up` won't overwrite changes.)

路径 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

**执行顺序