К основному содержанию
скилл

azure-resource-manager-cosmosdb-dotnet — скилл для Claude Code

Скилл помогает управлять ресурсами Azure Cosmos DB через Azure Resource Manager в .NET. Он нужен для создания аккаунтов, баз, контейнеров и настройки пропускной способности.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add microsoft/skills --skill azure-resource-manager-cosmosdb-dotnet -a claude-code
Открыть на GitHub

Что делает azure-resource-manager-cosmosdb-dotnet

Скилл описывает операции уровня управления для Azure Cosmos DB через Azure.ResourceManager.CosmosDB: создание и изменение аккаунтов, SQL-баз и контейнеров, настройку ручной или автомасштабируемой пропускной способности, получение ключей и строк подключения. Ресурсы представлены иерархией от ArmClient до контейнеров и дочерних объектов.

Для работы нужны пакеты Azure.ResourceManager.CosmosDB и Azure.Identity, а также идентификатор подписки в AZURE_SUBSCRIPTION_ID. Аутентификация в примерах использует DefaultAzureCredential; для рабочей среды показан параметр AZURE_TOKEN_CREDENTIALS=prod. CRUD-действия с документами и запросы этот скилл не покрывает: для них нужен Microsoft.Azure.Cosmos.

Какие задачи решает

  • создать аккаунт Azure Cosmos DB через ARM
  • добавить SQL-базу и контейнер
  • настроить ручную или автомасштабируемую пропускную способность
  • получить ключи и строки подключения
  • управлять RBAC-ресурсами Cosmos DB

Примеры запросов агенту

  • Создай аккаунт Azure Cosmos DB и SQL-контейнер через Azure Resource Manager на .NET.
  • Настрой для базы Cosmos DB ручную пропускную способность и покажи код.
  • Объясни, чем Azure.ResourceManager.CosmosDB отличается от Microsoft.Azure.Cosmos для CRUD документов.

Как установить azure-resource-manager-cosmosdb-dotnet

1Через Skills CLI (Vercel)

npx skills add microsoft/skills --skill azure-resource-manager-cosmosdb-dotnet -a claude-code

2Вручную: положить файлы

~/.claude/skills/azure-resource-manager-cosmosdb-dotnet/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/azure-resource-manager-cosmosdb-dotnet/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о azure-resource-manager-cosmosdb-dotnet

Как установить azure-resource-manager-cosmosdb-dotnet в Claude Code?

Выполните npx skills add microsoft/skills --skill azure-resource-manager-cosmosdb-dotnet -a claude-code, затем проверьте файл ~/.claude/skills/azure-resource-manager-cosmosdb-dotnet/SKILL.md.

Что делает azure-resource-manager-cosmosdb-dotnet?

Скилл помогает писать .NET-код для управления аккаунтами, базами, контейнерами и пропускной способностью Azure Cosmos DB через Azure Resource Manager.

Чем этот скилл отличается от Microsoft.Azure.Cosmos?

Он предназначен для management plane: создания и настройки ресурсов Cosmos DB. Операции с документами, запросы и запуск хранимых процедур относятся к Microsoft.Azure.Cosmos.

Исходный текст

SKILL.md · MIT
---
name: azure-resource-manager-cosmosdb-dotnet
description: |
  Azure Resource Manager SDK for Cosmos DB in .NET. Use for MANAGEMENT PLANE operations: creating/managing Cosmos DB accounts, databases, containers, throughput settings, and RBAC via Azure Resource Manager. NOT for data plane operations (CRUD on documents) - use Microsoft.Azure.Cosmos for that. Triggers: "Cosmos DB account", "create Cosmos account", "manage Cosmos resources", "ARM Cosmos", "CosmosDBAccountResource", "provision Cosmos DB".
license: MIT
metadata:
  author: Microsoft
  version: "1.0.0"
  package: Azure.ResourceManager.CosmosDB
---

# Azure.ResourceManager.CosmosDB (.NET)

Management plane SDK for provisioning and managing Azure Cosmos DB resources via Azure Resource Manager.

> **⚠️ Management vs Data Plane**
> - **This SDK (Azure.ResourceManager.CosmosDB)**: Create accounts, databases, containers, configure throughput, manage RBAC
> - **Data Plane SDK (Microsoft.Azure.Cosmos)**: CRUD operations on documents, queries, stored procedures execution

## Installation

```bash
dotnet add package Azure.ResourceManager.CosmosDB
dotnet add package Azure.Identity
```

**Current Versions**: Stable v1.4.0, Preview v1.4.0-beta.13

## Environment Variables

```bash
AZURE_SUBSCRIPTION_ID=<your-subscription-id> # Required: Azure subscription ID
AZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production
AZURE_TENANT_ID=<tenant-id> # For service principal auth (optional)
AZURE_CLIENT_ID=<client-id> # For service principal auth (optional)
AZURE_CLIENT_SECRET=<client-secret> # For service principal auth (optional)
```

## Authentication

```csharp
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.CosmosDB;

// Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=<specific_credential>
var credential = new DefaultAzureCredential(
    DefaultAzureCredential.DefaultEnvironmentVariableName
);
// Or use a specific credential directly in production:
// See https://learn.microsoft.com/dotnet/api/overview/azure/identity-readme?view=azure-dotnet#credential-classes
// var credential = new ManagedIdentityCredential();
var armClient = new ArmClient(credential);

// Get subscription
var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID");
var subscription = armClient.GetSubscriptionResource(
    new ResourceIdentifier($"/subscriptions/{subscriptionId}"));
```

## Resource Hierarchy

```
ArmClient
└── SubscriptionResource
    └── ResourceGroupResource
        └── CosmosDBAccountResource
            ├── CosmosDBSqlDatabaseResource
            │   └── CosmosDBSqlContainerResource
            │       ├── CosmosDBSqlStoredProcedureResource
            │       ├── CosmosDBSqlTriggerResource
            │       └── CosmosDBSqlUserDefinedFunctionResource
            ├── CassandraKeyspaceResource
            ├── GremlinDatabaseResource
            ├── MongoDBDatabaseResource
            └── CosmosDBTableResource
```

## Core Workflow

### 1. Create Cosmos DB Account

```csharp
using Azure.ResourceManager.CosmosDB;
using Azure.ResourceManager.CosmosDB.Models;

// Get resource group
var resourceGroup = await subscription
    .GetResourceGroupAsync("my-resource-group");

// Define account
var accountData = new CosmosDBAccountCreateOrUpdateContent(
    location: AzureLocation.EastUS,
    locations: new[]
    {
        new CosmosDBAccountLocation
        {
            LocationName = AzureLocation.EastUS,
            FailoverPriority = 0,
            IsZoneRedundant = false
        }
    })
{
    Kind = CosmosDBAccountKind.GlobalDocumentDB,
    ConsistencyPolicy = new ConsistencyPolicy(DefaultConsistencyLevel.Session),
    EnableAutomaticFailover = true
};

// Create account (long-running operation)
var accountCollection = resourceGroup.Value.GetCosmosDBAccounts();
var operation = await accountCollection.CreateOrUpdateAsync(
    WaitUntil.Completed,
    "my-cosmos-account",
    accountData);

CosmosDBAccountResource account = operation.Value;
```

### 2. Create SQL Database

```csharp
var databaseData = new CosmosDBSqlDatabaseCreateOrUpdateContent(
    new CosmosDBSqlDatabaseResourceInfo("my-database"));

var databaseCollection = account.GetCosmosDBSqlDatabases();
var dbOperation = await databaseCollection.CreateOrUpdateAsync(
    WaitUntil.Completed,
    "my-database",
    databaseData);

CosmosDBSqlDatabaseResource database = dbOperation.Value;
```

### 3. Create SQL Container

```csharp
var containerData = new CosmosDBSqlContainerCreateOrUpdateContent(
    new CosmosDBSqlContainerResourceInfo("my-container")
    {
        PartitionKey = new CosmosDBContainerPartitionKey
        {
            Paths = { "/partitionKey" },
            Kind = CosmosDBPartitionKind.Hash
        },
        IndexingPolicy = new CosmosDBIndexingPolicy
        {
            Automatic = true,
            IndexingMode = CosmosDBIndexingMode.Consistent
        },
        DefaultTtl = 86400 // 24 hours
    });

var containerCollection = database.GetCosmosDBSqlContainers();
var containerOperation = await containerCollection.CreateOrUpdateAsync(
    WaitUntil.Completed,
    "my-container",
    containerData);

CosmosDBSqlContainerResource container = containerOperation.Value;
```

### 4. Configure Throughput

```csharp
// Manual throughput
var throughputData = new ThroughputSettingsUpdateData(
    new ThroughputSettingsResourceInfo
    {
        Throughput = 400
    });

// Autoscale throughput
var autoscaleData = new ThroughputSettingsUpdateData(
    new ThroughputSettingsResourceInfo
    {
        AutoscaleSettings = new AutoscaleSettingsResourceInfo
        {
            MaxThroughput = 4000
        }
    });

// Apply to database
await database.CreateOrUpdateCosmosDBSqlDatabaseThroughputAsync(
    WaitUntil.Completed,
    throughputData);
```

### 5. Get Connection Information

```csharp
// Get keys
var keys = await account.GetKeysAsync();
Console.WriteLine($"Primary Key: {keys.Value.PrimaryMasterKey}");

// Get connection strings
var connectionStrings = await account.GetConnectionStringsAsync();
foreach (var cs in connectionStrings.Value.ConnectionStrings)
{
    Console.WriteLine($"{cs.Description}: {cs.ConnectionString}");
}
```

## Key Types Reference

| Type | Purpose |
|------|---------|
| `ArmClient` | Entry point for all ARM operations |
| `CosmosDBAccountResource` | Represents a Cosmos DB account |
| `CosmosDBAccountCollection` | Collection for account CRUD |
| `CosmosDBSqlDatabaseResource` | SQL API database |
| `CosmosDBSqlContainerResource` | SQL API container |
| `CosmosDBAccountCreateOrUpdateContent` | Account creation payload |
| `CosmosDBSqlDatabaseCreateOrUpdateContent` | Database creation payload |
| `CosmosDBSqlContainerCreateOrUpdateContent` | Container creation payload |
| `ThroughputSettingsUpdateData` | Throughput configuration |

## Best Practices

1. **Use `WaitUntil.Completed`** for operations that must finish before proceeding
2. **Use `WaitUntil.Started`** when you want to poll manually or run operations in parallel
3. **Use `DefaultAzureCredential`** — never hardcode keys
4. **Handle `RequestFailedException`** for ARM API errors
5. **Use `CreateOrUpdateAsync`** for idempotent operations
6. **Navigate hierarchy** via `Get*` methods (e.g., `account.GetCosmosDBSqlDatabases()`)

## Error Handling

```csharp
using Azure;

try
{
    var operation = await accountCollection.CreateOrUpdateAsync(
        WaitUntil.Completed, accountName, accountData);
}
catch (RequestFailedException ex) when (ex.Status == 409)
{
    Console.WriteLine("Account already exists");
}
catch (RequestFailedException ex)
{
    Console.WriteLine($"ARM Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}");
}
```

## Reference Files

| File | When to Read |
|------|--------------|
| [references/account-management.md](references/account-management.md) | Account CRUD, failover, keys, connection strings, networking |
| [references/sql-resources.md](references/sql-resources.md) | SQL databases, containers, stored procedures, triggers, UDFs |
| [references/throughput.md](references/throughput.md) | Manual/autoscale throughput, migration between modes |

## Related SDKs

| SDK | Purpose | Install |
|-----|---------|---------|
| `Microsoft.Azure.Cosmos` | Data plane (document CRUD, queries) | `dotnet add package Microsoft.Azure.Cosmos` |
| `Azure.ResourceManager.CosmosDB` | Management plane (this SDK) | `dotnet add package Azure.ResourceManager.CosmosDB` |

© Microsoft · MIT · microsoft/skills

Похожие скиллы

Все скиллы по теме «Облака: AWS, Azure, GCP» →
caveman-manage JuliusBrussee Проверяет состояние и результаты экспериментов Caveman Cloud, предлагает одно действие или блокирует рискованный запрос. Нужен перед запуском, одобрением, отменой или откатом. CX Codex +1 104 200установок workers-best-practices cloudflare Скилл настраивает ИИ на проверку продакшен-кода Cloudflare Workers по актуальным правилам рантайма, типам Wrangler и антипаттернам. CX Codex +1 126 100установок cloudflare-email-service cloudflare Скилл для работы с Cloudflare Email Sending и Email Routing: помогает настроить отправку и приём писем в Workers. CX Codex +1 102 300установок firebase-basics официальный google Скилл настраивает Firebase CLI, помогает войти в аккаунт, создать или выбрать проект и скачать конфигурацию Android или iOS. CX Codex 14 100установок cloudflare-one cloudflare Помогает агенту проектировать, настраивать и разбирать развёртывания Cloudflare One Zero Trust и SASE. Пригодится, когда нужно спланировать Access, Gateway или туннели без похода в документацию вручную. CX Codex +1 93 100установок cloudflare-one-migrations cloudflare Помогает спланировать переход с VPN, SWG или SASE на Cloudflare One: сопоставляет политики, находит пробелы и расписывает порядок выката. CX Codex +1 89 500установок

Из того же набора143

Весь набор →
azure-ai-language-conversations-py Скилл для работы с Conversational Language Understanding через Python SDK: разбор интентов и сущностей в диалогах. Пригодится, если пишешь NLP-фичи на Azure. 1установок microsoft-azure-webjobs-extensions-authentication-events-dotnet Скилл для работы с кастомными событиями аутентификации Microsoft Entra ID в .NET: добавление claims в токены, сбор атрибутов, OTP. 1установок azure-security-keyvault-keys-dotnet Скилл для работы с ключами Azure Key Vault и Managed HSM из .NET: создание, ротация, шифрование, подпись. Пригодится, когда агент пишет код на C#. 1установок azure-resource-manager-mysql-dotnet Скилл учит агента управлять MySQL Flexible Server в Azure через .NET SDK: серверы, базы, правила файрвола, параметры и бэкапы. 1установок azure-maps-search-dotnet Скилл помогает работать с Azure Maps SDK for .NET: искать адреса, строить маршруты и получать картографические данные. Пригодится при разработке приложений на .NET с функциями геолокации. 1установок azure-eventgrid-dotnet Скилл помогает работать с Azure Event Grid SDK для .NET: публиковать события и разбирать сценарии получения сообщений. Пригодится для кода с EventGridEvent и CloudEvent. 1установок azure-ai-voicelive-dotnet Скилл по Azure AI Voice Live SDK для .NET: помогает собрать голосового ассистента с двусторонним обменом аудио по WebSocket. 1установок azure-ai-document-intelligence-dotnet Скилл для Claude и GitHub Copilot: помогает писать код на C# с Azure AI Document Intelligence — извлекать текст, таблицы и поля из счетов, чеков и удостоверений. 1установок

Спонсоры проекта

Компании, которые помогают держать аналитику открытой