我试图在关闭或取消分配 Azure VM 之前保留它的公共(public) IP 地址,但我无法在 Azure SDK 中找到任何用于此目的的 Python 类。当我在 UI 中关闭虚拟机时,它会询问我是否要保留公共(public) IP 地址。我想要具有相同功能的类。我该如何解决这个问题?
我尝试将公共(public) 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)
最佳答案
事实上,如果您有一个与该 Azure VM 关联的动态分配公共(public) IP 地址,当您在 Azure 门户中停止该 VM 时,UI 会询问您是否要保留该公共(public) IP 地址。如果您在停止虚拟机之前有静态分配公共(public) IP 地址,则 UI 不会询问您是否要保留公共(public) IP 地址。
为此,如果您已经拥有静态公共(public) IP,则即使停止 VM,该 IP 地址也不会丢失。您可以更改代码以动态设置 IP 地址。例如,要为虚拟机创建公共(public) IP 地址,请在 .py
文件中的变量后面添加此函数:
def create_public_ip_address(network_client):
公共(public) IP 地址参数 = {
“位置”:位置,
'public_ip_allocation_method': '动态'
}
创建结果 = network_client.public_ip_addresses.create_or_update(
团队名字,
'我的IP地址',
公共(public)IP地址参数
)
返回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 .
关于python - Azure SDK中是否有一个python类来保留实例的公共(public)IP地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55944314/