Azure SDK中是否有python类来保留实例的公共IP地址?

时间:2019-05-02 00:36:13

标签: python azure sdk

我正在尝试关闭或取消分配Azure VM之前保留Azure VM的公共IP地址,但是为此我无法在Azure SDK中找到任何python类。当我在UI中关闭虚拟机时,它询问我是否要保留公共IP地址。我希望该类具有相同的功能。我该怎么解决?

我尝试在虚拟机关闭后将公共IP保存到变量并将其传递给NIC,但事实证明它不接受我提供的IP。

network_client = NetworkManagementClient(credentials=setup['values'], subscription_id=test_bed.subscription_id)

parapip = network_client.models().PublicIPAddress(location='West US', public_ip_allocation_method='Static', ip_address='104.42.218.83')

network_client.public_ip_addresses.create_or_update(resource_group_name=setup['resource_group_name'], public_ip_address_name='mgmt2-pip-jp07zf', parameters=parapip)

1 个答案:

答案 0 :(得分:0)

实际上,如果您具有与该Azure VM相关联的动态分配公共IP地址,则UI会在您停止Azure门户中的VM时询问您是否要保留公共IP地址。如果在停止VM之前具有静态分配公用IP地址,则UI不会询问您是否要保留公用IP地址。

为此,如果您已经有一个静态公共IP,那么如果您停止VM,该IP地址也不会丢失。您可以更改代码以设置动态IP地址。例如,要为虚拟机创建一个公共IP地址,请将此功能添加到.py文件中的变量之后:

def create_public_ip_address(network_client): public_ip_addess_params = { 'location': LOCATION, 'public_ip_allocation_method': 'Dynamic' } creation_result = network_client.public_ip_addresses.create_or_update( GROUP_NAME, 'myIPAddress', public_ip_addess_params ) return creation_result.result()

如果要取消分配虚拟机,则可以使用以下代码,

def stop_vm(compute_client):
    compute_client.virtual_machines.deallocate(GROUP_NAME, VM_NAME)

来自Create and manage Windows VMs in Azure using Python的更多详细信息。