Azure Mgmt Weightsandbiases Dotnet

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

Azure Weights & Biases SDK for .NET. ML experiment tracking and model management via Azure Marketplace. Use for creating W&B instances, managing SSO, marketplace integration, and ML observability. Triggers: "Weights and Biases", "W&B", "WeightsAndBiases", "ML experiment tracking", "model registry", "experiment management", "wandb".

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

指導 .NET 開發人員透過 Azure Resource Manager SDK 部署與管理 Azure Weights & Biases 機器學習實驗追蹤執行個體。

功能
此技能為 Azure.ResourceManager.WeightsAndBiases .NET SDK 提供參考指示與 C# 程式碼範例。內容涵蓋建立、取得、列出、更新與刪除 Weights & Biases 執行個體、設定 Entra ID 單一登入、設定 Marketplace 供應項目詳細資料,以及處理錯誤。它也列出重要 SDK 類型、支援的 Azure 區域,並說明之後如何連接 W&B Python SDK。
適用情境
當您需要透過 .NET 程式碼在 Azure 上佈建或管理 Weights & Biases 機器學習實驗追蹤執行個體時使用。適合涉及 Azure Marketplace 整合、SSO 設定、資源標記或 W&B 執行個體生命週期管理的作業。
執行需求
需要 .NET SDK,以及 Azure.ResourceManager.WeightsAndBiases(發行前版本)與 Azure.Identity 套件,還需要 Azure 訂用帳戶、資源群組與 W&B 執行個體名稱,以及 DefaultAzureCredential 或受控識別等 Azure 認證。需要連線至 Azure 的網路。未隨附指令碼,僅為指示文件。

Azure.ResourceManager.WeightsAndBiases (.NET)

Azure Resource Manager SDK for deploying and managing Weights & Biases ML experiment tracking instances via Azure Marketplace.

Installation

bash
dotnet add package Azure.ResourceManager.WeightsAndBiases --prereleasedotnet add package Azure.Identity

Current Version: v1.0.0-beta.1 (preview)
API Version: 2024-09-18-preview

Environment Variables

bash
AZURE_SUBSCRIPTION_ID=<your-subscription-id> # Required: Azure subscription IDAZURE_RESOURCE_GROUP=<your-resource-group> # Required: Azure resource group nameAZURE_WANDB_INSTANCE_NAME=<your-wandb-instance> # Required: Weights & Biases instance nameAZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production

Authentication

csharp
using Azure.Identity;using Azure.ResourceManager;using Azure.ResourceManager.WeightsAndBiases;
// 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();ArmClient client = new ArmClient(credential);

Resource Hierarchy

Subscription└── ResourceGroup    └── WeightsAndBiasesInstance    # W&B deployment from Azure Marketplace        ├── Properties        │   ├── Marketplace          # Offer details, plan, publisher        │   ├── User                 # Admin user info        │   ├── PartnerProperties    # W&B-specific config (region, subdomain)        │   └── SingleSignOnPropertiesV2  # Entra ID SSO configuration        └── Identity                 # Managed identity (optional)

Core Workflows

1. Create Weights & Biases Instance

csharp
using Azure.ResourceManager.WeightsAndBiases;using Azure.ResourceManager.WeightsAndBiases.Models;
ResourceGroupResource resourceGroup = await client    .GetDefaultSubscriptionAsync()    .Result    .GetResourceGroupAsync("my-resource-group");
WeightsAndBiasesInstanceCollection instances = resourceGroup.GetWeightsAndBiasesInstances();
WeightsAndBiasesInstanceData data = new WeightsAndBiasesInstanceData(AzureLocation.EastUS){    Properties = new WeightsAndBiasesInstanceProperties    {        // Marketplace configuration        Marketplace = new WeightsAndBiasesMarketplaceDetails        {            SubscriptionId = "<marketplace-subscription-id>",            OfferDetails = new WeightsAndBiasesOfferDetails            {                PublisherId = "wandb",                OfferId = "wandb-pay-as-you-go",                PlanId = "wandb-payg",                PlanName = "Pay As You Go",                TermId = "monthly",                TermUnit = "P1M"            }        },        // Admin user        User = new WeightsAndBiasesUserDetails        {            FirstName = "Admin",            LastName = "User",            EmailAddress = "[email protected]",            Upn = "[email protected]"        },        // W&B-specific configuration        PartnerProperties = new WeightsAndBiasesPartnerProperties        {            Region = WeightsAndBiasesRegion.EastUS,            Subdomain = "my-company-wandb"        }    },    // Optional: Enable managed identity    Identity = new ManagedServiceIdentity(ManagedServiceIdentityType.SystemAssigned)};
ArmOperation<WeightsAndBiasesInstanceResource> operation = await instances    .CreateOrUpdateAsync(WaitUntil.Completed, "my-wandb-instance", data);
WeightsAndBiasesInstanceResource instance = operation.Value;
Console.WriteLine($"W&B Instance created: {instance.Data.Name}");Console.WriteLine($"Provisioning state: {instance.Data.Properties.ProvisioningState}");

2. Get Existing Instance

csharp
WeightsAndBiasesInstanceResource instance = await resourceGroup    .GetWeightsAndBiasesInstanceAsync("my-wandb-instance");
Console.WriteLine($"Instance: {instance.Data.Name}");Console.WriteLine($"Location: {instance.Data.Location}");Console.WriteLine($"State: {instance.Data.Properties.ProvisioningState}");
if (instance.Data.Properties.PartnerProperties != null){    Console.WriteLine($"Region: {instance.Data.Properties.PartnerProperties.Region}");    Console.WriteLine($"Subdomain: {instance.Data.Properties.PartnerProperties.Subdomain}");}

3. List All Instances

csharp
// List in resource groupawait foreach (WeightsAndBiasesInstanceResource instance in     resourceGroup.GetWeightsAndBiasesInstances()){    Console.WriteLine($"Instance: {instance.Data.Name}");    Console.WriteLine($"  Location: {instance.Data.Location}");    Console.WriteLine($"  State: {instance.Data.Properties.ProvisioningState}");}
// List in subscriptionSubscriptionResource subscription = await client.GetDefaultSubscriptionAsync();await foreach (WeightsAndBiasesInstanceResource instance in     subscription.GetWeightsAndBiasesInstancesAsync()){    Console.WriteLine($"{instance.Data.Name} in {instance.Id.ResourceGroupName}");}

4. Configure Single Sign-On (SSO)

csharp
WeightsAndBiasesInstanceResource instance = await resourceGroup    .GetWeightsAndBiasesInstanceAsync("my-wandb-instance");
// Update with SSO configurationWeightsAndBiasesInstanceData updateData = instance.Data;
updateData.Properties.SingleSignOnPropertiesV2 = new WeightsAndBiasSingleSignOnPropertiesV2{    Type = WeightsAndBiasSingleSignOnType.Saml,    State = WeightsAndBiasSingleSignOnState.Enable,    EnterpriseAppId = "<entra-app-id>",    AadDomains = { "example.com", "contoso.com" }};
ArmOperation<WeightsAndBiasesInstanceResource> operation = await resourceGroup    .GetWeightsAndBiasesInstances()    .CreateOrUpdateAsync(WaitUntil.Completed, "my-wandb-instance", updateData);

5. Update Instance

csharp
WeightsAndBiasesInstanceResource instance = await resourceGroup    .GetWeightsAndBiasesInstanceAsync("my-wandb-instance");
// Update tagsWeightsAndBiasesInstancePatch patch = new WeightsAndBiasesInstancePatch{    Tags =    {        { "environment", "production" },        { "team", "ml-platform" },        { "costCenter", "CC-ML-001" }    }};
instance = await instance.UpdateAsync(patch);Console.WriteLine($"Updated instance: {instance.Data.Name}");

6. Delete Instance

csharp
WeightsAndBiasesInstanceResource instance = await resourceGroup    .GetWeightsAndBiasesInstanceAsync("my-wandb-instance");
await instance.DeleteAsync(WaitUntil.Completed);Console.WriteLine("Instance deleted");

7. Check Resource Name Availability

csharp
// Check if name is available before creating// (Implement via direct ARM call if SDK doesn't expose this)try{    await resourceGroup.GetWeightsAndBiasesInstanceAsync("desired-name");    Console.WriteLine("Name is already taken");}catch (RequestFailedException ex) when (ex.Status == 404){    Console.WriteLine("Name is available");}

Key Types Reference

TypePurpose
WeightsAndBiasesInstanceResourceW&B instance resource
WeightsAndBiasesInstanceDataInstance configuration data
WeightsAndBiasesInstanceCollectionCollection of instances
WeightsAndBiasesInstancePropertiesInstance properties
WeightsAndBiasesMarketplaceDetailsMarketplace subscription info
WeightsAndBiasesOfferDetailsMarketplace offer details
WeightsAndBiasesUserDetailsAdmin user information
WeightsAndBiasesPartnerPropertiesW&B-specific configuration
WeightsAndBiasSingleSignOnPropertiesV2SSO configuration
WeightsAndBiasesInstancePatchPatch for updates
WeightsAndBiasesRegionSupported regions enum

Available Regions

Region EnumAzure Region
WeightsAndBiasesRegion.EastUSEast US
WeightsAndBiasesRegion.CentralUSCentral US
WeightsAndBiasesRegion.WestUSWest US
WeightsAndBiasesRegion.WestEuropeWest Europe
WeightsAndBiasesRegion.JapanEastJapan East
WeightsAndBiasesRegion.KoreaCentralKorea Central

Marketplace Offer Details

For Azure Marketplace integration:

PropertyValue
Publisher IDwandb
Offer IDwandb-pay-as-you-go
Plan IDwandb-payg (Pay As You Go)

Best Practices

  1. Use DefaultAzureCredential — Supports multiple auth methods automatically
  2. Enable managed identity — For secure access to other Azure resources
  3. Configure SSO — Enable Entra ID SSO for enterprise security
  4. Tag resources — Use tags for cost tracking and organization
  5. Check provisioning state — Wait for Succeeded before using instance
  6. Use appropriate region — Choose region closest to your compute
  7. Monitor with Azure — Use Azure Monitor for resource health

Error Handling

csharp
using Azure;
try{    ArmOperation<WeightsAndBiasesInstanceResource> operation = await instances        .CreateOrUpdateAsync(WaitUntil.Completed, "my-wandb", data);}catch (RequestFailedException ex) when (ex.Status == 409){    Console.WriteLine("Instance already exists or name conflict");}catch (RequestFailedException ex) when (ex.Status == 400){    Console.WriteLine($"Invalid configuration: {ex.Message}");}catch (RequestFailedException ex){    Console.WriteLine($"Azure error: {ex.Status} - {ex.Message}");}

Integration with W&B SDK

After creating the Azure resource, use the W&B Python SDK for experiment tracking:

python
# Install: pip install wandbimport wandb
# Login with your W&B API key from the Azure-deployed instancewandb.login(host="https://my-company-wandb.wandb.ai")
# Initialize a runrun = wandb.init(project="my-ml-project")
# Log metricswandb.log({"accuracy": 0.95, "loss": 0.05})
# Finish runrun.finish()

Related SDKs

SDKPurposeInstall
Azure.ResourceManager.WeightsAndBiasesW&B instance management (this SDK)dotnet add package Azure.ResourceManager.WeightsAndBiases --prerelease
Azure.ResourceManager.MachineLearningAzure ML workspacesdotnet add package Azure.ResourceManager.MachineLearning

Reference Links

來源與署名

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

授權條款: MIT

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

檢舉或申請下架