W tym artykule omówiono sposób monitorowania, aktualizowania i usuwania opublikowanej aplikacji maszyny wirtualnej oraz wdrożonego zasobu aplikacji maszyny wirtualnej na maszynie wirtualnej platformy Azure lub w usłudze Virtual Machine Scale Sets.
Aby wyświetlić właściwości opublikowanej aplikacji maszyny wirtualnej w witrynie Azure Portal:
- Zaloguj się do witryny Azure Portal.
- Wyszukaj usługę Azure Compute Gallery.
- Wybierz galerię zawierającą aplikację maszyny wirtualnej.
- Kliknij nazwę aplikacji maszyny wirtualnej , którą chcesz wyświetlić.
- W bloku Przegląd/Właściwości są wyświetlane informacje o aplikacji maszyny wirtualnej.
- W bloku Przegląd/wersje są wyświetlane wszystkie opublikowane wersje i jego podstawowe właściwości, takie jak Regiony docelowe, Stan aprowizacji i Stan replikacji.
- Wybierz określoną wersję , aby wyświetlić wszystkie jego szczegóły.
Wyświetlanie właściwości opublikowanej aplikacji maszyny wirtualnej lub określonej wersji przy użyciu interfejsu API REST:
Pobierz szczegóły aplikacji maszyny wirtualnej:
GET
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}?api-version=2024-03-03
Przykładowa odpowiedź:
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}",
"name": "{galleryApplicationName}",
"type": "Microsoft.Compute/galleries/applications",
"location": "eastus",
"properties": {
"description": "Sample VM Application",
"provisioningState": "Succeeded",
"supportedOSTypes": ["Windows", "Linux"],
"endOfLifeDate": null,
"privacyStatementUri": "https://contoso.com/privacy",
"releaseNoteUri": "https://contoso.com/release-notes"
}
}
Pobierz szczegóły wersji aplikacji maszyny wirtualnej:
GET
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}/versions/{galleryApplicationVersionName}?api-version=2024-03-03
Przykładowa odpowiedź:
{
"id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}/versions/{galleryApplicationVersionName}",
"name": "{galleryApplicationVersionName}",
"type": "Microsoft.Compute/galleries/applications/versions",
"location": "eastus",
"properties": {
"provisioningState": "Succeeded",
"publishingProfile": {
"source": {
"mediaLink": "https://storageaccount.blob.core.windows.net/vmapps/app.zip"
},
"replicaCount": 1,
"targetRegions": [
{
"name": "eastus",
"regionalReplicaCount": 1
}
]
},
"storageAccountType": "Standard_LRS"
}
}
Odpowiedzi obejmują właściwości, takie jak nazwa, lokalizacja, stan aprowizacji, opis i inne metadane dotyczące aplikacji lub wersji.
Ustaw zmienne:
rgName="myResourceGroup"
galleryName="myGallery"
appName="myVmApp"
versionName="1.0.0"
Wyświetl listę wszystkich aplikacji maszyn wirtualnych w galerii:
az sig gallery-application list \
--resource-group $rgName \
--gallery-name $galleryName \
-o table
Pokaż właściwości aplikacji maszyny wirtualnej:
az sig gallery-application show \
--resource-group $rgName \
--gallery-name $galleryName \
--application-name $appName
Wyświetl listę wszystkich wersji aplikacji maszyny wirtualnej:
az sig gallery-application version list \
--resource-group $rgName \
--gallery-name $galleryName \
--application-name $appName \
--query "[].{version:name, provisioningState:properties.provisioningState}" -o table
Pokaż właściwości określonej wersji aplikacji maszyny wirtualnej:
az sig gallery-application version show \
--resource-group $rgName \
--gallery-name $galleryName \
--application-name $appName \
--version-name $versionName
Użyj programu Azure PowerShell, aby wyświetlić szczegóły aplikacji i wersji maszyny wirtualnej w galerii obliczeń platformy Azure.
Ustaw zmienne:
$rgName = "myResourceGroup"
$galleryName = "myGallery"
$appName = "myVmApp"
$versionName = "1.0.0"
Wyświetl listę wszystkich aplikacji maszyn wirtualnych w galerii:
Get-AzGalleryApplication `
-ResourceGroupName $rgName `
-GalleryName $galleryName |
Select-Object Name, Location, ProvisioningState
Pokaż właściwości aplikacji maszyny wirtualnej:
Get-AzGalleryApplication `
-ResourceGroupName $rgName `
-GalleryName $galleryName `
-Name $appName |
ConvertTo-Json -Depth 5
Wyświetl listę wszystkich wersji aplikacji maszyny wirtualnej:
Get-AzGalleryApplicationVersion `
-ResourceGroupName $rgName `
-GalleryName $galleryName `
-GalleryApplicationName $appName |
Select-Object Name, @{n="ProvisioningState";e={$_.ProvisioningState}}
Pokaż właściwości określonej wersji aplikacji maszyny wirtualnej:
Get-AzGalleryApplicationVersion `
-ResourceGroupName $rgName `
-GalleryName $galleryName `
-GalleryApplicationName $appName `
-Name $versionName |
ConvertTo-Json -Depth 6
Aby wyświetlić stan aplikacji maszyny wirtualnej, przejdź do karty Rozszerzenia i aplikacje /ustawienia i sprawdź stan rozszerzenia vmAppExtension:
Aby wyświetlić stan aplikacji maszyny wirtualnej dla zestawu skalowania, przejdź do strony Zestawy skalowania maszyn wirtualnych w witrynie Azure Portal. W sekcji Wystąpienia wybierz jeden z wymienionych zestawów skalowania, a następnie przejdź do pozycji VMAppExtension:
Jeśli aplikacja maszyny wirtualnej nie jest zainstalowana na maszynie wirtualnej, wartość jest pusta.
Aby uzyskać wynik widoku wystąpienia maszyny wirtualnej:
GET
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{VMName}/instanceView?api-version=2024-03-03
Wynik wygląda następująco:
{
...
"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}
"
}
]
}
...
]
}
Stan aplikacji maszyny wirtualnej znajduje się w komunikacie o stanie wyniku rozszerzenia aplikacji maszyny wirtualnej w widoku wystąpienia.
Aby uzyskać stan aplikacji w zestawie skalowania maszyn wirtualnych:
GET
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/ virtualMachineScaleSets/{VMSSName}/virtualMachines/{instanceId}/instanceView?api-version=2019-03-01
Dane wyjściowe są podobne do przykładu maszyny wirtualnej wcześniej.
Aby sprawdzić stan wdrożenia aplikacji na maszynie wirtualnej, użyj polecenia "az vm get-instance-view":
az vm get-instance-view -g myResourceGroup -n myVM --query "instanceView.extensions[?name == 'VMAppExtension']"
Aby sprawdzić stan wdrożenia aplikacji w zestawie skalowania maszyn wirtualnych, użyj polecenia "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']"
Uwaga / Notatka
Poprzednie polecenie stan wdrożenia usługi Virtual Machine Scale Sets nie wyświetla identyfikatora wystąpienia z wynikiem. Aby wyświetlić identyfikator wystąpienia ze stanem rozszerzenia w każdym wystąpieniu, wymagana jest pewna liczba skryptów. Zapoznaj się z poniższym przykładem interfejsu wiersza polecenia, który zawiera składnię programu 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']"
}
Sprawdź, czy aplikacja zakończyła się pomyślnie:
$rgName = "myResourceGroup"
$vmName = "myVM"
$result = Get-AzVM -ResourceGroupName $rgName -VMName $vmName -Status
$result.Extensions | Where-Object {$_.Name -eq "VMAppExtension"} | ConvertTo-Json
Aby sprawdzić zestaw skalowania maszyn wirtualnych:
$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
- Otwórz witrynę Azure Portal i przejdź do docelowej maszyny wirtualnej lub zestawu skalowania maszyn wirtualnych.
- W obszarze Ustawienia wybierz pozycję Rozszerzenia i aplikacje, a następnie wybierz kartę Aplikacje maszyn wirtualnych .
- Kliknij przycisk odinstaluj w aplikacji maszyny wirtualnej i zapisz.
- Śledź postęp w obszarze Powiadomienia lub sprawdź widok wystąpienia dla stanu VMAppExtension.
Aby usunąć aplikację maszyny wirtualnej, zaktualizuj element applicationProfile przez wyczyszczenie lub wykluczenie aplikacji docelowej.
Usuń z jednej maszyny wirtualnej:
PATCH
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}?api-version=2024-03-03
Body
{
"properties": {
"applicationProfile": {
"galleryApplications": []
}
}
}
Usuń z zestawu skalowania maszyn wirtualnych (model):
PATCH
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmssName}?api-version=2024-03-03
Body
{
"properties": {
"virtualMachineProfile": {
"applicationProfile": {
"galleryApplications": []
}
}
}
}
Zastosuj zmianę do istniejących wystąpień zestawu skalowania maszyn wirtualnych (wymagane, gdy tryb upgradePolicy.mode to Manual):
POST
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmssName}/updateInstances?api-version=2024-03-03
Body
{
"instanceIds": ["0", "1"]
}
Usuń z jednej maszyny wirtualnej:
az vm update -g myResourceGroup -n myVM --set "properties.applicationProfile.galleryApplications=[]"
Usuń z zestawu skalowania maszyn wirtualnych (model):
az vmss update -g myResourceGroup -n myVMss --set "virtualMachineProfile.applicationProfile.galleryApplications=[]"
Zastosuj zmianę do istniejących wystąpień usługi VMSS (zasady ręcznego uaktualniania):
az vmss update-instances -g myResourceGroup -n myVMss --instance-ids "*"
Usuń z jednej maszyny wirtualnej:
$rgName = "myResourceGroup"
$vmName = "myVM"
$vm = Get-AzVM -ResourceGroupName $rgName -Name $vmName
$vm.ApplicationProfile.GalleryApplications = @()
Update-AzVM -ResourceGroupName $rgName -VM $vm
Usuń z zestawu skalowania maszyn wirtualnych (model) i zastosuj do wystąpień:
$rgName = "myResourceGroup"
$vmssName = "myVMss"
$vmss = Get-AzVmss -ResourceGroupName $rgName -VMScaleSetName $vmssName
$vmss.VirtualMachineProfile.ApplicationProfile.GalleryApplications = @()
Update-AzVmss -ResourceGroupName $rgName -VMScaleSetName $vmssName -VirtualMachineScaleSet $vmss
$instanceIds = (Get-AzVmssVM -ResourceGroupName $rgName -VMScaleSetName $vmssName).InstanceId
Update-AzVmssInstance -ResourceGroupName $rgName -VMScaleSetName $vmssName -InstanceId $instanceIds
Aby usunąć zasób aplikacji maszyny wirtualnej, należy najpierw usunąć wszystkie jego wersje. Usunięcie wersji aplikacji powoduje usunięcie zasobu wersji aplikacji z galerii obliczeń platformy Azure i wszystkich jej replik. Nie ma to wpływu na obiekt blob aplikacji na koncie magazynu używanym do tworzenia wersji aplikacji.
- Zaloguj się do witryny Azure Portal.
- Wyszukaj galerię usługi Azure Compute i otwórz galerię docelową.
- Wybierz aplikację maszyny wirtualnej, którą chcesz usunąć.
- Wybierz co najmniej jedną wersję, którą chcesz usunąć.
- Aby usunąć aplikację maszyny wirtualnej, najpierw usuń wszystkie wersje. Następnie kliknij pozycję Usuń (w górnej części bloku).
- Monitorowanie powiadomień pod kątem ukończenia. Jeśli usunięcie zostanie zablokowane, usuń wszelkie blokady i upewnij się, że żadna maszyna wirtualna ani zestaw skalowania nie odwołuje się do aplikacji.
Usuń wersję aplikacji maszyny wirtualnej:
DELETE
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}/versions/{galleryApplicationVersionName}?api-version=2024-03-03
Usuń aplikację maszyny wirtualnej po usunięciu wszystkich jej wersji:
DELETE
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}?api-version=2024-03-03
Usuń wersję aplikacji maszyny wirtualnej:
az sig gallery-application version delete --resource-group $rg-name --gallery-name $gallery-name --application-name $app-name --version-name $version-name
Usuń aplikację maszyny wirtualnej po usunięciu wszystkich jej wersji:
az sig gallery-application delete --resource-group $rg-name --gallery-name $gallery-name --application-name $app-name
Usuń wersję aplikacji maszyny wirtualnej:
Remove-AzGalleryApplicationVersion -ResourceGroupName $rgNmae -GalleryName $galleryName -GalleryApplicationName $galleryApplicationName -Name $name
Usuń aplikację maszyny wirtualnej po usunięciu wszystkich jej wersji:
Remove-AzGalleryApplication -ResourceGroupName $rgNmae -GalleryName $galleryName -Name $name