#azure #azure-virtual-machine
#azure #azure-виртуальная машина
Вопрос:
Я пишу программу на Java, которая создает экземпляр виртуальной машины в Azure, загружает скрипт в контейнер, загружает и выполняет скрипт в виртуальной машине. Однако в настоящее время я сталкиваюсь с трудностями при предоставлении доступа компьютера к контейнеру. Когда машина уже запущена, я могу вручную перейти в Azure и назначить роль с доступом, однако я хочу сделать это в своей программе (при создании виртуальной машины) до запуска машины, чтобы программа могла работать непрерывно. Есть ли способ сделать это? Из документации
В настоящее время портал Azure не поддерживает назначение назначенного пользователем управляемого удостоверения при создании виртуальной машины. Вместо этого обратитесь к одной из следующих статей быстрого запуска создания виртуальной машины, чтобы сначала создать виртуальную машину, а затем перейдите к следующему разделу для получения подробной информации о назначении виртуальной машине назначенного пользователем управляемого удостоверения
Правильно ли я понимаю, что это невозможно? Есть ли обходной путь?
Ответ №1:
Возможно, документ просто означает, что вы не можете сделать это на портале, а не в коде.
В вашем случае, на самом деле, я не уверен, что вы хотите использовать идентификатор, назначенный системой, или идентификатор, назначенный пользователем.
Вот пример, который создает виртуальную машину Linux с включенным системным идентификатором withSystemAssignedManagedServiceIdentity
, если вы хотите использовать идентификатор, назначенный пользователем, вы можете изменить код для использования WithUserAssignedManagedServiceIdentity
, вы можете указать существующий или еще не созданный идентификатор, назначенный пользователем, это зависит от ваших требований.
VirtualMachine virtualMachine = azureResourceManager.virtualMachines()
.define(linuxVMName)
.withRegion(region)
.withNewResourceGroup(rgName)
.withNewPrimaryNetwork("10.0.0.0/28")
.withPrimaryPrivateIPAddressDynamic()
.withNewPrimaryPublicIPAddress(pipName)
.withPopularLinuxImage(KnownLinuxVirtualMachineImage.UBUNTU_SERVER_16_04_LTS)
.withRootUsername(userName)
.withRootPassword(password)
.withSize(VirtualMachineSizeTypes.STANDARD_DS2_V2)
.withOSDiskCaching(CachingTypes.READ_WRITE)
.withSystemAssignedManagedServiceIdentity()
.create();
Комментарии:
1. Ах, я неправильно понял, что это вообще невозможно. Спасибо за объяснение и предоставление примера!