关于 azure-expert
azure-expert 是帮助开发者和架构人员设计、部署、排查及优化 Azure 方案的技能。它结合服务选型参考、Bicep 模板、自动化脚本和 CI/CD 配置,覆盖成本、安全与监控等运维工作。
主要功能
- 01依据工作负载选择 Azure 服务
- 02使用 Bicep 模板部署基础设施
- 03脚本化部署、状态诊断与成本分析
- 04配置 GitHub Actions 或 Azure DevOps 部署流水线
- 05提供安全、监控和成本优化指导
适用场景
- 01部署 Azure Web 应用或 Functions
- 02诊断云资源状态与运行问题
- 03分析资源组成本并寻找优化方向
- 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.bicepgithub-workflow-webapp.ymlwebapp-template.bicepreferences/best_practices.mdcompute_services.mddatabase_services.mdscripts/cost_analyzer.pydeploy_webapp.pyresource_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 工作流,包含构建、测试、暂存环境部署和生产槽位交换
使用流程:
- 确定所需的 Azure 服务
- 从
assets/中选择合适的模板或进行自定义 - 使用 Azure CLI 部署:
az deployment group create \ --resource-group myapp-rg \ --template-file assets/webapp-template.bicep \ --parameters appName=myapp environment=prod - 配置部署后的步骤(数据库权限、机密、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)
- 构建、测试和构件创建
- 暂存槽位部署
- 冒烟测试
- 经审批门控的生产槽位交换
- 零停机部署
配置流程:
- 将
assets/github-workflow-webapp.yml复制到用户代码库中的.github/workflows/ - 创建 Azure Service Principal,用于 GitHub Actions 身份验证
- 配置 GitHub 机密(AZURE_CREDENTIALS)
- 自定义工作流文件中的环境变量
- 为暂存环境/生产环境设置 GitHub 环境和审批门控
5. 故障排除与诊断
当用户遇到 Azure 问题时,请遵循以下诊断流程:
-
识别服务和错误
- 阅读错误消息、日志或 HTTP 状态码
- 确定受影响的 Azure 服务
-
检查资源状态
- 使用
scripts/resource_status.py检查运行状况和配置 - 查看 Application Insights 中的详细遥测数据
- 在 Azure Portal 中检查服务运行状况警报
- 使用
-
常见问题模式:
- 身份验证错误:检查托管标识配置和 RBAC 分配
- 连接失败:验证防火墙规则、专用终结点和 NSG 规则
- 性能问题:检查服务层级、扩展配置和查询性能
- 部署失败:查看部署日志、检查配额并验证模板
-
参考文档
- 查阅
references/best_practices.md中的故障排除模式 - 查看参考文件中的特定服务章节
- 查阅
6. 成本优化
主动识别节省成本的机会:
-
运行成本分析:使用
scripts/cost_analyzer.py识别成本高昂的资源 -
查看脚本输出中的建议
-
应用优化措施:
- 调整过度预配资源的规模
- 为负载变化的工作负载启用自动缩放
- 对可预测的工作负载使用预留实例(最高可节省 72%)
- 对容错工作负载使用 Spot VM(最高可节省 90%)
- 删除未使用的资源(孤立磁盘、旧备份)
- 将不常访问的数据移至 Cool/Archive 存储层
-
参考:有关全面策略,请参阅
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”
- 使用
scripts/deploy_webapp.py创建 App Service 基础设施 - 应用
assets/webapp-template.bicep,搭建包含数据库、存储和监控的生产就绪环境 - 配置
assets/github-workflow-webapp.yml以实现 CI/CD - 使用 GitHub Actions 或 Azure CLI 部署代码
- 使用 Application Insights 进行监控
示例 2:“我的 Azure Function 无法正常工作”
- 向用户询问错误详情(错误消息、日志和预期行为)
- 使用
scripts/resource_status.py检查 Function App 状态 - 查看 Application Insights 日志中的异常
- 检查常见问题:
- 缺少应用程序设置
- 存储帐户连接问题
- 运行时版本不匹配
- 超时问题(消耗计划 = 5 分钟限制)
- 参阅
references/compute_services.md,了解 Function 专属故障排除信息
示例 3:“如何降低 Azure 成本?”
- 运行
scripts/cost_analyzer.py,找出成本高昂的资源 - 分析输出,查找过度配置的服务
- 提供具体建议:
- 降级未使用的 Premium 服务
- 启用自动缩放,避免始终保持容量
- 对生产工作负载使用 Reserved Instances
- 删除未使用的资源(空的 App Service Plans、孤立磁盘)
- 参阅
references/best_practices.md中的成本优化部分
示例 4:“在 Azure 上搭建微服务架构”
- 参阅
references/best_practices.md中的微服务模式 - 推荐以下服务:
- 使用 Container Apps 或 AKS 运行微服务
- 使用 API Management 作为 API 网关
- 使用 Service Bus 进行异步消息传递
- 使用 Cosmos DB 持久化数据
- 使用 Application Insights 进行分布式跟踪
- 提供参考文档中的架构图
- 使用模板部署基础设施
- 使用 GitHub Actions 设置 CI/CD
示例 5:“创建无服务器 API”
- 使用
assets/function-app-template.bicep创建 Function App 基础设施 - 指导用户创建 HTTP 触发的函数
- 配置 API Management,作为生产环境的 API 网关
- 设置身份验证(Azure AD、API 密钥)
- 使用 GitHub Actions 配置 CI/CD
- 参阅
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
对于这些主题,请提供基本指导,但建议用户查阅专业资源。