You need to enable JavaScript to run this app. Azure Government环境获取Azure VM数据报SubscriptionNotFound错误如何解决
优惠活动
大模型
产品
解决方案
定价
更多

Azure Government环境获取Azure VM数据报SubscriptionNotFound错误如何解决

问题核心原因

你仅给DefaultAzureCredential指定了Azure Government的认证 authority,但是ComputeManagementClient默认使用Azure公有云的资源管理端点,请求被发送到公有云环境,自然找不到政府云租户下的订阅。

解决方案

1. 修改ComputeManagementClient初始化配置,适配政府云端点

实例化ComputeManagementClient时主动指定Azure Government的资源管理端点base_url,修改后的函数代码如下:

"""
    Instantiate the ComputeManagementClient with the appropriate credentials.

    @return ComputeManagementClient object
"""
def get_access_to_virtual_machine():
    subscription_id = key.SUBSCRIPTION_ID
    credentials = DefaultAzureCredential(authority = AzureAuthorityHosts.AZURE_GOVERNMENT, 
                                        exclude_environment_credential = True,
                                        exclude_managed_identity_credential = True,
                                        exclude_shared_token_cache_credential = True)
    client = KeyClient(vault_url = key.VAULT_URL, credential = credentials)                     
    # 新增base_url参数指定政府云管理端点
    compute_client = ComputeManagementClient(
        credential=credentials,
        subscription_id=subscription_id,
        base_url="https://management.usgovcloudapi.net/"
    )
    return compute_client

2. 校验基础配置

  • 确认key.SUBSCRIPTION_ID填写的是Azure Government租户下的有效订阅ID,不要误用公有云订阅ID
  • 确认当前凭据对应的身份(本地开发对应Azure CLI登录的账号、部署后对应托管身份/服务主体)已被加入该政府云订阅的IAM权限列表,至少拥有虚拟机读取权限
  • 本地开发测试前需要先把Azure CLI切换到政府云环境,执行命令:
    az cloud set --name AzureUSGovernment
    再执行az login登录政府云账号,否则DefaultAzureCredential会获取到公有云的身份凭证,导致权限验证失败。

3. 可选:升级SDK稳定版

你当前使用的azure-mgmt-compute==17.0.0b1是较老的预览版本,对政府云的适配存在已知问题。如果修改端点后仍报错,可以卸载预览版安装稳定版:

pip uninstall azure-mgmt-compute -y
pip install azure-mgmt-compute>=28.0.0

配置验证

修改完成后可以先加一段代码验证订阅访问是否正常:

compute_client = get_access_to_virtual_machine()
for sub in compute_client.subscriptions.list():
    print(f"订阅ID:{sub.subscription_id},订阅名称:{sub.display_name}")

如果打印结果包含你要使用的订阅ID,说明配置正常,再调用虚拟机查询接口即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 18:54:03