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 单点登录,设置市场产品详情以及处理错误。它还列出关键 SDK 类型、支持的 Azure 区域,并说明之后如何连接 W&B Python SDK。
适用场景
当需要通过 .NET 代码在 Azure 上预配或管理 Weights & Biases 机器学习实验跟踪实例时使用。适用于涉及 Azure 市场集成、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 从公开仓库中收录这些内容。

举报或申请下架