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

如何按指定Azure资源组列出虚拟机(VM)

筛选列出Azure指定资源组中的虚拟机

你的现有脚本会遍历订阅下所有资源组并列出其中的VM,要只显示指定资源组的VM,只需要简化逻辑,直接针对目标资源组查询即可,不用遍历所有资源组。

修改后的代码:

from azure.mgmt.compute import ComputeManagementClient
from azure.mgmt.resource import SubscriptionClient
from azure.identity import DefaultAzureCredential
from azure.common import credentials

# 指定目标资源组名称
resource_group_name = "MyResourceGroup"

# 认证逻辑保持不变
CREDENTIAL = DefaultAzureCredential(exclude_shared_token_cache_credential=True, exclude_visual_studio_code_credential=True, exclude_environment_credential=True, exclude_managed_identity_credential=True, 
                                    exclude_powershell_credential=True, exclude_interactive_browser_credential=True)
subscription_id = credentials.get_azure_cli_credentials()[1]
subscription_name = SubscriptionClient(CREDENTIAL).subscriptions.get(subscription_id).display_name

compute_client = ComputeManagementClient(CREDENTIAL, subscription_id)

def list_vms_in_resource_group(group_name):
    # 直接查询指定资源组下的所有VM
    vms = compute_client.virtual_machines.list(group_name)
    for vm in vms:
        print(f"虚拟机名称: {vm.name}, 资源组: {group_name}")

if __name__ == '__main__':
    # 直接调用指定资源组的VM查询函数
    list_vms_in_resource_group(resource_group_name)

关键改动说明:

  • 移除了ResourceManagementClient和遍历所有资源组的逻辑,因为不需要再遍历所有组
  • 简化函数为list_vms_in_resource_group,直接接收目标资源组名称作为参数
  • 输出时添加资源组信息,方便确认目标组的VM

可选优化:添加资源组存在性检查

如果担心指定的资源组不存在导致报错,可以添加资源组验证逻辑(需要保留ResourceManagementClient):

from azure.mgmt.resource import ResourceManagementClient

# ... 其他代码不变 ...

resource_client = ResourceManagementClient(CREDENTIAL, subscription_id)

def list_vms_in_resource_group(group_name):
    # 先检查资源组是否存在
    try:
        resource_client.resource_groups.get(group_name)
    except Exception as e:
        print(f"资源组 {group_name} 不存在或无权限访问: {str(e)}")
        return
    
    # 查询并列出VM
    vms = compute_client.virtual_machines.list(group_name)
    for vm in vms:
        print(f"虚拟机名称: {vm.name}, 资源组: {group_name}")

这样就能精准只列出你指定的MyResourceGroup中的所有虚拟机了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 05:34:55