关于 azure-mgmt-arizeaiobservabilityeval-dotnet
供 .NET 开发者通过 Azure.ResourceManager 管理 Azure 上的 Arize AI Observability and Evaluation 组织资源。SDK 支持组织的创建、查询、列表、更新和删除,并涵盖 Marketplace 与单点登录相关模型。
主要功能
- 01创建和读取组织资源
- 02列出订阅或资源组中的组织
- 03更新组织标签
- 04删除组织资源
- 05访问 Marketplace 与 SSO 配置模型
适用场景
- 01在 Azure 资源组中创建 Arize AI 组织
- 02检查组织是否存在并读取资源
- 03更新组织的环境或团队标签
- 04列出订阅中的观测评估组织
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill azure-mgmt-arizeaiobservabilityeval-dotnet安装后在 Claude Code 中输入/azure-mgmt-arizeaiobservabilityeval-dotnet确认已加载。
详细介绍
Azure.ResourceManager.ArizeAIObservabilityEval
用于在 Azure 上管理 Arize AI 可观测性和评估资源的 .NET SDK。
安装
dotnet add package Azure.ResourceManager.ArizeAIObservabilityEval --version 1.0.0
包信息
| 属性 | 值 |
|---|---|
| 包 | Azure.ResourceManager.ArizeAIObservabilityEval |
| 版本 | 1.0.0(GA) |
| API 版本 | 2024-10-01 |
| ARM 类型 | ArizeAi.ObservabilityEval/organizations |
| 依赖项 | Azure.Core >= 1.46.2,Azure.ResourceManager >= 1.13.1 |
环境变量
AZURE_SUBSCRIPTION_ID=<your-subscription-id>
AZURE_TENANT_ID=<your-tenant-id>
AZURE_CLIENT_ID=<your-client-id>
AZURE_CLIENT_SECRET=<your-client-secret>
身份验证
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.ArizeAIObservabilityEval;
// Always use DefaultAzureCredential
var credential = new DefaultAzureCredential();
var armClient = new ArmClient(credential);
Marketplace 与 SDK 边界
在预配前,确认订阅、区域、准确的 Marketplace 产品/计划/期限、费用以及经授权的联系人信息披露。请勿将占位符作为真实的业务身份执行。代码片段是彼此独立的替代方案,并会重复使用本地名称;请核实所选版本中的包/模型签名和实际 RBAC。删除操作可能会移除付费组织及其关联的可观测性数据;请先取得对准确目标的授权,并确认恢复预期。
核心工作流
创建 Arize AI 组织
using Azure.Core;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.ArizeAIObservabilityEval;
using Azure.ResourceManager.ArizeAIObservabilityEval.Models;
// Get subscription and resource group
var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID");
var subscription = await armClient.GetSubscriptionResource(
SubscriptionResource.CreateResourceIdentifier(subscriptionId)).GetAsync();
var resourceGroup = await subscription.Value.GetResourceGroupAsync("my-resource-group");
// Get the organization collection
var collection = resourceGroup.Value.GetArizeAIObservabilityEvalOrganizations();
// Create organization data
var data = new ArizeAIObservabilityEvalOrganizationData(AzureLocation.EastUS)
{
Properties = new ArizeAIObservabilityEvalOrganizationProperties
{
Marketplace = new ArizeAIObservabilityEvalMarketplaceDetails
{
SubscriptionId = "marketplace-subscription-id",
OfferDetails = new ArizeAIObservabilityEvalOfferDetails
{
PublisherId = "arikimlabs1649082416596",
OfferId = "arize-liftr-1",
PlanId = "arize-liftr-1-plan",
PlanName = "Arize AI Plan",
TermUnit = "P1M",
TermId = "term-id"
}
},
User = new ArizeAIObservabilityEvalUserDetails
{
FirstName = "John",
LastName = "Doe",
EmailAddress = "[email protected]"
}
},
Tags = { ["environment"] = "production" }
};
// Create (long-running operation)
var operation = await collection.CreateOrUpdateAsync(
WaitUntil.Completed,
"my-arize-org",
data);
var organization = operation.Value;
Console.WriteLine($"Created: {organization.Data.Name}");
获取组织
// Option 1: From collection
var org = await collection.GetAsync("my-arize-org");
// Option 2: Check if exists first
var exists = await collection.ExistsAsync("my-arize-org");
if (exists.Value)
{
var org = await collection.GetAsync("my-arize-org");
}
// Option 3: GetIfExists (returns null if not found)
var response = await collection.GetIfExistsAsync("my-arize-org");
if (response.HasValue)
{
var org = response.Value;
}
列出组织
// List in resource group
await foreach (var org in collection.GetAllAsync())
{
Console.WriteLine($"Org: {org.Data.Name}, State: {org.Data.Properties?.ProvisioningState}");
}
// List in subscription
await foreach (var org in subscription.Value.GetArizeAIObservabilityEvalOrganizationsAsync())
{
Console.WriteLine($"Org: {org.Data.Name}");
}
更新组织
// Update tags
var org = await collection.GetAsync("my-arize-org");
var updateData = new ArizeAIObservabilityEvalOrganizationPatch
{
Tags = { ["environment"] = "staging", ["team"] = "ml-ops" }
};
var updated = await org.Value.UpdateAsync(updateData);
删除组织
var org = await collection.GetAsync("my-arize-org");
await org.Value.DeleteAsync(WaitUntil.Completed);
关键类型
| 类型 | 用途 |
|---|---|
ArizeAIObservabilityEvalOrganizationResource | Arize 组织的主要 ARM 资源 |
ArizeAIObservabilityEvalOrganizationCollection | 用于 CRUD 操作的集合 |
ArizeAIObservabilityEvalOrganizationData | 资源数据模型 |
ArizeAIObservabilityEvalOrganizationProperties | 组织属性 |
ArizeAIObservabilityEvalMarketplaceDetails | Azure Marketplace 订阅信息 |
ArizeAIObservabilityEvalOfferDetails | Marketplace 产品配置 |
ArizeAIObservabilityEvalUserDetails | 用户联系信息 |
ArizeAIObservabilityEvalOrganizationPatch | 用于更新的补丁模型 |
ArizeAIObservabilityEvalSingleSignOnPropertiesV2 | SSO 配置 |
枚举
| 枚举 | 值 |
|---|---|
ArizeAIObservabilityEvalOfferProvisioningState | Succeeded、Failed、Canceled、Provisioning、Updating、Deleting、Accepted |
ArizeAIObservabilityEvalMarketplaceSubscriptionStatus | PendingFulfillmentStart、Subscribed、Suspended、Unsubscribed |
ArizeAIObservabilityEvalSingleSignOnState | Initial、Enable、Disable |
ArizeAIObservabilityEvalSingleSignOnType | Saml、OpenId |
最佳实践
- 使用异步方法 — 所有操作都支持 async/await
- 处理长时间运行的操作 — 使用
WaitUntil.Completed或手动轮询 - 使用 GetIfExistsAsync — 在条件逻辑中避免异常
- 实现重试策略 — 通过
ArmClientOptions配置 - 使用资源标识符 — 无需列出资源即可直接访问
- 正确关闭客户端 — 使用
using语句或显式释放
错误处理
try
{
var org = await collection.GetAsync("my-arize-org");
}
catch (Azure.RequestFailedException ex) when (ex.Status == 404)
{
Console.WriteLine("Organization not found");
}
catch (Azure.RequestFailedException ex)
{
Console.WriteLine($"Azure error: {ex.Message}");
}
直接访问资源
// Access resource directly by ID (without listing)
var resourceId = ArizeAIObservabilityEvalOrganizationResource.CreateResourceIdentifier(
subscriptionId,
"my-resource-group",
"my-arize-org");
var org = armClient.GetArizeAIObservabilityEvalOrganizationResource(resourceId);
var data = await org.GetAsync();
链接
适用场景
当任务与概述中描述的工作流或操作相符时,可使用此技能。
限制
- 仅当任务明确符合上述范围时,才使用此技能。
- 请勿将输出视为环境特定验证、测试或专家审查的替代品。
- 如果缺少必需的输入、权限、安全边界或成功标准,请暂停并请求澄清。
评论
支持 Markdown