Skip to content

使用 .NET SDK 自动化管理 Azure Cosmos DB 资源

解决云资源配置繁琐的问题:通过 Azure Resource Manager (ARM) SDK,让 AI 辅助开发者在 .NET 程序中直接实现 Cosmos DB 账户、数据库及容器的自动化创建与吞吐量配置,无需手动操作门户。

为什么需要这个技能

在开发大型分布式系统时,手动在 Azure Portal 中配置数据库不仅低效且容易出错。开发者需要一种编程方式来管理“管理平面”(Management Plane)的操作,例如动态创建测试环境、调整资源吞吐量或管理 RBAC 权限。

需要注意的是,本技能关注的是管理平面(创建账户、配置资源),而非数据平面(读写文档、执行查询)。如果你的需求是 CRUD 数据,应使用 Microsoft.Azure.Cosmos SDK;而当你需要自动化基础设施部署时,则必须使用 Azure.ResourceManager.CosmosDB

适用场景

  • 基础设施即代码 (IaC):在 CI/CD 流水线中自动部署 Cosmos DB 实例。
  • 动态资源扩缩容:根据业务高峰期通过代码自动调整数据库的吞吐量(RU/s)。
  • 多租户环境隔离:为每个新租户自动创建独立的 Cosmos DB 容器和分区键。
  • 环境快速克隆:快速搭建一套与生产环境配置一致的开发/测试环境。

核心工作流

1. 环境准备与认证

安装必要的 NuGet 包并配置身份认证,推荐使用 DefaultAzureCredential 以支持多种认证环境(本地、Managed Identity 等)。

bash
dotnet add package Azure.ResourceManager.CosmosDB
dotnet add package Azure.Identity
csharp
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. 资源创建链

遵循 Subscription ResourceGroup Account Database Container 的层级结构进行创建。

  • 创建账户:定义 CosmosDBAccountCreateOrUpdateContent,配置地域和一致性策略。
  • 创建 SQL 数据库:通过账户资源获取数据库集合并调用 CreateOrUpdateAsync
  • 创建容器:配置分区键(Partition Key)和索引策略。

3. 吞吐量配置

支持手动吞吐量或自适应吞吐量(Autoscale),通过 ThroughputSettingsUpdateData 实现动态调整。

csharp
var autoscaleData = new ThroughputSettingsUpdateData(
    new ThroughputSettingsResourceInfo
    {
        AutoscaleSettings = new AutoscaleSettingsResourceInfo { MaxThroughput = 4000 }
    });
await database.CreateOrUpdateCosmosDBSqlDatabaseThroughputAsync(WaitUntil.Completed, autoscaleData);

4. 获取连接信息

最后通过 GetKeysAsyncGetConnectionStringsAsync 获取用于数据平面 SDK 的访问凭证。

下载和安装

下载 azure-resource-manager-cosmosdb-dotnet 中文版 Skill ZIP

解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md

你可能还需要

暂无推荐