Appearance
使用 .NET SDK 自动化管理 Azure SQL 资源
解决云基础设施手动配置效率低的问题:通过 .NET 管理平面 SDK 实现 Azure SQL 资源(服务器、数据库、防火墙规则等)的自动化部署与生命周期管理。
为什么需要这个技能
在开发企业级应用时,手动通过 Azure Portal 创建数据库不仅耗时,且难以在不同环境(开发、测试、生产)之间保持一致。
必须明确的是,Azure SQL 的操作分为管理平面(Management Plane)和数据平面(Data Plane)。本技能聚焦于管理平面,即使用 Azure.ResourceManager.Sql 来执行“建库、扩容、配置防火墙”等运维操作,而不是执行 SELECT 或 INSERT 等 SQL 查询(后者应使用 Microsoft.Data.SqlClient)。
适用场景
- 自动化环境构建:在 CI/CD 流水线中自动创建测试数据库。
- 动态资源缩放:根据业务负载通过代码调整数据库 SKU 或弹性池容量。
- 安全策略自动化:根据 IP 白名单动态更新 SQL 防火墙规则。
- 多租户部署:为每个新客户自动创建独立的 SQL 数据库并分配至弹性池。
核心工作流
1. 环境准备与认证
安装必要包并使用 DefaultAzureCredential 进行身份验证,避免在代码中硬编码密钥。
bash
dotnet add package Azure.ResourceManager.Sql
dotnet add package Azure.Identitycsharp
using Azure.Identity;
using Azure.ResourceManager;
var credential = new DefaultAzureCredential();
var armClient = new ArmClient(credential);
var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID");
var subscription = armClient.GetSubscriptionResource(new ResourceIdentifier($"/subscriptions/{subscriptionId}"));2. 资源编排步骤
按照 资源组 SQL 服务器 数据库/弹性池 防火墙规则 的层级关系进行操作。
- 创建服务器:定义
SqlServerData,配置管理员账号和 TLS 版本。 - 创建数据库:通过
SqlDatabaseData指定 SKU(如 Basic, Standard, Premium)和存储大小。 - 配置弹性池:使用
ElasticPoolData优化成本,将多个数据库聚合在统一资源池中。 - 设置防火墙:通过
SqlFirewallRuleData开放特定 IP 或允许 Azure 内部服务访问。
3. 关键操作示例:创建数据库
csharp
var databaseData = new SqlDatabaseData(AzureLocation.EastUS)
{
Sku = new SqlSku("S0") { Tier = "Standard" },
MaxSizeBytes = 2L * 1024 * 1024 * 1024, // 2 GB
};
var databaseCollection = server.GetSqlDatabases();
var dbOperation = await databaseCollection.CreateOrUpdateAsync(
WaitUntil.Completed,
"my-database",
databaseData);下载和安装
下载 azure-resource-manager-sql-dotnet 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐