Приложение виртуальной машины — это тип ресурса в коллекции вычислений Azure, которая упрощает управление, совместное использование и глобальное распространение приложений для виртуальных машин.
Дополнительные сведения о приложении виртуальной машины
Убедитесь, что у учетной записи хранения есть общедоступный доступ или используется универсальный код ресурса (URI) SAS с правами чтения, так как другие уровни ограничений завершаются сбоем развертывания. Вы можете быстро создать URI SAS с помощью Обозревателя службы хранилища, если он еще не создан.
Если вы работаете с PowerShell, используйте Az.Storage версии 3.11.0.
- Перейдите на портал Azure, а затем найдите и выберите службу Коллекция вычислений Azure.
- Выберите в списке необходимую коллекцию.
- На странице коллекции выберите Добавить в верхней части страницы, а затем в раскрывающемся списке выберите пункт Определение приложения виртуальной машины. Откроется страница определения приложения виртуальной машины.
- На вкладке Основные сведения введите имя приложения и укажите, предназначено ли оно для виртуальных машин под управлением Linux или Windows.
- Выберите вкладку "Параметры публикации ", если вы хотите указать любой из следующих необязательных параметров для определения приложения виртуальной машины:
- Описание определения приложения виртуальной машины.
- Дата окончания жизненного цикла
- Ссылка на лицензионное соглашение конечного пользователя (EULA)
- URI заявления о конфиденциальности
- URI для заметок о выпуске
- Когда все будет готово, выберите Просмотр и создание.
- После завершения проверки выберите Создать, чтобы развернуть определение.
- По завершении развертывания выберите элемент Перейти к ресурсу.
- На странице приложения выберите Создать версию приложения виртуальной машины. Откроется страница "Создание версии приложения виртуальной машины".
- Введите номер версии, например 1.0.0.
- Выберите регион, в котором отправляются пакеты приложений.
- В разделе Исходный пакет приложения нажмите кнопку Обзор. Выберите учетную запись хранения, а затем контейнер, в котором находится пакет. Выберите пакет из списка и нажмите кнопку "Выбрать " после завершения. Кроме того, при необходимости вы можете вставить универсальный код ресурса (URI) SAS в это поле.
- Укажите сценарий установки. Вы также можете указать сценарий удаления и скрипт обновления. Сведения о том, как создать скрипты, см. в обзоре.
- Если в учетную запись хранения был передан файл конфигурации по умолчанию, его можно выбрать в разделе Конфигурация по умолчанию.
- Выберите Исключить из последних, если не хотите, чтобы эта версия отображалась как последняя при создании виртуальной машины.
- В поле срок Дата окончания жизненного цикла выберите дату в будущем, не которую хотите запланировать отказ от использования этой версии. Она не будет удалена автоматически: эти сведения предназначены только для вашего собственного отслеживания.
- Чтобы реплицировать эту версию в другие регионы, перейдите на вкладку "Репликация" , добавьте дополнительные регионы и внесите изменения в количество реплик в каждом регионе. Исходный регион, в котором была создана ваша версия, должен быть в списке и не может быть удален.
- По завершении выберите Проверить и создать в нижней части страницы.
- Когда проверка отобразится как пройденная, выберите Создать, чтобы развернуть версию приложения виртуальной машины.
Создайте определение приложения виртуальной машины с помощью New-AzGalleryApplication
. В этом примере мы создадим приложение Linux с именем myApp в коллекции вычислений Azure myGallery и в группе ресурсов myGallery. Замените значения переменных по мере необходимости.
$galleryName = "myGallery"
$rgName = "myResourceGroup"
$applicationName = "myApp"
$description = "Backend Linux application for finance."
New-AzGalleryApplication `
-ResourceGroupName $rgName `
-GalleryName $galleryName `
-Location "East US" `
-Name $applicationName `
-SupportedOSType Linux `
-Description $description
Создайте версию приложения виртуальной машины с помощью New-AzGalleryApplicationVersion
. В номере версии можно использовать цифры и точки. Числа должны быть в диапазоне 32-битного целого числа. Формат: основной номер версии.дополнительный номер версии.исправление.
В этом примере мы создаем номер версии 1.0.0. При необходимости замените значения переменных.
$galleryName = "myGallery"
$rgName = "myResourceGroup"
$applicationName = "myApp"
$version = "1.0.0"
New-AzGalleryApplicationVersion `
-ResourceGroupName $rgName `
-GalleryName $galleryName `
-GalleryApplicationName $applicationName `
-Name $version `
-PackageFileLink "https://<storage account name>.blob.core.windows.net/<container name>/<filename>" `
-DefaultConfigFileLink "https://<storage account name>.blob.core.windows.net/<container name>/<filename>" `
-Location "East US" `
-Install "mv myApp .\myApp\myApp" `
-Remove "rm .\myApp\myApp" `
Для приложений виртуальных машин требуется Azure CLI версии 2.30.0 или более поздней.
Создайте определение приложения виртуальной машины с помощью az sig gallery-application create. В этом примере мы создадим определение приложения виртуальной машины с именем myApp для виртуальных машин под управлением Linux.
az sig gallery-application create \
--application-name myApp \
--gallery-name myGallery \
--resource-group myResourceGroup \
--os-type Linux \
--location "East US"
Создайте версию приложения виртуальной машины с помощью команды az sig gallery-application version create. В номере версии можно использовать цифры и точки. Числа должны быть в диапазоне 32-битного целого числа. Формат: основной номер версии.дополнительный номер версии.исправление.
Замените значения параметров своими значениями.
az sig gallery-application version create \
--version-name 1.0.0 \
--application-name myApp \
--gallery-name myGallery \
--location "East US" \
--resource-group myResourceGroup \
--package-file-link "https://<storage account name>.blob.core.windows.net/<container name>/<filename>" \
--install-command "mv myApp .\myApp\myApp" \
--remove-command "rm .\myApp\myApp" \
--update-command "mv myApp .\myApp\myApp" \
--default-configuration-file-link "https://<storage account name>.blob.core.windows.net/<container name>/<filename>"\
Создать определение приложения виртуальной машины с помощью API создания приложения для галереи
PUT
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}?api-version=2024-03-03
{
"location": "West US",
"name": "myApp",
"properties": {
"supportedOSType": "Windows | Linux",
"endOfLifeDate": "2020-01-01",
"description": "Description of the App",
"eula": "Link to End-User License Agreement (EULA)",
"privacyStatementUri": "Link to privacy statement for the application",
"releaseNoteUri": "Link to release notes for the application"
}
}
Имя поля |
Описание |
Ограничения |
имя |
Уникальное имя виртуального машинного приложения в галерее. |
Максимальная длина: 117 символов. Допустимые символы: прописные или строчные буквы, цифры, дефис (-), точка (.), символ подчеркивания (_). Имена не должны заканчиваться точкой (.). |
ТипПоддерживаемойОС |
Определите поддерживаемый тип ОС. |
"Windows" или "Linux" |
Дата окончания жизненного цикла |
Будущая дата окончания жизненного цикла приложения. Дата указана только для ссылки и не применяется. |
Допустимая дата создания |
описание |
Необязательно. Описание приложения. |
|
eula |
Необязательно. Ссылка на лицензионное соглашение End-User (EULA). |
|
URI заявления о конфиденциальности |
Необязательно. Ссылка на заявление о конфиденциальности для приложения. |
|
releaseNoteUri |
Необязательно. Ссылка на заметки о выпуске приложения. |
|
Создайте версию приложения виртуальной машины с использованием API создания версии приложения галереи.
PUT
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{versionName}?api-version=2024-03-03
{
"location": "$location",
"properties": {
"publishingProfile": {
"source": {
"mediaLink": "$mediaLink",
"defaultConfigurationLink": "$configLink"
},
"manageActions": {
"install": "echo installed",
"remove": "echo removed",
"update": "echo update"
},
"targetRegions": [
{
"name": "West US",
"regionalReplicaCount": 1
},
{
"name": "East US"
}
]
"endofLifeDate": "datetime",
"replicaCount": 1,
"excludeFromLatest": false,
"storageAccountType": "PremiumV2_LRS | Premium_LRS | Standard_LRS | Standard_ZRS"
"safetyProfile": {
"allowDeletionOfReplicatedLocations": false
}
"settings": {
"scriptBehaviorAfterReboot": "None | Rerun",
"configFileName": "$appConfigFileName",
"packageFileName": "$appPackageFileName"
}
}
}
Имя поля |
Описание |
Ограничения |
расположение |
Исходное расположение версии приложения ВМ. |
Допустимый регион Azure |
mediaLink |
URL-адрес, содержащий пакет версии приложения. |
Допустимый и существующий URL-адрес хранилища |
ссылка на конфигурацию по умолчанию |
Необязательно. URL-адрес, содержащий конфигурацию по умолчанию, который может быть переопределен во время развертывания. |
Допустимый и существующий URL-адрес хранилища |
Установка |
Команда для установки приложения. |
Допустимая команда для заданной ОС |
Удалить |
Команда для удаления приложения. |
Допустимая команда для заданной ОС |
Обновить |
Необязательно. Команда для обновления приложения. Если не указано и обновление требуется, старая версия удаляется и установлена новая. |
Допустимая команда для заданной ОС |
имяЦелевыеРегионы |
Имя региона, куда нужно реплицировать. |
Допустимый регион Azure |
ЦелевыеРегионы/КоличествоРегиональныхРеплик |
Необязательно. Число реплик в создаваемом регионе. По умолчанию равен 1. |
Целое число от 1 до 3 (включительно). |
репликаCount |
Необязательно. Определяет количество реплик в каждом регионе. Вступает в силу, если региональныйreplicaCount не определен. |
Целое число от 1 до 3 (включительно). |
Дата окончания жизненного цикла |
Будущая дата окончания жизненного цикла для версии приложения. Это свойство предназначено только в качестве справки для клиентов и не является обязательным. |
Допустимая дата создания |
Тип учетной записи хранилища |
Необязательно. Тип учетной записи хранения, используемой в каждом регионе для хранения пакета приложения. По умолчанию используется Standard_LRS. |
Это свойство не может быть обновлено. |
разрешитьУдалениеРеплицированныхЛокаций |
Необязательно. Указывает, разрешено ли удаление этой версии образа коллекции из реплицированных регионов. |
|
настройки/поведениеСценарияПослеПерезагрузки |
Необязательно. Действие, которое необходимо выполнить для установки, обновления или удаления приложения коллекции после перезагрузки виртуальной машины. |
|
Настройки/configFileName |
Необязательно. Имя, назначаемое скачанный файл пакета на виртуальной машине. Если файл пакета не указан, он называется таким же, как имя приложения коллекции. |
Это ограничено 4096 символами. |
настройки/packageFileName |
Необязательно. Имя, назначаемое скачанным файлом конфигурации на виртуальной машине. Если не указано, файл конфигурации называется именем Приложения Галереи с добавлением '_config'. |
Это ограничено 4096 символами. |
Теперь можно создать виртуальную машину и развернуть на ней приложение виртуальной машины с помощью портала. Просто создайте виртуальную машину, как обычно, а затем на вкладке Дополнительно выберите Выбрать приложение виртуальной машины для установки.
Выберите приложение виртуальной машины из списка и нажмите кнопку "Сохранить " в нижней части страницы.
Если вам требуется установить несколько приложений виртуальных машин, можно задать порядок их установки на вкладке Дополнительно.
Вы также можете развернуть приложение виртуальной машины для работающих виртуальных машин. Просматривая сведения о виртуальной машине на портале, выберите Расширения и приложения в разделе Параметры в меню слева.
Щелкните элемент Приложения виртуальных машин и выберите Добавить приложение, чтобы добавить приложение виртуальной машины.
Выберите приложение виртуальной машины из списка и нажмите кнопку "Сохранить " в нижней части страницы.
Установите приложение виртуальной машины на существующую виртуальную машину с помощью команды 'az vm application set' и замените значения параметров своими.
az vm application set \
--resource-group myResourceGroup \
--name myVM \
--app-version-ids /subscriptions/{subID}/resourceGroups/MyResourceGroup/providers/Microsoft.Compute/galleries/myGallery/applications/myApp/versions/1.0.0 \
--treat-deployment-as-failure true
Чтобы задать несколько приложений на виртуальной машине, используйте следующий фрагмент кода:
az vm application set \
--resource-group myResourceGroup \
--name myVM \
--app-version-ids /subscriptions/{subId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/applications/myApp/versions/1.0.0 /subscriptions/{subId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/applications/myApp2/versions/1.0.1 \
--treat-deployment-as-failure true true
Чтобы добавить приложение в масштабируемый набор виртуальных машин, используйте az vmss application set:
az vmss application set \
--resource-group myResourceGroup \
--name myVmss \
--app-version-ids /subscriptions/{subId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/applications/myApp/versions/1.0.0 \
--treat-deployment-as-failure true
Чтобы добавить несколько приложений в масштабируемый набор виртуальных машин, выполните приведенные действия.
az vmss application set \
--resource-group myResourceGroup \
--name myVmss
--app-version-ids /subscriptions/{subId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/applications/myApp/versions/1.0.0 /subscriptions/{subId}/resourceGroups/myResourceGroup/providers/Microsoft.Compute/galleries/myGallery/applications/myApp2/versions/1.0.0 \
--treat-deployment-as-failure true
Чтобы добавить приложение в существующую виртуальную машину, получите версию приложения и на ее основе определите идентификатор версии приложения виртуальной машины. С помощью идентификатора добавьте приложение в конфигурацию виртуальной машины.
$galleryName = "myGallery"
$rgName = "myResourceGroup"
$applicationName = "myApp"
$version = "1.0.0"
$vmName = "myVM"
$vm = Get-AzVM -ResourceGroupName $rgname -Name $vmName
$appVersion = Get-AzGalleryApplicationVersion `
-GalleryApplicationName $applicationName `
-GalleryName $galleryName `
-Name $version `
-ResourceGroupName $rgName
$packageId = $appVersion.Id
$app = New-AzVmGalleryApplication -PackageReferenceId $packageId
Add-AzVmGalleryApplication -VM $vm -GalleryApplication $app -TreatFailureAsDeploymentFailure true
Update-AzVM -ResourceGroupName $rgName -VM $vm
Чтобы добавить приложение в масштабируемый набор виртуальных машин, выполните следующие действия.
$vmss = Get-AzVmss -ResourceGroupName $rgname -Name $vmssName
$appVersion = Get-AzGalleryApplicationVersion `
-GalleryApplicationName $applicationName `
-GalleryName $galleryName `
-Name $version `
-ResourceGroupName $rgName
$packageId = $appVersion.Id
$app = New-AzVmssGalleryApplication -PackageReferenceId $packageId
Add-AzVmssGalleryApplication -VirtualMachineScaleSetVM $vmss.VirtualMachineProfile -GalleryApplication $app
Update-AzVmss -ResourceGroupName $rgName -VirtualMachineScaleSet $vmss -VMScaleSetName $vmssName
Чтобы добавить версию приложения виртуальной машины на виртуальную машину, выполните размещение (PUT) на виртуальной машине.
PUT
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{VMName}?api-version=2024-03-03
{
"properties": {
"applicationProfile": {
"galleryApplications": [
{
"order": 1,
"packageReferenceId": "/subscriptions/{subscriptionId}/resourceGroups/<resource group>/providers/Microsoft.Compute/galleries/{gallery name}/applications/{application name}/versions/{version | latest}",
"configurationReference": "{path to configuration storage blob}",
"treatFailureAsDeploymentFailure": false
}
]
}
},
"name": "{vm name}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resource group}/providers/Microsoft.Compute/virtualMachines/{vm name}",
"location": "{vm location}"
}
Чтобы применить приложение виртуальной машины к однородному масштабируемому набору:
PUT
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{VMSSName}?api-version=2024-03-03
{
"properties": {
"virtualMachineProfile": {
"applicationProfile": {
"galleryApplications": [
{
"order": 1,
"packageReferenceId": "/subscriptions/{subscriptionId}/resourceGroups/<resource group>/providers/Microsoft.Compute/galleries/{gallery name}/applications/{application name}/versions/{version | latest}",
"configurationReference": "{path to configuration storage blob}",
"treatFailureAsDeploymentFailure": false
}
]
}
}
},
"name": "{vm name}",
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resource group}/providers/Microsoft.Compute/virtualMachines/{vm name}",
"location": "{vm location}"
}
Имя поля |
Описание |
Ограничения |
заказ |
Необязательно. Приоритет развертывания приложений. |
Допустимое целое число |
packageReferenceId |
Ссылка на версию приложения галереи. Используйте ключевое слово "latest" для автоматической установки последней доступной версии. |
Допустимая ссылка на версию приложения |
configurationReference |
Необязательно. Полный URL-адрес большого двоичного объекта хранилища, содержащего конфигурацию для этого развертывания. Это переопределяет любое значение, указанное ранее для настройки конфигурации по умолчанию. |
Допустимая ссылка на BLOB-объект хранилища |
treatFailureAsDeploymentFailureFailure |
Необязательно. Когда включено, неудача развертывания приложения приводит к тому, что статус подготовки виртуальной машины сообщается как неисправный. |
True или False |
Поле приоритета можно использовать для настройки зависимостей между приложениями. Правила заказа приведены следующим образом:
Регистр |
Значение установки |
Значение сбоя |
Приоритет не указан |
Приложения, для которых не указан приоритет, устанавливаются после тех, для которых он указан. Нет гарантии порядка установки среди неупорядоченных приложений. |
Сбои при установке других приложений (независимо от того, указан ли для них приоритет) не влияют на установку приложений, для которых приоритет не указан. |
Дублирующиеся значения приоритета |
Приложение устанавливается в любом порядке по сравнению с другими приложениями с тем же порядком. Все приложения одного и того же порядка устанавливаются после тех, которые имеют более низкий порядок, и до тех, которые имеют более высокий порядок. |
Если предыдущее приложение с более низким порядком не удалось установить, приложения с этим порядком не установлены. Если любое приложение с этим заказом не удается установить, ни одно приложение с более высоким порядком установки. |
Увеличение приоритета |
Приложение будет установлено после тех, у которых более низкие порядки, и до тех, у которых более высокие порядки. |
Если предыдущее приложение с более низким порядком не удалось установить, это приложение не устанавливается. Если это приложение не удается установить, приложение с более высоким порядком установки не выполняется. |
Ответ включает полную модель виртуальной машины. Далее идут важные элементы.
{
"name": "{vm name}",
"id": "{vm id}",
"type": "Microsoft.Compute/virtualMachines",
"location": "{vm location}",
"properties": {
"applicationProfile": {
"galleryApplications": ""
},
"provisioningState": "Updating"
},
"resources": [
{
"name": "VMAppExtension",
"id": "{extension id}",
"type": "Microsoft.Compute/virtualMachines/extensions",
"location": "centraluseuap",
"properties": "@{autoUpgradeMinorVersion=True; forceUpdateTag=7c4223fc-f4ea-4179-ada8-c8a85a1399f5; provisioningState=Creating; publisher=Microsoft.CPlat.Core; type=VMApplicationManagerLinux; typeHandlerVersion=1.0; settings=}"
}
]
}
Чтобы отобразить состояние приложения виртуальной машины, перейдите к параметрам на вкладке Extensions + apps (Расширения и приложения) и проверьте состояние VMAppExtension:
Чтобы отобразить состояние приложения виртуальной машины для масштабируемого набора, перейдите на страницу масштабируемых наборов виртуальных машин на портале Azure, а затем раздел "Экземпляры", выберите один из перечисленных масштабируемых наборов, а затем перейдите к VMAppExtension:
Чтобы проверить состояние развертывания приложения на виртуальной машине, используйте команду az vm get-instance-view:
az vm get-instance-view -g myResourceGroup -n myVM --query "instanceView.extensions[?name == 'VMAppExtension']"
Чтобы проверить состояние развертывания приложения в масштабируемом наборе виртуальных машин, используйте команду az vmss get-instance-view:
az vmss get-instance-view --ids (az vmss list-instances -g myResourceGroup -n myVmss --query "[*].id" -o tsv) --query "[*].extensions[?name == 'VMAppExtension']"
Примечание.
Предыдущая команда состояния развертывания масштабируемых наборов виртуальных машин не выводит идентификатор экземпляра с результатом. Чтобы показать идентификатор экземпляра с состоянием расширения в каждом экземпляре, требуется некоторое количество дополнительных скриптов. См. следующий пример интерфейса командной строки, содержащий синтаксис PowerShell:
$ids = az vmss list-instances -g myResourceGroup -n myVmss --query "[*].{id: id, instanceId: instanceId}" | ConvertFrom-Json
$ids | Foreach-Object {
$iid = $_.instanceId
Write-Output "instanceId: $iid"
az vmss get-instance-view --ids $_.id --query "extensions[?name == 'VMAppExtension']"
}
Проверьте параметры приложения:
$rgName = "myResourceGroup"
$vmName = "myVM"
$result = Get-AzVM -ResourceGroupName $rgName -VMName $vmName -Status
$result.Extensions | Where-Object {$_.Name -eq "VMAppExtension"} | ConvertTo-Json
Чтобы проверить масштабируемый набор виртуальных машин, выполните следующее:
$rgName = "myResourceGroup"
$vmssName = "myVMss"
$result = Get-AzVmssVM -ResourceGroupName $rgName -VMScaleSetName $vmssName -InstanceView
$resultSummary = New-Object System.Collections.ArrayList
$result | ForEach-Object {
$res = @{ instanceId = $_.InstanceId; vmappStatus = $_.InstanceView.Extensions | Where-Object {$_.Name -eq "VMAppExtension"}}
$resultSummary.Add($res) | Out-Null
}
$resultSummary | ConvertTo-Json -Depth 5
Если приложение виртуальной машины не установлено на виртуальной машине, значение пусто.
Чтобы получить результат представления экземпляра виртуальной машины, используйте следующий фрагмент кода:
GET
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{VMName}/instanceView?api-version=2024-03-03
Результат выглядит следующим образом.
{
...
"extensions" [
...
{
"name": "VMAppExtension",
"type": "Microsoft.CPlat.Core.VMApplicationManagerLinux",
"typeHandlerVersion": "1.0.9",
"statuses": [
{
"code": "ProvisioningState/succeeded",
"level": "Info",
"displayStatus": "Provisioning succeeded",
"message": "Enable succeeded: {\n \"CurrentState\": [\n {\n \"applicationName\": \"doNothingLinux\",\n \"version\": \"1.0.0\",\n \"result\": \"Install SUCCESS\"\n },\n {
\n \"applicationName\": \"badapplinux\",\n \"version\": \"1.0.0\",\n \"result\": \"Install FAILED Error executing command \u0027exit 1\u0027: command terminated with exit status=1\"\n }\n ],\n \"ActionsPerformed\": []\n}
"
}
]
}
...
]
}
Состояние приложения виртуальной машины находится в сообщении о состоянии результата расширения приложения виртуальной машины в представлении экземпляра.
Чтобы получить состояние приложения в масштабируемом наборе виртуальных машин, выполните следующие действия.
GET
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/ virtualMachineScaleSets/{VMSSName}/virtualMachines/{instanceId}/instanceView?api-version=2019-03-01
Выходные данные похожи на пример виртуальной машины ранее.
Чтобы удалить ресурс приложения виртуальной машины, сначала необходимо удалить все его версии. Удаление версии приложения приводит к удалению ресурса этой версии из галереи вычислений Azure и всех его реплик. Большой двоичный объект приложения в учетной записи хранения, используемый для создания версии приложения, остаётся неизменным. После удаления версии приложения, если любая виртуальная машина использует такую версию, операция повторного создания образов на этих виртуальных машинах завершится ошибкой. Используйте ключевое слово "latest" в качестве номера версии в applicationProfile вместо жесткой кодировки номера версии для устранения этой ошибки.
Однако, если приложение удалено, виртуальная машина претерпевает сбой во время операции пересоздания образа, так как нет доступных версий для установки в Azure. Профиль виртуальной машины необходимо обновить, чтобы не использовать приложение виртуальной машины.
Удалите версию приложения виртуальной машины:
Remove-AzGalleryApplicationVersion -ResourceGroupName $rgNmae -GalleryName $galleryName -GalleryApplicationName $galleryApplicationName -Name $name
Удалите приложение виртуальной машины после удаления всех версий:
Remove-AzGalleryApplication -ResourceGroupName $rgNmae -GalleryName $galleryName -Name $name
Удалите версию приложения виртуальной машины:
az sig gallery-application version delete --resource-group $rg-name --gallery-name $gallery-name --application-name $app-name --version-name $version-name
Удалите приложение виртуальной машины после удаления всех версий:
az sig gallery-application delete --resource-group $rg-name --gallery-name $gallery-name --application-name $app-name
Удалите версию приложения виртуальной машины:
DELETE
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}/versions/{galleryApplicationVersionName}?api-version=2024-03-03
Удалите приложение виртуальной машины после удаления всех версий:
DELETE
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}?api-version=2024-03-03
Следующие шаги
Дополнительные сведения о приложениях виртуальных машин Azure.