我正在尝试关闭或取消分配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)
答案 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的更多详细信息。