mcpField
A
azure-expert

azure-expert

github.com/questfortech-investments云与 DevOps660 次安装50 周前更新
代码仓库

关于 azure-expert

azure-expert 是帮助开发者和架构人员设计、部署、排查及优化 Azure 方案的技能。它结合服务选型参考、Bicep 模板、自动化脚本和 CI/CD 配置,覆盖成本、安全与监控等运维工作。

主要功能

  1. 01依据工作负载选择 Azure 服务
  2. 02使用 Bicep 模板部署基础设施
  3. 03脚本化部署、状态诊断与成本分析
  4. 04配置 GitHub Actions 或 Azure DevOps 部署流水线
  5. 05提供安全、监控和成本优化指导

适用场景

  1. 01部署 Azure Web 应用或 Functions
  2. 02诊断云资源状态与运行问题
  3. 03分析资源组成本并寻找优化方向
  4. 04为应用配置 CI/CD 流水线

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/questfortech-investments/claude-code-skills --skill azure-expert

安装后在 Claude Code 中输入/azure-expert确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

assets/
function-app-template.bicep
github-workflow-webapp.yml
webapp-template.bicep
references/
best_practices.md
compute_services.md
database_services.md
scripts/
cost_analyzer.py
deploy_webapp.py
resource_status.py

详细介绍

Azure 专家

概述

全面掌握 Azure 服务、架构模式、部署策略和最佳实践,成为 Azure 云专家。本技能提供设计、部署、排查和优化 Azure 解决方案所需的一切内容,涵盖所有主要服务和技术栈。

核心能力

1. 服务选择与架构设计

通过决策树和对比矩阵,指导用户根据需求选择合适的 Azure 服务。详细的服务对比请参阅 references/compute_services.md 和 references/database_services.md。

当用户询问“我应该使用哪种服务”或“如何在 Azure 上构建 X”时,请查阅参考文件,并根据以下因素提供有依据的建议:

  • 工作负载特征(计算、数据、事件驱动)
  • 可扩展性要求
  • 预算限制
  • 技术栈兼容性
  • 合规性和安全需求
2. 基础设施部署

使用 Bicep 模板通过基础设施即代码(IaC)部署 Azure 资源。可在 assets/ 中找到可直接使用的模板:

可用模板:

  • webapp-template.bicep:完整的 Web 应用基础设施(App Service、SQL Database、Storage、Key Vault、Application Insights),包含托管标识、监控和安全最佳实践
  • function-app-template.bicep:Azure Functions 配置(消耗计划/高级计划)及所有配套服务
  • github-workflow-webapp.yml:完整的 CI/CD 工作流,包含构建、测试、暂存环境部署和生产槽位交换

使用流程:

  1. 确定所需的 Azure 服务
  2. 从 assets/ 中选择合适的模板或进行自定义
  3. 使用 Azure CLI 部署:
    az deployment group create \
      --resource-group myapp-rg \
      --template-file assets/webapp-template.bicep \
      --parameters appName=myapp environment=prod
    
  4. 配置部署后的步骤(数据库权限、机密、CI/CD)
3. 自动化运维

使用 scripts/ 中的 Python 脚本执行常见的 Azure 运维操作:

deploy_webapp.py

  • 使用正确的配置将 Web 应用部署到 Azure App Service
  • 支持多种运行时:.NET、Node.js、Python、Java、PHP
  • 自动配置 Application Insights、创建服务计划并启用监控
  • 用法:python scripts/deploy_webapp.py --resource-group mygroup --name myapp --runtime "DOTNET:8.0"

resource_status.py

  • 检查 Azure 资源的状态和运行状况
  • 支持:Web Apps、Function Apps、Container Apps、SQL Databases
  • 提供详细诊断信息,包括日志、可用性和配置
  • 用法:python scripts/resource_status.py --resource-group mygroup --type webapp --name myapp

cost_analyzer.py

  • 按资源组和服务分析 Azure 成本
  • 识别高成本资源和优化机会
  • 提供可执行的成本节省建议
  • 用法:python scripts/cost_analyzer.py --resource-group mygroup --days 30

何时使用脚本:

  • 用户要求“部署”或“创建” Azure 资源
  • 用户需要“检查状态”或“排查”资源问题
  • 用户想要“分析成本”或“优化支出”
  • 自动执行重复的 Azure 运维操作
4. CI/CD 工作流配置

使用 GitHub Actions 或 Azure DevOps 配置自动化部署工作流。assets/github-workflow-webapp.yml 模板提供:

  • 多运行时支持(.NET、Node.js、Python)
  • 构建、测试和构件创建
  • 暂存槽位部署
  • 冒烟测试
  • 经审批门控的生产槽位交换
  • 零停机部署

配置流程:

  1. 将 assets/github-workflow-webapp.yml 复制到用户代码库中的 .github/workflows/
  2. 创建 Azure Service Principal,用于 GitHub Actions 身份验证
  3. 配置 GitHub 机密(AZURE_CREDENTIALS)
  4. 自定义工作流文件中的环境变量
  5. 为暂存环境/生产环境设置 GitHub 环境和审批门控
5. 故障排除与诊断

当用户遇到 Azure 问题时,请遵循以下诊断流程:

  1. 识别服务和错误

    • 阅读错误消息、日志或 HTTP 状态码
    • 确定受影响的 Azure 服务
  2. 检查资源状态

    • 使用 scripts/resource_status.py 检查运行状况和配置
    • 查看 Application Insights 中的详细遥测数据
    • 在 Azure Portal 中检查服务运行状况警报
  3. 常见问题模式:

    • 身份验证错误:检查托管标识配置和 RBAC 分配
    • 连接失败:验证防火墙规则、专用终结点和 NSG 规则
    • 性能问题:检查服务层级、扩展配置和查询性能
    • 部署失败:查看部署日志、检查配额并验证模板
  4. 参考文档

    • 查阅 references/best_practices.md 中的故障排除模式
    • 查看参考文件中的特定服务章节
6. 成本优化

主动识别节省成本的机会:

  1. 运行成本分析:使用 scripts/cost_analyzer.py 识别成本高昂的资源

  2. 查看脚本输出中的建议

  3. 应用优化措施:

    • 调整过度预配资源的规模
    • 为负载变化的工作负载启用自动缩放
    • 对可预测的工作负载使用预留实例(最高可节省 72%)
    • 对容错工作负载使用 Spot VM(最高可节省 90%)
    • 删除未使用的资源(孤立磁盘、旧备份)
    • 将不常访问的数据移至 Cool/Archive 存储层
  4. 参考:有关全面策略,请参阅 references/best_practices.md 中的“成本优化”章节

7. 安全与合规

实施 Azure 安全最佳实践:

身份验证与授权:

  • 始终使用托管标识,而不是连接字符串或密钥
  • 遵循最小权限原则实施 RBAC
  • 对数据库使用 Azure AD 身份验证

数据保护:

  • 为数据库启用透明数据加密(TDE)
  • 对所有通信使用 HTTPS/TLS
  • 在 Azure Key Vault 中存储机密
  • 为 VM 启用 Azure 磁盘加密

网络安全:

  • 使用专用终结点进行 VNet 集成
  • 配置网络安全组(NSG)
  • 为面向公众的应用启用 Azure DDoS Protection
  • 实施 Web 应用程序防火墙(WAF)

参考:请参阅 references/best_practices.md 中的“安全最佳实践”

8. 监控与可观测性

实施全面监控:

Application Insights:

  • 在 Bicep 模板中自动配置
  • 跟踪请求、异常、依赖项和自定义事件
  • 为微服务提供分布式跟踪

Log Analytics:

  • 集中汇总日志
  • 使用 KQL 查询进行高级分析
  • 自定义仪表板和工作簿

警报:

  • 配置基于指标的警报(CPU、内存、响应时间)
  • 为特定模式设置基于日志的警报
  • 创建用于通知的操作组(电子邮件、SMS、webhook)

参考:请参阅 references/best_practices.md 中的“监控与可观测性”

使用 Azure 服务

计算服务

请参阅 references/compute_services.md,获取以下服务的全面指南:

  • App Service:Web 应用、API、移动后端
  • Azure Functions:无服务器、事件驱动型计算
  • Container Apps:基于 Kubernetes 的托管容器
  • AKS:全面控制 Kubernetes
  • Virtual Machines:旧版应用、直接迁移
  • Static Web Apps:JAMstack、SPA

该参考文件包含服务比较矩阵、定价层级、最佳实践、配置示例和决策树。

数据库服务

详细信息请参阅 references/database_services.md:

  • Azure SQL Database:SQL Server 托管服务
  • Cosmos DB:全球分布式 NoSQL
  • PostgreSQL/MySQL:托管开源数据库
  • Redis Cache:内存缓存
  • Table Storage:简单的键值存储

该参考文档涵盖一致性模型、连接字符串、安全配置、性能优化和成本管理。

架构模式

已验证的架构模式请参阅 references/best_practices.md:

  • 采用 API Management 的微服务架构
  • 采用 Event Grid/Service Bus 的事件驱动架构
  • 采用 Static Web Apps + Functions 的无服务器架构
  • N 层传统 Web 应用
  • 高可用性和灾难恢复模式

工作流示例

示例 1:“将 .NET API 部署到 Azure”
  1. 使用 scripts/deploy_webapp.py 创建 App Service 基础设施
  2. 应用 assets/webapp-template.bicep,搭建包含数据库、存储和监控的生产就绪环境
  3. 配置 assets/github-workflow-webapp.yml 以实现 CI/CD
  4. 使用 GitHub Actions 或 Azure CLI 部署代码
  5. 使用 Application Insights 进行监控
示例 2:“我的 Azure Function 无法正常工作”
  1. 向用户询问错误详情(错误消息、日志和预期行为)
  2. 使用 scripts/resource_status.py 检查 Function App 状态
  3. 查看 Application Insights 日志中的异常
  4. 检查常见问题:
    • 缺少应用程序设置
    • 存储帐户连接问题
    • 运行时版本不匹配
    • 超时问题(消耗计划 = 5 分钟限制)
  5. 参阅 references/compute_services.md,了解 Function 专属故障排除信息
示例 3:“如何降低 Azure 成本?”
  1. 运行 scripts/cost_analyzer.py,找出成本高昂的资源
  2. 分析输出,查找过度配置的服务
  3. 提供具体建议:
    • 降级未使用的 Premium 服务
    • 启用自动缩放,避免始终保持容量
    • 对生产工作负载使用 Reserved Instances
    • 删除未使用的资源(空的 App Service Plans、孤立磁盘)
  4. 参阅 references/best_practices.md 中的成本优化部分
示例 4:“在 Azure 上搭建微服务架构”
  1. 参阅 references/best_practices.md 中的微服务模式
  2. 推荐以下服务:
    • 使用 Container Apps 或 AKS 运行微服务
    • 使用 API Management 作为 API 网关
    • 使用 Service Bus 进行异步消息传递
    • 使用 Cosmos DB 持久化数据
    • 使用 Application Insights 进行分布式跟踪
  3. 提供参考文档中的架构图
  4. 使用模板部署基础设施
  5. 使用 GitHub Actions 设置 CI/CD
示例 5:“创建无服务器 API”
  1. 使用 assets/function-app-template.bicep 创建 Function App 基础设施
  2. 指导用户创建 HTTP 触发的函数
  3. 配置 API Management,作为生产环境的 API 网关
  4. 设置身份验证(Azure AD、API 密钥)
  5. 使用 GitHub Actions 配置 CI/CD
  6. 参阅 references/compute_services.md,了解 Functions 最佳实践

参考文档

此技能包含全面的参考文档,应根据需要查阅:

references/compute_services.md

Azure 所有计算服务的详细指南,包含:

  • 服务比较矩阵
  • 各服务的适用场景
  • 定价层级和 SKU 选择
  • 配置示例
  • 最佳实践
  • 决策树

在以下情况下阅读: 用户询问计算服务、部署选项或“我应该使用哪项服务”

references/database_services.md

完整的数据库服务参考,涵盖:

  • Azure 提供的所有数据库服务(SQL、Cosmos DB、PostgreSQL、MySQL、Redis)
  • 服务比较和选择标准
  • 连接字符串和身份验证
  • 性能优化
  • 备份和灾难恢复
  • 安全最佳实践

在以下情况下阅读: 用户询问数据库、数据存储或持久化选项

references/best_practices.md

Azure Well-Architected Framework 实施内容包括:

  • 架构模式(微服务、事件驱动、无服务器、N 层)
  • 安全最佳实践(托管标识、Key Vault、网络安全)
  • 监控和可观测性策略
  • 灾难恢复模式
  • 成本优化策略
  • 基础设施即代码示例
  • 命名约定

在以下情况下阅读: 用户询问架构、最佳实践、模式、安全或优化

使用此技能的最佳实践

主动提供建议
  • 无需用户询问,主动建议使用托管标识,而非连接字符串
  • 自动推荐集成 Application Insights
  • 部署资源时提出成本优化机会
  • 默认提供安全最佳实践
高效使用模板
  • 使用 assets/ 中的模板,快速创建适用于生产环境的基础设施
  • 根据具体需求自定义模板
  • 说明每个模板会创建什么,以及这样做的原因
善用脚本
  • 使用 scripts/ 中的脚本进行自动化和诊断
  • 脚本已达到生产就绪状态,并遵循最佳实践
  • 向用户清楚说明脚本输出
参考文档
  • 提出建议时查阅参考文件
  • 不要死记内容——阅读参考资料以获取最新信息
  • 查找详细信息时,使用 grep 搜索特定模式:
    • 使用 grep -r "App Service" references/ 查找 App Service 信息
    • 使用 grep -r "connection string" references/ 查找连接示例
提供完整解决方案
  • 不要只回答问题,还要提供可运行的配置
  • 纳入监控、安全和运维方面的考量
  • 提出后续步骤和改进建议
支持所有 Azure 技术栈
  • 支持 .NET、Node.js、Python、Java、PHP、Ruby
  • 根据用户的具体运行时调整模板和脚本
  • 按需提供特定语言的代码示例

何时不使用此技能

  • Azure DevOps 管理:此技能专注于开发和部署,不涉及 ADO 组织管理
  • Azure AD/Entra ID 配置:复杂的身份管理不在范围内
  • 特定的第三方集成:专注于 Azure 原生解决方案
  • 非 Azure 云服务提供商:此技能专用于 Azure

对于这些主题,请提供基本指导,但建议用户查阅专业资源。

评论

支持 Markdown