Azure虚拟机操作

时间:2018-12-20 12:55:58

标签: python azure

我是天蓝色的新手。我正在学习天蓝色的python sdk,并且有一些疑问。

  1. 我没有使用任何凭据登录azure帐户,仍然可以访问 在下面的代码中订阅了VM,如何?
  2. 我正在尝试使用list_all()获取所有VM的列表,该文档在Azure文档https://docs.microsoft.com/en-us/python/api/azure-mgmt-compute/azure.mgmt.compute.v2018_10_01.operations.virtualmachinesoperations?view=azure-python#list-all-custom-headers-none--raw-false----operation-config-中存在 ,如何获取虚拟机列表,或如何遍历VirtualMachinePaged object返回的list_all()以获得虚拟机列表?
  3. 当我尝试使用#print(client.virtual_machines.get(resource_group_name='GSLab', vm_name='GSLabVM2'))打印VM的名称时,出现错误Resource group 'GSLab' could not be found. ,我检查并确保'GSLab'中资源组的名称,那么为什么会出现此错误?

这是我的代码,谢谢,如果可能的话,请提出任何其他来源以更好地理解这些概念。

from azure.common.client_factory import get_client_from_auth_file
from azure.mgmt.compute import ComputeManagementClient

client = get_client_from_auth_file(ComputeManagementClient)
#print(client)

vmlist = client.virtual_machines.list_all()
print(vmlist)
for vm in vmlist:
    print(vm.name)

print(client.virtual_machines.get(resource_group_name='GSLab', vm_name='GSLabVM2'))

2 个答案:

答案 0 :(得分:1)

vmlist = client.virtual_machines.list_all()
for vm in vmlist:
    print(vm.name)

此代码也是正确的,

client.virtual_machines.get(resource_group_name='GSLab', vm_name='GSLabVM2')

如果它们都不返回您对错误订阅进行身份验证的内容,则需要对正确的订阅进行身份验证。

检查您是否得到一些输出的简单方法:

vmlist.next().name

答案 1 :(得分:1)

问题1:您从设置的身份验证文件中获取凭据,并且服务主体位于其中。

第二季度:您只需删除print(vmlist),然后一切正常。

第三季度:

代码:

client.virtual_machines.get(resource_group_name='GSLab', vm_name='GSLabVM2')

结果将如下所示:

enter image description here

因此,您需要检查在认证文件中设置的订阅中是否确实存在资源组“ GSLab”。