#c# #azure #azure-marketplace
#c# #azure #azure-marketplace
Вопрос:
Не удается программно поднять виртуальную машину Azure из образа marketplace.
Код:
var linuxVM = await _azure.VirtualMachines.Define(linuxVmName)
.WithRegion(Region)
.WithExistingResourceGroup(rgName)
.WithNewPrimaryNetwork("10.0.0.0/28")
.WithPrimaryPrivateIPAddressDynamic()
.WithoutPrimaryPublicIPAddress()
.WithSpecificLinuxImageVersion(new ImageReference())
.WithRootUsername(userName)
.WithRootPassword(password)
.WithSize(VirtualMachineSizeTypes.StandardNC6sV3)
.WithPlan(new PurchasePlan("nvidia", "ngc-base-version-20-10-1", "ngc_azure_17_11"))
.CreateAsync();
В Azure я включил «Хотите развернуть программно? «Начало работы» для данного образа (как описано здесь ).
Существует несколько вариантов метода, который выбирает образ, но не уверен, какой метод следует использовать и с какими параметрами. Пробовал несколько комбинаций, но все возвращали разные сообщения об ошибках.
Не нашел примеров кода, более подробных (в которых не объясняется, как использовать изображение из marketplace).
Редактировать:
Приведенный выше код возвращает это исключение:
Microsoft.Rest.Azure.CloudException: 'This resource was created without a plan. A new plan cannot be associated with an update.'
Другая попытка с более заполненными параметрами вызывает то же исключение:
.WithSpecificLinuxImageVersion(new ImageReference(new ImageReferenceInner(
publisher: "nvidia",
offer: "ngc_azure_17_11",
sku: "ngc-base-version-20-10-1"
)))
Комментарии:
1. сможете ли вы поделиться подробностями об ошибке?
2. Я обновил вопрос
3. Где вы находите ссылку на изображение?
4. Это первая ссылка в вопросе («образ marketplace»): azuremarketplace.microsoft.com/en-us/marketplace/apps /…
Ответ №1:
Отсутствующим параметром была версия образа. Код для поднятия образа выглядит следующим образом:
var vm = await _azure.VirtualMachines.Define(linuxVmName)
.WithRegion(_region)
.WithExistingResourceGroup(_rgName)
.WithNewPrimaryNetwork("10.0.0.0/28")
.WithPrimaryPrivateIPAddressDynamic()
.WithoutPrimaryPublicIPAddress()
.WithSpecificLinuxImageVersion(new ImageReference(new ImageReferenceInner(
publisher: "nvidia",
offer: "ngc_azure_17_11",
sku: "ngc-base-version-20-10-1",
version: "20.10.1"
)))
.WithRootUsername(userName)
.WithRootPassword(password)
.WithSize(VirtualMachineSizeTypes.StandardNC6sV3)
.WithPlan(new PurchasePlan("nvidia", "ngc-base-version-20-10-1", "ngc_azure_17_11"))
.CreateAsync();
Версию можно найти в пользовательском интерфейсе:
Также можно получить все детали изображения с помощью командной строки:
Get-AzVMImageOffer -Location "West Europe" -PublisherName nvidia
Более полное руководство можно найти здесь