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

如何使用StorageManagementClient获取经典存储账户密钥?

解决经典存储账户密钥获取的问题

你遇到的问题很典型——经典存储账户和ARM存储账户使用的是完全不同的管理API,所以用针对ARM的StorageManagementClient去操作经典资源自然会报ResourceNotFound错误。

为什么常规方法不行?

常规存储账户属于Azure Resource Manager(ARM)体系,对应的资源类型是Microsoft.Storage/storageAccounts,而经典存储账户属于旧的Azure Service Management(ASM)体系,对应的资源类型是Microsoft.ClassicStorage/storageAccounts。StorageManagementClient只负责ARM资源的管理,所以找不到经典存储账户的资源记录。

正确的解决方案:使用经典存储管理客户端

要操作经典存储账户,你需要使用专门的azure-mgmt-classic-storage包,它是Azure官方提供的用于管理经典存储资源的Python SDK。

步骤1:安装依赖包

首先安装对应的SDK:

pip install azure-mgmt-classic-storage

步骤2:初始化经典存储客户端并获取密钥

下面是完整的代码示例,注意认证方式和ARM客户端类似,但客户端对象和调用方法不同:

from azure.mgmt.classic_storage import ClassicStorageManagementClient
from azure.common.credentials import ServicePrincipalCredentials

# 替换为你的Azure AD服务主体信息
credentials = ServicePrincipalCredentials(
    client_id="<你的客户端ID>",
    secret="<你的客户端密钥>",
    tenant="<你的租户ID>"
)

# 初始化经典存储管理客户端
classic_client = ClassicStorageManagementClient(
    credentials,
    "<你的订阅ID>"
)

# 获取经典存储账户的密钥
storage_account_name = "<你的经典存储账户名>"
key_result = classic_client.storage_accounts.list_keys(storage_account_name)

# 输出密钥
print(f"主存储密钥: {key_result.primary_key}")
print(f"副存储密钥: {key_result.secondary_key}")

注意事项

  • 经典存储账户不需要指定资源组参数,因为ASM体系中没有资源组的概念(在ARM控制台中看到的资源组是Azure自动映射的,不是实际ASM资源的一部分)。
  • 如果你的认证方式是证书而非Azure AD服务主体,也可以使用CertificateCredentials来初始化客户端,适配旧的ASM认证流程。

内容的提问来源于stack exchange,提问作者Jul_DW

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 06:40:58