是否有任何python API可以获取Azure

时间:2016-05-17 01:53:59

标签: python azure

我想用python SDK控制Azure中的VM。是否有任何API可以根据VM的名称获取VM的IP地址(内部或外部)?

2 个答案:

答案 0 :(得分:5)

根据我的理解,我认为你想要获得公众和使用Azure SDK for Python的Azure VM的私有IP地址。

要获取这些IP地址(内部和外部),请参阅以下代码。

from azure.mgmt.network import NetworkManagementClient, NetworkManagementClientConfiguration

subscription_id = '33333333-3333-3333-3333-333333333333'

credentials = ...

network_client = NetworkManagementClient(
    NetworkManagementClientConfiguration(
        credentials,
        subscription_id
    )
)

GROUP_NAME = 'XXX'
VM_NAME = 'xxx'
PUBLIC_IP_NAME = VM_NAME

public_ip_address = network_client.public_ip_addresses.get(GROUP_NAME, PUBLIC_IP_NAME)
print(public_ip_address.ip_address)
print(public_ip_address.ip_configuration.private_ip_address)

作为参考,您可以参考以下文档了解上述代码的详细信息。

  1. Resource Management Authentication使用Python作为变量credentials
  2. Create the management client代表变量network_client
  3. azure.mgmt.network包的详细信息,请参阅http://azure-sdk-for-python.readthedocs.io/en/latest/ref/azure.mgmt.network.html

答案 1 :(得分:0)

对于没有为其VM分配公共IP的人,有一种方法可以在不创建公共IP的情况下获取私有IP。

from azure.mgmt.network import NetworkManagementClient, NetworkManagementClientConfiguration

subscription_id = '' 
credentials = UserPassCredentials(
    'user@yes.com',
    'password',
)

network_client = NetworkManagementClient(
    credentials,
    subscription_id
)

private_ip = network_client.network_interfaces.get(GROUP_NAME, NETWORK_INTERFACE_NAME).ip_configurations[0].private_ip_address

这可以在azure-sdk-for-python版本2.0.0rc6上进行测试。