azure-mgmt-weightsandbiases-dotnet

Azure.ResourceManager.WeightsAndBiases (.NET)

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "azure-mgmt-weightsandbiases-dotnet" with this command: npx skills add claudedjale/skillset/claudedjale-skillset-azure-mgmt-weightsandbiases-dotnet

Azure.ResourceManager.WeightsAndBiases (.NET)

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

Installation

dotnet add package Azure.ResourceManager.WeightsAndBiases --prerelease dotnet add package Azure.Identity

Current Version: v1.0.0-beta.1 (preview)

API Version: 2024-09-18-preview

Environment Variables

AZURE_SUBSCRIPTION_ID=<your-subscription-id> AZURE_RESOURCE_GROUP=<your-resource-group> AZURE_WANDB_INSTANCE_NAME=<your-wandb-instance>

Authentication

using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManager.WeightsAndBiases;

ArmClient client = new ArmClient(new DefaultAzureCredential());

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

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 = "admin@example.com", Upn = "admin@example.com" }, // 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}");

  1. Get Existing Instance

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}"); }

  1. List All Instances

// List in resource group await 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 subscription SubscriptionResource subscription = await client.GetDefaultSubscriptionAsync(); await foreach (WeightsAndBiasesInstanceResource instance in subscription.GetWeightsAndBiasesInstancesAsync()) { Console.WriteLine($"{instance.Data.Name} in {instance.Id.ResourceGroupName}"); }

  1. Configure Single Sign-On (SSO)

WeightsAndBiasesInstanceResource instance = await resourceGroup .GetWeightsAndBiasesInstanceAsync("my-wandb-instance");

// Update with SSO configuration WeightsAndBiasesInstanceData 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);

  1. Update Instance

WeightsAndBiasesInstanceResource instance = await resourceGroup .GetWeightsAndBiasesInstanceAsync("my-wandb-instance");

// Update tags WeightsAndBiasesInstancePatch 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}");

  1. Delete Instance

WeightsAndBiasesInstanceResource instance = await resourceGroup .GetWeightsAndBiasesInstanceAsync("my-wandb-instance");

await instance.DeleteAsync(WaitUntil.Completed); Console.WriteLine("Instance deleted");

  1. Check Resource Name Availability

// 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

Type Purpose

WeightsAndBiasesInstanceResource

W&B instance resource

WeightsAndBiasesInstanceData

Instance configuration data

WeightsAndBiasesInstanceCollection

Collection of instances

WeightsAndBiasesInstanceProperties

Instance properties

WeightsAndBiasesMarketplaceDetails

Marketplace subscription info

WeightsAndBiasesOfferDetails

Marketplace offer details

WeightsAndBiasesUserDetails

Admin user information

WeightsAndBiasesPartnerProperties

W&B-specific configuration

WeightsAndBiasSingleSignOnPropertiesV2

SSO configuration

WeightsAndBiasesInstancePatch

Patch for updates

WeightsAndBiasesRegion

Supported regions enum

Available Regions

Region Enum Azure Region

WeightsAndBiasesRegion.EastUS

East US

WeightsAndBiasesRegion.CentralUS

Central US

WeightsAndBiasesRegion.WestUS

West US

WeightsAndBiasesRegion.WestEurope

West Europe

WeightsAndBiasesRegion.JapanEast

Japan East

WeightsAndBiasesRegion.KoreaCentral

Korea Central

Marketplace Offer Details

For Azure Marketplace integration:

Property Value

Publisher ID wandb

Offer ID wandb-pay-as-you-go

Plan ID wandb-payg (Pay As You Go)

Best Practices

  • Use DefaultAzureCredential — Supports multiple auth methods automatically

  • Enable managed identity — For secure access to other Azure resources

  • Configure SSO — Enable Entra ID SSO for enterprise security

  • Tag resources — Use tags for cost tracking and organization

  • Check provisioning state — Wait for Succeeded before using instance

  • Use appropriate region — Choose region closest to your compute

  • Monitor with Azure — Use Azure Monitor for resource health

Error Handling

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:

Install: pip install wandb

import wandb

Login with your W&B API key from the Azure-deployed instance

wandb.login(host="https://my-company-wandb.wandb.ai")

Initialize a run

run = wandb.init(project="my-ml-project")

Log metrics

wandb.log({"accuracy": 0.95, "loss": 0.05})

Finish run

run.finish()

Related SDKs

SDK Purpose Install

Azure.ResourceManager.WeightsAndBiases

W&B instance management (this SDK) dotnet add package Azure.ResourceManager.WeightsAndBiases --prerelease

Azure.ResourceManager.MachineLearning

Azure ML workspaces dotnet add package Azure.ResourceManager.MachineLearning

Reference Links

Resource URL

NuGet Package https://www.nuget.org/packages/Azure.ResourceManager.WeightsAndBiases

W&B Documentation https://docs.wandb.ai/

Azure Marketplace https://azuremarketplace.microsoft.com/marketplace/apps/wandb.wandb-pay-as-you-go

GitHub Source https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/weightsandbiases

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

azure-observability

No summary provided by upstream source.

Repository SourceNeeds Review
General

azure-appconfiguration-java

No summary provided by upstream source.

Repository SourceNeeds Review
General

microsoft-azure-webjobs-extensions-authentication-events-dotnet

No summary provided by upstream source.

Repository SourceNeeds Review
General

azure-appconfiguration-py

No summary provided by upstream source.

Repository SourceNeeds Review