Azure MySQL Flexible Server .NET 技能
帮助 .NET 开发者以 Azure SDK 管理 MySQL Flexible Server 及其数据库资源。
文档展示了 Azure 身份认证、环境变量和部分安全最佳实践,并建议使用托管身份、私有终结点和 Entra ID;但示例包含明文管理员密码、连接字符串密码以及 0.0.0.0 防火墙规则,未要求用户确认高影响操作,也未说明权限范围、数据流、回滚或秘密管理,因此扣分。
涵盖创建、更新、备份、恢复、启停、删除和错误处理等主要路径,错误状态也有部分反馈;但仅有静态代码片段,没有该技能专属测试或编译证据,且若干示例存在上下文、API 版本和异步调用正确性的不确定性,异常输入和恢复流程薄弱,因此按静态上限保守扣分。
名称、描述、触发词和 MySQL Flexible Server 场景较明确,覆盖数据库管理的常见需求;但未明确输入输出契约、非适用场景、最小权限要求或触发排除条件,也没有中文使用说明或中国大陆网络可达性分析,因此扣分。
SKILL.md 结构清晰,包含安装、环境变量、认证、工作流、类型、SKU、最佳实践、错误处理、相关 SDK 和许可证、作者及版本信息;但缺少变更日志、维护责任和更新路径,版本与 API 说明缺乏可验证的变更背景,限制与故障排查也不充分,因此扣分。
提供了可直接改写的 C# 片段,覆盖服务器、数据库、防火墙、配置、管理员、备份恢复、生命周期和扩缩容,能够支持核心任务;但代码未在文件中提供可复现的成功输出或专属验证,安全默认值和 API 正确性仍需人工核验,生产使用前需要明显审查,因此未给高分。
文件包含版本、包名、API 版本和官方参考链接,仓库还提供通用 CI、评估工作流和测试代码;但所给证据没有证明该具体技能路径有专属测试、编译结果或第三方执行记录,且无法进行本次执行复现,因此仅给静态证据范围内的有限分数。
- 不要直接复制示例中的管理员密码或将令牌放入连接字符串;应使用秘密管理和最小权限身份。
- 0.0.0.0 防火墙示例会扩大网络访问范围,执行前必须确认目标、权限和回滚方案。
- 在生产使用前应针对当前 Azure.ResourceManager.MySql 版本编译并验证每个 API、异步调用和恢复参数。
- 删除、恢复、扩容、启停等操作会产生外部资源或费用影响,技能未定义确认流程。
它能做什么 & 适用场景
该技能面向使用 Azure.ResourceManager.MySql 的 .NET 开发者,覆盖 MySQL Flexible Server 的完整资源管理流程。它提供服务器、数据库、防火墙规则、配置、备份、高可用性和 Entra ID 管理员的示例。内容使用 Azure API 版本 2023-12-30,并标注 SDK 当前版本为 v1.2.0(GA)。它只聚焦 Flexible Server;Single Server 已弃用并计划退出。
指导用户安装 Azure.ResourceManager.MySql 和 Azure.Identity,使用 DefaultAzureCredential 或指定凭据创建 ArmClient,并通过 Azure Resource Manager 创建、查询、更新、扩缩、停止、启动、重启和删除 MySQL Flexible Server。它还展示数据库创建、IP 防火墙规则、服务器参数、Entra ID 管理员、备份列表、时间点恢复、高可用配置和错误处理,并提供 ADO.NET 或 Entra ID 令牌连接字符串示例。
- 负责 Azure 基础设施的 .NET 工程师需要创建并配置 MySQL Flexible Server。
- 应用团队需要在服务器中创建数据库、调整 max_connections 等参数并设置防火墙规则。
- 生产环境团队需要配置区域冗余高可用、备份保留和自动扩容存储。
- 运维人员需要列出备份、执行时间点恢复、停止开发测试服务器或调整 SKU 与存储。
- 团队希望使用 Entra ID 管理员和 DefaultAzureCredential 管理 Azure 认证,而不是只依赖 SQL 身份验证。
优缺点一览
- 覆盖服务器生命周期、数据库、防火墙、配置、备份、恢复、高可用和 Entra ID 管理。
- 提供可复制的 C# 示例、资源层级说明、关键类型参考和错误处理模式。
- 明确使用 Flexible Server、DefaultAzureCredential、区域冗余高可用和备份保留等实践。
- 采用 MIT 许可证,并属于 Microsoft 维护的 Agent Skills 集合。
- 只覆盖 MySQL Flexible Server,不适用于已弃用的 Single Server 场景。
- 示例包含明文密码和占位符,实际项目仍需自行处理机密信息与安全配置。
- 源材料未提供该单个技能的独立测试结果或平台覆盖报告。
- 示例依赖 Azure 资源权限、订阅、资源组和网络访问;技能本身不提供这些环境。
如何安装
安装整个集合:运行 npx skills add microsoft/skills,然后在向导中选择需要的技能。README 说明技能会安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/。源材料没有提供该单个技能的独立安装命令。项目也提供手动克隆方式,但未给出此技能从 .github/plugins/azure-sdk-dotnet/skills/azure-resource-manager-mysql-dotnet/ 复制到目标目录的专用命令。
如何使用
先安装 Azure.ResourceManager.MySql 和 Azure.Identity:dotnet add package Azure.ResourceManager.MySql、dotnet add package Azure.Identity。在 Agent 中使用包含 “MySQL Flexible Server” 或 “MySQL firewall” 的请求,例如:“用 Azure.ResourceManager.MySql 和 DefaultAzureCredential 创建一个启用区域冗余高可用的 MySQL Flexible Server,并添加数据库和防火墙规则。” 使用前准备 AZURE_SUBSCRIPTION_ID、AZURE_RESOURCE_GROUP 和 AZURE_MYSQL_SERVER_NAME;若生产环境使用 DefaultAzureCredential,还需设置 AZURE_TOKEN_CREDENTIALS=prod。
对比同类
与 MySqlConnector 不同,本技能使用 Azure.ResourceManager.MySql 管理 Azure 中的服务器、数据库和基础设施资源;MySqlConnector 用于 MySQL 数据访问。两者可以配合使用,但本技能不是通用的 SQL 查询或应用数据访问库。