You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Blob ARM资源ID获取属性及C# Azure SDK等效实现问询

实现方案

你给出的示例资源ID实际是存储账户的ARM ID,要获取存储账户下的Blob相关属性(包括primaryEndpoints),可以使用Azure官方C#资源管理SDK实现,具体步骤如下:

步骤1:安装所需NuGet包

  • 核心资源管理包:Azure.ResourceManager
  • 存储资源管理专用包:Azure.ResourceManager.Storage

步骤2:代码实现示例

using Azure.Core;
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Storage;

// 1. 构造ArmClient,使用默认Azure身份认证(可根据部署场景替换为其他认证方式)
ArmClient armClient = new ArmClient(new DefaultAzureCredential());

// 2. 填写存储账户ARM ID
string storageAccountArmId = "/subscriptions/abffff89-2c76-424a-af4c-34b2512a3cb4/resourceGroups/foo-bar-test-rg/providers/Microsoft.Storage/storageAccounts/foobar";

// 3. 将ARM ID转换为强类型资源ID对象
StorageAccountResourceId storageAccountResourceId = StorageAccountResourceId.Parse(storageAccountArmId);

// 4. 获取存储账户资源实例
StorageAccountResource storageAccount = armClient.GetStorageAccountResource(storageAccountResourceId);

// 5. 拉取存储账户最新属性
Response<StorageAccountResource> response = await storageAccount.GetAsync();
StorageAccountProperties properties = response.Value.Data.Properties;

// 6. 读取所需属性,比如Blob服务主端点
string blobPrimaryEndpoint = properties.PrimaryEndpoints.Blob.ToString();
Console.WriteLine($"Blob服务主端点:{blobPrimaryEndpoint}");

// 其他常用可获取属性示例:
// 存储账户类型:properties.Kind
// 冗余策略:properties.Sku.Name
// 启用异地冗余时的次要Blob端点:properties.SecondaryEndpoints?.Blob?.ToString()

注意事项

  • 如果你持有的是单个Blob对象的ARM ID而非存储账户ID,可先从Blob ARM ID中提取存储账户ID段再执行上述逻辑。单个Blob的ARM ID结构示例:/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/blobServices/default/containers/xxx/blobs/xxx,按/分割字符串后取前8段拼接即可得到对应存储账户的ARM ID
  • 认证方式可根据部署场景灵活替换,比如托管身份、服务主体、本地Azure CLI认证等,DefaultAzureCredential会自动按优先级匹配当前环境可用的认证凭据

内容的提问来源于stack exchange,提问作者Node.JS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:42:01