Azure — назначить виртуальной машине управляемый идентификационный доступ перед установкой

#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. Ах, я неправильно понял, что это вообще невозможно. Спасибо за объяснение и предоставление примера!