In diesem Artikel wird erläutert, wie Sie die veröffentlichte VM-Anwendung und die bereitgestellte VM-Anwendungsressource auf Azure Virtual Machine (VM) oder Vm Scale Sets überwachen, aktualisieren und löschen.
So zeigen Sie die Eigenschaften einer veröffentlichten VM-Anwendung im Azure-Portal an:
- Melden Sie sich beim Azure-Portal an.
- Suchen Sie nach Azure Compute Gallery.
- Wählen Sie den Katalog aus, der Ihre VM-Anwendung enthält.
- Klicken Sie auf den VM-Anwendungsnamen , den Sie anzeigen möchten.
- Das Blatt "Übersicht/Eigenschaften " zeigt Informationen zur VM-Anwendung an.
- Das Blatt "Übersicht/Versionen " zeigt alle veröffentlichten Versionen und ihre grundlegenden Eigenschaften wie Zielregionen, Bereitstellungsstatus und Replikationsstatus an.
- Wählen Sie eine bestimmte Version aus, um alle Details anzuzeigen.
Zeigen Sie die Eigenschaften einer veröffentlichten VM-Anwendung oder einer bestimmten Version mithilfe der REST-API an:
Abrufen von VM-Anwendungsdetails:
GET
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}?api-version=2024-03-03
Beispielantwort:
{
"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"
}
}
Versionsdetails der VM-Anwendung abrufen:
GET
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}/versions/{galleryApplicationVersionName}?api-version=2024-03-03
Beispielantwort:
{
"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"
}
}
Die Antworten enthalten Eigenschaften wie Name, Speicherort, Bereitstellungsstatus, Beschreibung und andere Metadaten zur Anwendung oder Version.
Festlegen von Variablen:
rgName="myResourceGroup"
galleryName="myGallery"
appName="myVmApp"
versionName="1.0.0"
Auflisten aller VM-Anwendungen im Katalog:
az sig gallery-application list \
--resource-group $rgName \
--gallery-name $galleryName \
-o table
Eigenschaften einer VM-Anwendung anzeigen:
az sig gallery-application show \
--resource-group $rgName \
--gallery-name $galleryName \
--application-name $appName
Auflisten aller Versionen für eine VM-Anwendung:
az sig gallery-application version list \
--resource-group $rgName \
--gallery-name $galleryName \
--application-name $appName \
--query "[].{version:name, provisioningState:properties.provisioningState}" -o table
Eigenschaften einer bestimmten VM-Anwendung anzeigen:
az sig gallery-application version show \
--resource-group $rgName \
--gallery-name $galleryName \
--application-name $appName \
--version-name $versionName
Verwenden Sie Azure PowerShell, um VM-Anwendungs- und Versionsdetails in einem Azure Compute Gallery anzuzeigen.
Festlegen von Variablen:
$rgName = "myResourceGroup"
$galleryName = "myGallery"
$appName = "myVmApp"
$versionName = "1.0.0"
Auflisten aller VM-Anwendungen im Katalog:
Get-AzGalleryApplication `
-ResourceGroupName $rgName `
-GalleryName $galleryName |
Select-Object Name, Location, ProvisioningState
Eigenschaften einer VM-Anwendung anzeigen:
Get-AzGalleryApplication `
-ResourceGroupName $rgName `
-GalleryName $galleryName `
-Name $appName |
ConvertTo-Json -Depth 5
Auflisten aller Versionen für eine VM-Anwendung:
Get-AzGalleryApplicationVersion `
-ResourceGroupName $rgName `
-GalleryName $galleryName `
-GalleryApplicationName $appName |
Select-Object Name, @{n="ProvisioningState";e={$_.ProvisioningState}}
Eigenschaften einer bestimmten VM-Anwendung anzeigen:
Get-AzGalleryApplicationVersion `
-ResourceGroupName $rgName `
-GalleryName $galleryName `
-GalleryApplicationName $appName `
-Name $versionName |
ConvertTo-Json -Depth 6
Um den Status der VM-Anwendung anzuzeigen, wechseln Sie zur Registerkarte "Erweiterungen + Anwendungen " und überprüfen Sie den Status der VMAppExtension:
Um den VM-Anwendungsstatus für einen Skalierungssatz anzuzeigen, wechseln Sie zur Seite "Vm Scale Sets" des Azure-Portals. Wählen Sie im Abschnitt "Instanzen" einen der aufgelisteten Skalierungssätze aus, und wechseln Sie dann zu "VMAppExtension":
Wenn die VM-Anwendung nicht auf dem virtuellen Computer installiert ist, ist der Wert leer.
So rufen Sie das Ergebnis der VM-Instanzansicht ab:
GET
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{VMName}/instanceView?api-version=2024-03-03
Das Ergebnis sieht wie folgt aus:
{
...
"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}
"
}
]
}
...
]
}
Der Status der VM-App befindet sich in der Statusmeldung des Ergebnisses der VM-App-Erweiterung in der Instanzansicht.
So rufen Sie den Status der Anwendung im Skalierungssatz für virtuelle Computer ab:
GET
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/ virtualMachineScaleSets/{VMSSName}/virtualMachines/{instanceId}/instanceView?api-version=2019-03-01
Die Ausgabe ähnelt dem vorherigen VM-Beispiel.
Um den Anwendungsbereitstellungsstatus auf einem virtuellen Computer zu überprüfen, verwenden Sie "az vm get-instance-view":
az vm get-instance-view -g myResourceGroup -n myVM --query "instanceView.extensions[?name == 'VMAppExtension']"
Verwenden Sie "az vmss get-instance-view", um den Anwendungsbereitstellungsstatus im Skalierungssatz für virtuelle Computer zu überprüfen:
az vmss get-instance-view --ids (az vmss list-instances -g myResourceGroup -n myVmss --query "[*].id" -o tsv) --query "[*].extensions[?name == 'VMAppExtension']"
Hinweis
Der vorherige Befehl zum Skalierungsstatus des virtuellen Computers listet die Instanz-ID nicht mit dem Ergebnis auf. Um die Instanz-ID mit dem Status der Erweiterung in jeder Instanz anzuzeigen, ist einige weitere Skripts erforderlich. Lesen Sie das folgende CLI-Beispiel, das PowerShell-Syntax enthält:
$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']"
}
Überprüfen Sie, ob die Anwendung erfolgreich war:
$rgName = "myResourceGroup"
$vmName = "myVM"
$result = Get-AzVM -ResourceGroupName $rgName -VMName $vmName -Status
$result.Extensions | Where-Object {$_.Name -eq "VMAppExtension"} | ConvertTo-Json
So überprüfen Sie den Skalierungssatz für virtuelle Computer:
$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
- Öffnen Sie das Azure-Portal, und wechseln Sie zum Virtuellen Zielcomputer (VM) oder zum Vm Scale Set.
- Wählen Sie unter "Einstellungen " "Erweiterungen + Anwendungen" und dann die Registerkarte "VM-Anwendungen " aus.
- Klicken Sie auf die Schaltfläche "Deinstallieren" in der VM-Anwendung und auf "Speichern".
- Nachverfolgen des Status in Benachrichtigungen oder Überprüfen der Instanzansicht für den Status "VMAppExtension".
Um eine VM-Anwendung zu entfernen, aktualisieren Sie die applicationProfile Anwendung, indem Sie die Zielanwendung löschen oder ausschließen.
Aus einem einzelnen virtuellen Computer entfernen:
PATCH
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}?api-version=2024-03-03
Body
{
"properties": {
"applicationProfile": {
"galleryApplications": []
}
}
}
Aus einem VM-Skalierungssatz (Modell) entfernen:
PATCH
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmssName}?api-version=2024-03-03
Body
{
"properties": {
"virtualMachineProfile": {
"applicationProfile": {
"galleryApplications": []
}
}
}
}
Wenden Sie die Änderung auf vorhandene VMSS-Instanzen an (erforderlich, wenn "upgradePolicy.mode" manuell ist):
POST
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmssName}/updateInstances?api-version=2024-03-03
Body
{
"instanceIds": ["0", "1"]
}
Aus einem einzelnen virtuellen Computer entfernen:
az vm update -g myResourceGroup -n myVM --set "properties.applicationProfile.galleryApplications=[]"
Aus einem VM-Skalierungssatz (Modell) entfernen:
az vmss update -g myResourceGroup -n myVMss --set "virtualMachineProfile.applicationProfile.galleryApplications=[]"
Anwenden der Änderung auf vorhandene VMSS-Instanzen (Manuelle Upgraderichtlinie):
az vmss update-instances -g myResourceGroup -n myVMss --instance-ids "*"
Aus einem einzelnen virtuellen Computer entfernen:
$rgName = "myResourceGroup"
$vmName = "myVM"
$vm = Get-AzVM -ResourceGroupName $rgName -Name $vmName
$vm.ApplicationProfile.GalleryApplications = @()
Update-AzVM -ResourceGroupName $rgName -VM $vm
Aus einem VM-Skalierungssatz (Modell) entfernen und auf Instanzen anwenden:
$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
Um die VM-Anwendungsressource zu löschen, müssen Sie zuerst alle zugehörigen Versionen löschen. Durch das Löschen der Anwendungsversion wird die Anwendungsversionsressource aus dem Azure Compute Gallery und allen replizierten Replikaten gelöscht. Das Anwendungs-BLOB im Speicherkonto, das zum Erstellen der Anwendungsversion verwendet wird, ist nicht betroffen.
- Melden Sie sich beim Azure-Portal an.
- Suchen Sie nach Azure Compute Gallery, und öffnen Sie den Zielkatalog.
- Wählen Sie die VM-Anwendung aus, die Sie entfernen möchten.
- Wählen Sie eine oder mehrere Versionen aus, die Sie löschen möchten.
- Um die VM-Anwendung zu löschen, löschen Sie zuerst alle Versionen. Klicken Sie dann auf "Löschen" (oben auf dem Blatt).
- Überwachen sie Benachrichtigungen auf Abschluss. Wenn das Löschen blockiert ist, entfernen Sie alle Sperren, und stellen Sie sicher, dass keine VM- oder Skalierungssatzverweise auf die Anwendung verweisen.
Löschen Sie die VM-Anwendungsversion:
DELETE
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}/versions/{galleryApplicationVersionName}?api-version=2024-03-03
Löschen Sie die VM-Anwendung, nachdem alle zugehörigen Versionen gelöscht wurden:
DELETE
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}?api-version=2024-03-03
Löschen Sie die VM-Anwendungsversion:
az sig gallery-application version delete --resource-group $rg-name --gallery-name $gallery-name --application-name $app-name --version-name $version-name
Löschen Sie die VM-Anwendung, nachdem alle zugehörigen Versionen gelöscht wurden:
az sig gallery-application delete --resource-group $rg-name --gallery-name $gallery-name --application-name $app-name
Löschen Sie die VM-Anwendungsversion:
Remove-AzGalleryApplicationVersion -ResourceGroupName $rgNmae -GalleryName $galleryName -GalleryApplicationName $galleryApplicationName -Name $name
Löschen Sie die VM-Anwendung, nachdem alle zugehörigen Versionen gelöscht wurden:
Remove-AzGalleryApplication -ResourceGroupName $rgNmae -GalleryName $galleryName -Name $name