Azure 管理 Arize AI 可观测性评估 .NET

azure-mgmt-arizeaiobservabilityeval-dotnet
分类通用
作者Agentic Awesome Skills 社区
许可MIT
评分4.30/5
使用13.2K

Azure.ResourceManager.ArizeAIObservabilityEval

用于在 Azure 上管理 Arize AI Observability and Evaluation 资源的 .NET SDK。

安装

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

环境变量

bash
AZURE_SUBSCRIPTION_ID=<your-subscription-id>
AZURE_TENANT_ID=<your-tenant-id>
AZURE_CLIENT_ID=<your-client-id>
AZURE_CLIENT_SECRET=<your-client-secret>

身份验证

csharp
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.ArizeAIObservabilityEval;

// 始终使用 DefaultAzureCredential
var credential = new DefaultAzureCredential();
var armClient = new ArmClient(credential);

核心工作流

创建 Arize AI 组织

csharp
using Azure.Core;
using Azure.ResourceManager.Resources;
using Azure.ResourceManager.ArizeAIObservabilityEval;
using Azure.ResourceManager.ArizeAIObservabilityEval.Models;

// 获取订阅和资源组
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");

// 获取组织集合
var collection = resourceGroup.Value.GetArizeAIObservabilityEvalOrganizations();

// 创建组织数据
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" }
};

// 创建(长时间运行的操作)
var operation = await collection.CreateOrUpdateAsync(
WaitUntil.Completed,
"my-arize-org",
data);

var organization = operation.Value;
Console.WriteLine($"Created: {organization.Data.Name}");

获取组织

csharp
// 选项 1:从集合中获取
var org = await collection.GetAsync("my-arize-org");

// 选项 2:先检查是否存在
var exists = await collection.ExistsAsync("my-arize-org");
if (exists.Value)
{
var org = await collection.GetAsync("my-arize-org");
}

// 选项 3:GetIfExists(如果未找到则返回 null)
var response = await collection.GetIfExistsAsync("my


-arize-org");
if (response.HasValue)
{
var org = response.Value;
}
code
### 列出组织
csharp
// 列出资源组中的组织
await foreach (var org in collection.GetAllAsync())
{
Console.WriteLine($"Org: {org.Data.Name}, State: {org.Data.Properties?.ProvisioningState}");
}

// 列出订阅中的组织
await foreach (var org in subscription.Value.GetArizeAIObservabilityEvalOrganizationsAsync())
{
Console.WriteLine($"Org: {org.Data.Name}");
}

code
### 更新组织
csharp
// 更新标签
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);
code
### 删除组织
csharp
var org = await collection.GetAsync("my-arize-org");
await org.Value.DeleteAsync(WaitUntil.Completed);
code
## 关键类型

| 类型 | 用途 |
|------|---------|
| ArizeAIObservabilityEvalOrganizationResource | Arize 组织的主要 ARM 资源 |
| ArizeAIObservabilityEvalOrganizationCollection | 用于 CRUD 操作的集合 |
| ArizeAIObservabilityEvalOrganizationData | 资源数据模型 |
| ArizeAIObservabilityEvalOrganizationProperties | 组织属性 |
| ArizeAIObservabilityEvalMarketplaceDetails | Azure Marketplace 订阅信息 |
| ArizeAIObservabilityEvalOfferDetails | Marketplace 方案配置 |
| ArizeAIObservabilityEvalUserDetails | 用户联系信息 |
| ArizeAIObservabilityEvalOrganizationPatch | 用于更新的 Patch 模型 |
| ArizeAIObservabilityEvalSingleSignOnPropertiesV2 | SSO 配置 |

枚举

| 枚举 | 取值 |
|------|--------|
| ArizeAIObservabilityEvalOfferProvisioningState | Succeeded, Failed, Canceled, Provisioning, Updating, Deleting, Accepted |
| ArizeAIObservabilityEvalMarketplaceSubscriptionStatus | PendingFulfillmentStart, Subscribed, Suspended, Unsubscribed |
| ArizeAIObservabilityEvalSingleSignOnState | Initial, Enable, Disable |
| ArizeAIObservabilityEvalSingleSignOnType | Saml, OpenId |

最佳实践

1. 使用异步方法 — 所有操作均支持 async/await
2. 处理长时间运行的操作 — 使用 WaitUntil.Completed 或手动轮询
3. 使用 GetIfExistsAsync — 在条件逻辑中避免抛出异常
4. 实现重试策略 — 通过 ArmClientOptions 进行配置
5. 使用资源标识符 — 在无需列出资源的情况下直接访问资源
6. 正确关闭客户端 — 使用 using 语句或显式调用 dispose

错误处理

csharp 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}"); }
code
## 直接资源访问
csharp // 通过 ID 直接访问资源(无需列出) var resourceId = ArizeAIObservabilityEvalOrganizationResource.CreateResourceIdentifier( subscriptionId, "my-resource-group", "my-arize-org");

var org = armClient.GetArizeAIObservabilityEvalOrganizationResource(resourceId);
var data = await org.GetAsync();
```

相关链接

使用场景

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

局限性

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