Есть ли в Azure SDK класс python для резервирования публичного IP-адреса экземпляра? - PullRequest
1 голос
/ 02 мая 2019

Я пытаюсь зарезервировать общедоступный IP-адрес виртуальной машины Azure перед тем, как отключить или освободить его, но я не могу найти ни одного класса Python в Azure SDK для этого. Когда я выключаю свою виртуальную машину в пользовательском интерфейсе, она спрашивает, хочу ли я зарезервировать публичный IP-адрес. Я хочу класс с той же функциональностью. Как я могу решить это?

Я попытался сохранить публичный IP-адрес в переменной и передать его в сетевой адаптер после выключения моей виртуальной машины, но оказалось, что он не принимает 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 голосов
/ 02 мая 2019

Фактически, если у вас есть общедоступный IP-адрес назначения Динамический , связанный с этой виртуальной машиной Azure, пользовательский интерфейс спрашивает, хотите ли вы зарезервировать общедоступный IP-адрес при остановке виртуальной машины на портале Azure.Если у вас есть публичный IP-адрес Static до остановки виртуальной машины, то пользовательский интерфейс не спросит, хотите ли вы зарезервировать публичный IP-адрес.

Для этого, если у вас уже естьстатический публичный IP, тогда 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)

Подробнее из Создание и управление виртуальными машинами Windows в Azure с использованием Python .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...