mcpField
A
azure-mgmt-weightsandbiases-dotnet

azure-mgmt-weightsandbiases-dotnet

github.com/sickn33云与 DevOps48.7k52 次安装今天更新
代码仓库

关于 azure-mgmt-weightsandbiases-dotnet

介绍通过 Azure.ResourceManager.WeightsAndBiases .NET SDK 管理经 Azure Marketplace 部署的 Weights & Biases 实例,涵盖创建、查看、更新、删除和 SSO 配置,并区分 Azure 资源管理与实验跟踪。

主要功能

  1. 01创建和管理 W&B 实例
  2. 02列出并查看 Azure 资源
  3. 03配置 Entra ID SSO
  4. 04更新标签和实例设置
  5. 05跟踪资源预配状态

适用场景

  1. 01通过 Azure Marketplace 部署 W&B 实例
  2. 02查看资源组中的实例
  3. 03为实例配置 SSO
  4. 04更新或删除已获授权的实例

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill azure-mgmt-weightsandbiases-dotnet

安装后在 Claude Code 中输入/azure-mgmt-weightsandbiases-dotnet确认已加载。

详细介绍

Azure.ResourceManager.WeightsAndBiases(.NET)

用于通过 Azure Marketplace 部署和管理 Weights & Biases ML 实验跟踪实例的 Azure Resource Manager SDK。

安装

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

示例包基线:v1.0.0-beta.1(预览版);调整前请确认可用版本和生成的 API API 版本:2024-09-18-preview

环境变量

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

身份验证

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

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

资源层级

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)

请明确选择已获授权的租户、订阅和资源组,不要在创建计费资源时依赖默认值。根据所选 SDK,导入所需的 Azure/Azure.Core、Resources 和 Models 类型。下方的 Marketplace 产品/计划/条款/区域及 SSO 详情仅供参考,必须符合当前提供商的条款和权限;ARM 资源不存在并不代表全局名称可用性检查。创建可能产生 Marketplace 费用,删除可能导致无法访问数据;请在获批变更前预览确切资源并保留导出内容。ARM 管理和 W&B 实验跟踪属于不同的 API:请获取实际预配的基础 URL,而不要自行拼接假定的 wandb.ai 主机名。请勿在日志中记录 API 密钥、实验数据和管理员个人身份信息;记录运行数据前,请确认已获准进行数据保留和出口。

核心工作流

1. 创建 Weights & Biases 实例
using Azure.ResourceManager.WeightsAndBiases;
using Azure.ResourceManager.WeightsAndBiases.Models;

SubscriptionResource subscription = await client.GetDefaultSubscriptionAsync();
ResourceGroupResource resourceGroup = (await subscription.GetResourceGroupAsync("my-resource-group")).Value;

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. 获取现有实例
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 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}");
}
4. 配置单点登录(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);
5. 更新实例
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}");
6. 删除实例
WeightsAndBiasesInstanceResource instance = await resourceGroup
    .GetWeightsAndBiasesInstanceAsync("my-wandb-instance");

await instance.DeleteAsync(WaitUntil.Completed);
Console.WriteLine("Instance deleted");
7. 检查资源名称是否可用
// 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("No resource with this name was found in this resource group; global partner/subdomain availability is unproven");
}

关键类型参考

类型用途
WeightsAndBiasesInstanceResourceW&B 实例资源
WeightsAndBiasesInstanceData实例配置数据
WeightsAndBiasesInstanceCollection实例集合
WeightsAndBiasesInstanceProperties实例属性
WeightsAndBiasesMarketplaceDetailsMarketplace 订阅信息
WeightsAndBiasesOfferDetailsMarketplace 产品详情
WeightsAndBiasesUserDetails管理员用户信息
WeightsAndBiasesPartnerPropertiesW&B 专属配置
WeightsAndBiasSingleSignOnPropertiesV2SSO 配置
WeightsAndBiasesInstancePatch用于更新的补丁
WeightsAndBiasesRegion支持的区域枚举

可用区域

区域枚举Azure 区域
WeightsAndBiasesRegion.EastUS美国东部
WeightsAndBiasesRegion.CentralUS美国中部
WeightsAndBiasesRegion.WestUS美国西部
WeightsAndBiasesRegion.WestEurope西欧
WeightsAndBiasesRegion.JapanEast日本东部
WeightsAndBiasesRegion.KoreaCentral韩国中部

Marketplace 产品详情

Azure Marketplace 集成信息:

属性值
发布者 IDwandb
产品 IDwandb-pay-as-you-go
计划 IDwandb-payg(按需付费)

最佳实践

  1. 使用 DefaultAzureCredential — 自动支持多种身份验证方式
  2. 启用托管标识 — 安全访问其他 Azure 资源
  3. 配置 SSO — 启用 Entra ID SSO,增强企业安全性
  4. 标记资源 — 使用标记进行成本跟踪和组织管理
  5. 检查预配状态 — 等待状态变为 Succeeded 后再使用实例
  6. 选择合适的区域 — 选择距离计算资源最近的区域
  7. 使用 Azure 进行监控 — 使用 Azure Monitor 检查资源运行状况

错误处理

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

与 W&B SDK 集成

创建 Azure 资源后,使用 W&B Python SDK 跟踪实验:

# 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()

相关 SDK

SDK用途安装
Azure.ResourceManager.WeightsAndBiasesW&B 实例管理(此 SDK)dotnet add package Azure.ResourceManager.WeightsAndBiases --prerelease
Azure.ResourceManager.MachineLearningAzure ML 工作区dotnet add package Azure.ResourceManager.MachineLearning

参考链接

资源URL
NuGet 包https://www.nuget.org/packages/Azure.ResourceManager.WeightsAndBiases
W&B 文档https://docs.wandb.ai/
Azure Marketplacehttps://azuremarketplace.microsoft.com/marketplace/apps/wandb.wandb-pay-as-you-go
GitHub 源代码https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/weightsandbiases

适用场景

此技能适用于执行概述中所述的工作流或操作。

限制

  • 仅当任务明确符合上述范围时,才使用此技能。
  • 请勿将输出视为环境特定验证、测试或专家审查的替代品。
  • 如果缺少必要的输入、权限、安全边界或成功标准,请停止并请求澄清。

评论

支持 Markdown