Azure Mgmt Mongodbatlas Dotnet

作者 microsoft354361d83247MIT收錄於 2026年10月8日更新於 2026年10月8日

Manage MongoDB Atlas Organizations as Azure ARM resources using Azure.ResourceManager.MongoDBAtlas SDK. Use when creating, updating, listing, or deleting MongoDB Atlas organizations through Azure Marketplace integration. This SDK manages the Azure-side organization resource, not Atlas clusters/databases directly.

精選僅含說明DevOps & Cloud
AI 產生的概覽

指導 .NET 開發人員透過 Azure.ResourceManager.MongoDBAtlas SDK,將 MongoDB Atlas 組織當作 Azure ARM 資源來管理。

功能
此技能提供 Azure.ResourceManager.MongoDBAtlas SDK 的參考文件與 C# 程式碼範例,涵蓋驗證、核心型別,以及將 MongoDB Atlas 組織當作 Azure ARM 資源進行建立、讀取、列出、更新與刪除的工作流程。內容記錄了模型屬性、佈建狀態、市集訂閱狀態、長時間執行作業的處理方式,以及常見錯誤。它產出的是指引與程式碼片段,而非可執行的成品。
適用情境
適合在撰寫透過 Azure Marketplace 整合來佈建或管理 MongoDB Atlas 組織的 .NET 程式碼時使用。也適合查詢 SDK 型別、必填屬性或錯誤原因。它不涵蓋直接管理 Atlas 叢集、資料庫、集合或使用者。
執行需求
需要 .NET SDK,以及 Azure.ResourceManager.MongoDBAtlas、Azure.Identity 與 Azure.ResourceManager 等 NuGet 套件,還需要 Azure 認證與 AZURE_SUBSCRIPTION_ID、AZURE_RESOURCE_GROUP 等環境變數。執行時需要連線至 Azure 的網路。此技能不含指令碼,僅為說明文件。

Azure.ResourceManager.MongoDBAtlas SDK

Manage MongoDB Atlas Organizations as Azure ARM resources with unified billing through Azure Marketplace.

Package Information

PropertyValue
PackageAzure.ResourceManager.MongoDBAtlas
Version1.0.0 (GA)
API Version2025-06-01
Resource TypeMongoDB.Atlas/organizations
NuGetAzure.ResourceManager.MongoDBAtlas

Installation

bash
dotnet add package Azure.ResourceManager.MongoDBAtlasdotnet add package Azure.Identitydotnet add package Azure.ResourceManager

Important Scope Limitation

This SDK manages MongoDB Atlas Organizations as Azure ARM resources for marketplace integration. It does NOT directly manage:

  • Atlas clusters
  • Databases
  • Collections
  • Users/roles

For cluster management, use the MongoDB Atlas API directly after creating the organization.

Environment Variables

bash
AZURE_SUBSCRIPTION_ID=<your-subscription-id> # Required: Azure subscription IDAZURE_RESOURCE_GROUP=<your-resource-group> # Required: Azure resource group nameAZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in productionAZURE_TENANT_ID=<your-tenant-id> # For service principal auth (optional)AZURE_CLIENT_ID=<your-client-id> # For service principal auth (optional)AZURE_CLIENT_SECRET=<your-client-secret> # For service principal auth (optional)

Authentication

csharp
using Azure.Identity;using Azure.ResourceManager;using Azure.ResourceManager.MongoDBAtlas;using Azure.ResourceManager.MongoDBAtlas.Models;
// 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);

Core Types

TypePurpose
MongoDBAtlasOrganizationResourceARM resource representing an Atlas organization
MongoDBAtlasOrganizationCollectionCollection of organizations in a resource group
MongoDBAtlasOrganizationDataData model for organization resource
MongoDBAtlasOrganizationPropertiesOrganization-specific properties
MongoDBAtlasMarketplaceDetailsAzure Marketplace subscription details
MongoDBAtlasOfferDetailsMarketplace offer configuration
MongoDBAtlasUserDetailsUser information for the organization
MongoDBAtlasPartnerPropertiesMongoDB-specific properties (org name, ID)

Workflows

Get Organization Collection

csharp
// Get resource groupvar subscription = await armClient.GetDefaultSubscriptionAsync();var resourceGroup = await subscription.GetResourceGroupAsync("my-resource-group");
// Get organizations collectionMongoDBAtlasOrganizationCollection organizations =     resourceGroup.Value.GetMongoDBAtlasOrganizations();

Create Organization

csharp
var organizationName = "my-atlas-org";var location = AzureLocation.EastUS2;
// Build organization datavar organizationData = new MongoDBAtlasOrganizationData(location){    Properties = new MongoDBAtlasOrganizationProperties(        marketplace: new MongoDBAtlasMarketplaceDetails(            subscriptionId: "your-azure-subscription-id",            offerDetails: new MongoDBAtlasOfferDetails(                publisherId: "mongodb",                offerId: "mongodb_atlas_azure_native_prod",                planId: "private_plan",                planName: "Pay as You Go (Free) (Private)",                termUnit: "P1M",                termId: "gmz7xq9ge3py"            )        ),        user: new MongoDBAtlasUserDetails(            emailAddress: "[email protected]",            upn: "[email protected]"        )        {            FirstName = "Admin",            LastName = "User"        }    )    {        PartnerProperties = new MongoDBAtlasPartnerProperties        {            OrganizationName = organizationName        }    },    Tags = { ["Environment"] = "Production" }};
// Create the organization (long-running operation)var operation = await organizations.CreateOrUpdateAsync(    WaitUntil.Completed,    organizationName,    organizationData);
MongoDBAtlasOrganizationResource organization = operation.Value;Console.WriteLine($"Created: {organization.Id}");

Get Existing Organization

csharp
// Option 1: From collectionMongoDBAtlasOrganizationResource org =     await organizations.GetAsync("my-atlas-org");
// Option 2: From resource identifiervar resourceId = MongoDBAtlasOrganizationResource.CreateResourceIdentifier(    subscriptionId: "subscription-id",    resourceGroupName: "my-resource-group",    organizationName: "my-atlas-org");MongoDBAtlasOrganizationResource org2 =     armClient.GetMongoDBAtlasOrganizationResource(resourceId);await org2.GetAsync(); // Fetch data

List Organizations

csharp
// List in resource groupawait foreach (var org in organizations.GetAllAsync()){    Console.WriteLine($"Org: {org.Data.Name}");    Console.WriteLine($"  Location: {org.Data.Location}");    Console.WriteLine($"  State: {org.Data.Properties?.ProvisioningState}");}
// List across subscriptionawait foreach (var org in subscription.GetMongoDBAtlasOrganizationsAsync()){    Console.WriteLine($"Org: {org.Data.Name} in {org.Data.Id}");}

Update Tags

csharp
// Add a single tagawait organization.AddTagAsync("CostCenter", "12345");
// Replace all tagsawait organization.SetTagsAsync(new Dictionary<string, string>{    ["Environment"] = "Production",    ["Team"] = "Platform"});
// Remove a tagawait organization.RemoveTagAsync("OldTag");

Update Organization Properties

csharp
var patch = new MongoDBAtlasOrganizationPatch{    Tags = { ["UpdatedAt"] = DateTime.UtcNow.ToString("o") },    Properties = new MongoDBAtlasOrganizationUpdateProperties    {        // Update user details if needed        User = new MongoDBAtlasUserDetails(            emailAddress: "[email protected]",            upn: "[email protected]"        )    }};
var updateOperation = await organization.UpdateAsync(    WaitUntil.Completed,    patch);

Delete Organization

csharp
// Delete (long-running operation)await organization.DeleteAsync(WaitUntil.Completed);

Model Properties Reference

MongoDBAtlasOrganizationProperties

PropertyTypeDescription
MarketplaceMongoDBAtlasMarketplaceDetailsRequired. Marketplace subscription details
UserMongoDBAtlasUserDetailsRequired. Organization admin user
PartnerPropertiesMongoDBAtlasPartnerPropertiesMongoDB-specific properties
ProvisioningStateMongoDBAtlasResourceProvisioningStateRead-only. Current provisioning state

MongoDBAtlasMarketplaceDetails

PropertyTypeDescription
SubscriptionIdstringRequired. Azure subscription ID for billing
OfferDetailsMongoDBAtlasOfferDetailsRequired. Marketplace offer configuration
SubscriptionStatusMarketplaceSubscriptionStatusRead-only. Subscription status

MongoDBAtlasOfferDetails

PropertyTypeDescription
PublisherIdstringRequired. Publisher ID (typically "mongodb")
OfferIdstringRequired. Offer ID
PlanIdstringRequired. Plan ID
PlanNamestringRequired. Display name of the plan
TermUnitstringRequired. Billing term unit (e.g., "P1M")
TermIdstringRequired. Term identifier

MongoDBAtlasUserDetails

PropertyTypeDescription
EmailAddressstringRequired. User email address
UpnstringRequired. User principal name
FirstNamestringOptional. User first name
LastNamestringOptional. User last name

MongoDBAtlasPartnerProperties

PropertyTypeDescription
OrganizationNamestringName of the MongoDB Atlas organization
OrganizationIdstringRead-only. MongoDB Atlas organization ID

Provisioning States

StateDescription
SucceededResource provisioned successfully
FailedProvisioning failed
CanceledProvisioning was canceled
ProvisioningResource is being provisioned
UpdatingResource is being updated
DeletingResource is being deleted
AcceptedRequest accepted, provisioning starting

Marketplace Subscription Status

StatusDescription
PendingFulfillmentStartSubscription pending activation
SubscribedActive subscription
SuspendedSubscription suspended
UnsubscribedSubscription canceled

Best Practices

Use Async Methods

csharp
// Prefer async for all operationsvar org = await organizations.GetAsync("my-org");await org.Value.AddTagAsync("key", "value");

Handle Long-Running Operations

csharp
// Wait for completionvar operation = await organizations.CreateOrUpdateAsync(    WaitUntil.Completed,  // Blocks until done    name,    data);
// Or start and poll latervar operation = await organizations.CreateOrUpdateAsync(    WaitUntil.Started,  // Returns immediately    name,    data);
// Poll for completionwhile (!operation.HasCompleted){    await Task.Delay(TimeSpan.FromSeconds(5));    await operation.UpdateStatusAsync();}

Check Provisioning State

csharp
var org = await organizations.GetAsync("my-org");if (org.Value.Data.Properties?.ProvisioningState ==     MongoDBAtlasResourceProvisioningState.Succeeded){    Console.WriteLine("Organization is ready");}

Use Resource Identifiers

csharp
// Create identifier without API callvar resourceId = MongoDBAtlasOrganizationResource.CreateResourceIdentifier(    subscriptionId,    resourceGroupName,    organizationName);
// Get resource handle (no data yet)var orgResource = armClient.GetMongoDBAtlasOrganizationResource(resourceId);
// Fetch data when neededvar response = await orgResource.GetAsync();

Common Errors

ErrorCauseSolution
ResourceNotFoundOrganization doesn't existVerify name and resource group
AuthorizationFailedInsufficient permissionsCheck RBAC roles on resource group
InvalidParameterMissing required propertiesEnsure all required fields are set
MarketplaceErrorMarketplace subscription issueVerify offer details and subscription

Related Resources

來源與署名

來源:microsoft/skills位於.github/plugins/azure-sdk-dotnet/skills/azure-mgmt-mongodbatlas-dotnet提交354361d

授權條款: MIT

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架