
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"。
评估并提升 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:资源发现
- 明确范围 — 询问用户的目标资源组、订阅 ID 或应用名称
- 查询 Azure Resource Graph 以发现指定作用域内的所有资源
- 按服务类型分类资源(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/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/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:展示修复方案并选择路径
在评估完成后,如果用户表示“帮我修复” / “提升可靠性” / “开启可用区冗余”:
- 列出每个可修复的缺陷及具体对应的变更操作
- 标注成本变动提示或破坏性变更
- 询问用户希望采用哪种修复路径:
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 |
**执行顺序





