VM-Anwendung ist ein Ressourcentyp im Azure Compute Gallery, der die Verwaltung, Freigabe und globale Verteilung von Anwendungen für Ihre virtuellen Computer vereinfacht. Weitere Informationen zur VM-Anwendung
Stellen Sie sicher, dass das Speicherkonto über Zugriff auf öffentliche Ebene verfügt oder einen SAS-URI mit Leseberechtigung verwendet, da bei anderen Einschränkungsstufen Bereitstellungen fehlschlagen. Sie können Storage-Explorer verwenden, um schnell einen SAS-URI zu erstellen, falls Sie noch keinen besitzen.
Wenn Sie PowerShell verwenden, müssen Sie Version 3.11.0 des Az.Storage-Moduls verwenden.
- Navigieren Sie zum Azure-Portal und suchen Sie dann nach Azure Compute Gallery, was Sie dann bitte auswählen.
- Wählen Sie den gewünschten Katalog aus der Liste aus.
- Wählen Sie oben auf der Seite Ihrer Galerie Hinzufügen und dann im Dropdownmenü Anwendungsdefinition für virtuelle Computer aus. Die Seite VM-Anwendungsdefinition erstellen wird geöffnet.
- Geben Sie auf der Registerkarte Grundlagen einen Namen für Ihre Anwendung ein, und wählen Sie aus, ob die Anwendung für VMs mit Linux oder Windows vorgesehen ist.
- Wählen Sie die Registerkarte " Veröffentlichungsoptionen " aus, wenn Sie eine der folgenden optionalen Einstellungen für Ihre VM-Anwendungsdefinition angeben möchten:
- Eine Beschreibung der VM-Anwendungsdefinition.
- Datum für Ende des Lebenszyklus
- Link zu einem Endbenutzer-Lizenzvertrag (EULA)
- URI zu Datenschutzbestimmungen
- URI zu Versionshinweisen
- Wählen Sie abschließend Überprüfen + erstellen aus.
- Wählen Sie nach Abschluss der Validierung Erstellen aus, um die Definition bereitzustellen.
- Klicken Sie nach Abschluss der Bereitstellung auf Zu Ressource wechseln.
- Wählen Sie auf der Seite für die Anwendung die Option Erstellen Sie eine VM-Anwendungsversion aus. Die Seite VM-Anwendungsversion erstellen wird geöffnet.
- Geben Sie eine Versionsnummer wie 1.0.0 an.
- Wählen Sie die Region aus, in die Ihre Anwendungspakete hochgeladen werden.
- Wählen Sie unter Quellanwendungspaket die Option Durchsuchen aus. Wählen Sie das Speicherkonto und dann den Container aus, in dem sich Ihr Paket befindet. Wählen Sie das Paket aus der Liste aus, und klicken Sie dann auf Auswählen, wenn Sie fertig sind. Alternativ können Sie den SAS-URI in dieses Feld einfügen, falls bevorzugt.
- Geben Sie das Skript "Installieren" an. Sie können auch das Skript "Deinstallieren" und das "Updateskript" bereitstellen. Informationen zum Erstellen der Skripts finden Sie in der Übersicht.
- Wenn Sie eine Standardkonfigurationsdatei in ein Speicherkonto hochgeladen haben, können Sie sie unter Standardkonfiguration auswählen.
- Wählen Sie Aus Neuesten ausschließen aus, wenn diese Version beim Erstellen eines virtuellen Computers nicht als neueste Version angezeigt werden soll.
- Wählen Sie für Ende der Lebensdauer ein Datum in der Zukunft aus, um nachzuverfolgen, wann diese Version eingestellt werden soll. Sie wird nicht automatisch gelöscht oder entfernt, sondern dient nur für Ihre eigene Nachverfolgung.
- Um diese Version in andere Regionen zu replizieren, wählen Sie die Registerkarte " Replikation " aus, fügen Sie weitere Regionen hinzu, und nehmen Sie Änderungen an der Anzahl der Replikate pro Region vor. Die ursprüngliche Region, in der Ihre Version erstellt wurde, muss in der Liste enthalten sein und darf nicht entfernt werden.
- Wenn Sie alle Änderungen vorgenommen haben, wählen Sie unten auf der Seite Überprüfen und erstellen.
- Wenn die Überprüfung als erfolgreich angezeigt wird, wählen Sie Erstellen aus, um Ihre VM-Anwendungsversion bereitzustellen.
Erstellen Sie die VM-Anwendungsdefinition mithilfe von New-AzGalleryApplication
. In diesem Beispiel erstellen wir eine Linux-App mit dem Namen "myApp " im MyGallery Azure Compute Gallery und in der Ressourcengruppe "myGallery ". Ersetzen Sie die Werte für Variablen nach Bedarf.
$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
Erstellen Sie eine Version Ihrer VM-Anwendung mithilfe von New-AzGalleryApplicationVersion
. Zulässige Zeichen für die Version sind Zahlen und Punkte. Zahlen müssen im Bereich einer ganzen 32-Bit-Zahl liegen. Format: Hauptversion.Nebenversion.Patch.
In diesem Beispiel erstellen wir die Versionsnummer 1.0.0. Ersetzen Sie die Werte der Variablen nach Bedarf.
$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" `
Für VM-Anwendungen ist mindestens Version 2.30.0 der Azure-Befehlszeilenschnittstelle erforderlich.
Erstellen Sie die VM-Anwendungsdefinition mit "az sig gallery-application create". In diesem Beispiel erstellen Sie eine VM-Anwendungsdefinition namens myApp für Linux-basierte VMs.
az sig gallery-application create \
--application-name myApp \
--gallery-name myGallery \
--resource-group myResourceGroup \
--os-type Linux \
--location "East US"
Erstellen Sie eine VM-Anwendungsversion mit "az sig gallery-application version create". Zulässige Zeichen für die Version sind Zahlen und Punkte. Zahlen müssen im Bereich einer ganzen 32-Bit-Zahl liegen. Format: Hauptversion.Nebenversion.Patch.
Ersetzen Sie die Werte der Parameter durch Ihre eigenen.
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>"\
Erstellen der VM-Anwendungsdefinition mithilfe der "Create Gallery Application 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"
}
}
Feldname |
BESCHREIBUNG |
Einschränkungen |
Name |
Ein eindeutiger Name für die VM-Anwendung in der Galerie. |
Die maximale Länge beträgt 117 Zeichen. Zulässige Zeichen sind Groß- und Kleinbuchstaben, Ziffern, Bindestrich (-), Punkt (.) und Unterstrich (_). Namen dürfen nicht mit einem Punkt (.) enden. |
unterstützterBetriebssystemtyp |
Definieren Sie den unterstützten Betriebssystemtyp. |
"Windows" oder "Linux" |
Lebensendedatum |
Ein in der Zukunft liegendes Datum für das Ende der Lebensdauer der Anwendung. Das Datum ist nur referenziert und wird nicht erzwungen. |
Gültiges Datum in der Zukunft |
Beschreibung |
Wahlfrei. Beschreibung der Anwendung. |
|
Eula |
Wahlfrei. Referenz auf End-User Lizenzvertrag (EULA). |
|
privacyStatementUri |
Wahlfrei. Referenz zu den Datenschutzbestimmungen für die Anwendung. |
|
releaseNoteUri |
Wahlfrei. Referenz zu Versionshinweisen für die Anwendung. |
|
Erstellen Sie eine Version der VM-Anwendung mithilfe der 'API zum Erstellen von Galerieanwendungsversionen'.
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"
}
}
}
Feldname |
BESCHREIBUNG |
Einschränkungen |
Standort |
Quellspeicherort für die VM-Anwendungsversion. |
Gültige Azure-Region |
mediaLink |
Die URL, die das Anwendungsversionspaket enthält. |
Gültige und vorhandene Speicher-URL |
defaultConfigurationLink |
Wahlfrei. URL mit der Standardkonfiguration, die zum Zeitpunkt der Bereitstellung überschrieben werden kann |
Gültige und vorhandene Speicher-URL |
Installieren |
Der Befehl zum Installieren der Anwendung. |
Gültiger Befehl für das angegebene Betriebssystem |
Entfernen |
Der Befehl zum Entfernen der Anwendung. |
Gültiger Befehl für das angegebene Betriebssystem |
Aktualisieren |
Wahlfrei. Befehl zum Aktualisieren der Anwendung. Wenn keine Angabe erfolgt und Update erforderlich ist, wird die alte Version entfernt und die neue Version installiert. |
Gültiger Befehl für das angegebene Betriebssystem |
targetRegions/name |
Der Name einer Region, in die repliziert werden soll. |
Gültige Azure-Region |
targetRegions/regionalReplicaCount |
Wahlfrei. Anzahl der Replikate in der zu erstellenden Region. Der Standardwert lautet 1. |
Ganze Zahl von 1 bis 3 |
replicaCount (englisch) |
Wahlfrei. Definiert die Anzahl der Replikate in den einzelnen Regionen. Wird wirksam, wenn regionalReplicaCount nicht definiert ist. |
Ganze Zahl von 1 bis 3 |
Lebensendedatum |
Ein in der Zukunft liegendes Datum für die Anwendungsversion. Diese Eigenschaft dient nur als Kundenreferenz und wird nicht erzwungen. |
Gültiges Datum in der Zukunft |
Speicherkontotyp |
Wahlfrei. Typ des Speicherkontos, das in jeder Region zum Speichern des Anwendungspakets verwendet werden soll. Der Standardwert ist „Standard_LRS“. |
Diese Eigenschaft ist nicht aktualisierbar. |
ErlaubeLöschenReplizierterStandorte |
Wahlfrei. Gibt an, ob das Entfernen dieser Katalogbildversion aus replizierten Regionen zulässig ist. |
|
Einstellungen/SkriptverhaltenNachNeustart |
Wahlfrei. Die auszuführende Aktion zum Installieren, Aktualisieren oder Entfernen der Galerieanwendung nach dem Neustart der virtuellen Maschine. |
|
Einstellungen/Konfigurationsdateiname |
Wahlfrei. Der Name zum Zuweisen der heruntergeladenen Paketdatei auf dem virtuellen Computer. Wenn nicht spezifiziert, wird die Paketdatei wie die Galerie-Anwendung benannt. |
Dies ist auf 4.096 Zeichen beschränkt. |
settings/packageFileName |
Wahlfrei. Der Name zum Zuweisen der heruntergeladenen Konfigurationsdatei auf dem virtuellen Computer. Wenn nicht angegeben, erhält die Konfigurationsdatei den Kataloganwendungsnamen mit angefügtem „_config“. |
Dies ist auf 4.096 Zeichen beschränkt. |
Nun können Sie eine VM erstellen und die VM-Anwendung über das Portal darauf bereitstellen. Erstellen Sie die VM einfach wie gewohnt, und wählen Sie auf der Registerkarte Erweitert die Option Select a VM application to install (VM-Anwendung für Installation auswählen).
Wählen Sie die VM-Anwendung aus der Liste aus, und wählen Sie dann unten auf der Seite "Speichern" aus.
Wenn Sie mehrere VM-Anwendungen installieren möchten, können Sie auf der Registerkarte Erweitert die Installationsreihenfolge für jede VM-Anwendung festlegen.
Sie können die VM-Anwendung auch für derzeit ausgeführte VMs bereitstellen. Wählen Sie im linken Menü die Option Erweiterungen und Anwendungen unter Einstellungen aus, wenn Sie die VM-Details im Portal anzeigen.
Wählen Sie VM-Anwendungen aus, und klicken Sie dann auf Anwendung hinzufügen, um Ihre VM-Anwendung hinzuzufügen.
Wählen Sie die VM-Anwendung aus der Liste aus, und wählen Sie dann unten auf der Seite "Speichern" aus.
Legen Sie eine VM-Anwendung auf einen vorhandenen virtuellen Computer fest, indem Sie "az vm application set" verwenden , und ersetzen Sie die Werte der Parameter durch Ihre eigenen.
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
Festlegen mehrerer Anwendungen auf einer VM:
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
Verwenden Sie "az vmss application set", um einer VM-Skalierungsgruppe eine Anwendung hinzuzufügen:
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
So fügen Sie einem Skalierungssatz für virtuelle Computer mehrere Anwendungen hinzu:
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
Um die Anwendung auf einer vorhandenen VM hinzuzufügen, rufen Sie die Anwendungsversion ab, und verwenden diese, um die ID der VM-Anwendungsversion abzurufen. Mithilfe diese ID fügen Sie die Anwendung der VM-Konfiguration hinzu.
$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
So fügen Sie die Anwendung zu einem Skalierungssatz für virtuelle Computer hinzu:
$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
Um einer VM eine VM-Anwendungsversion hinzuzufügen, führen Sie einen PUT-Befehl auf der VM aus.
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}"
}
So wenden Sie die VM-Anwendung auf eine einheitliche Skalierungsgruppe an
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}"
}
Feldname |
BESCHREIBUNG |
Einschränkungen |
Auftrag |
Wahlfrei. Reihenfolge, in der die Anwendungen bereitgestellt werden sollen. |
Gültige ganze Zahl |
PaketReferenzId |
Ein Verweis auf die Galerieanwendungsversion. Verwenden Sie das Schlüsselwort "latest" für die Version, um die neueste verfügbare Version automatisch zu installieren. |
Gültiger Verweis auf die Anwendungsversion |
configurationReference |
Wahlfrei. Vollständige URL eines Speicherblobs, das die Konfiguration für diese Bereitstellung enthält. Dadurch werden alle zuvor für "defaultConfiguration" bereitgestellten Werte außer Kraft gesetzt. |
Gültiger Verweis auf ein Speicherblob |
treatFailureAsDeploymentFailure |
Wahlfrei. Wenn die App-Bereitstellung aktiviert ist, meldet der VM-Bereitstellungsstatus „Fehlerhaft“. |
„true“ oder „false“ |
Mithilfe des Felds „order“ können Sie Abhängigkeiten zwischen Anwendungen angeben. Die Regeln für die Bestellung sind wie folgt:
Fall |
Bedeutung für die Installation |
Auswirkungen bei Fehlern |
Keine Reihenfolge angegeben |
Anwendungen ohne festgelegte Reihenfolge werden nach sortierten Anwendungen installiert. Es gibt keine Garantie für die Installationsreihenfolge bei den unsortierten Anwendungen. |
Installationsfehler anderer Anwendungen (sortiert oder unsortiert) wirken sich nicht auf die Installation unsortierter Anwendungen aus. |
Doppelte Reihenfolgewerte |
Die Anwendung wird im Vergleich zu anderen Anwendungen mit demselben Reihenfolgewert in beliebigem Reihenfolgewert installiert. Alle Anwendungen derselben Bestellung werden nach den Anwendungen mit niedrigeren Bestellungen und vor den Anwendungen mit höheren Bestellungen installiert. |
Wenn eine vorherige Anwendung mit einem niedrigeren Reihenfolgewert nicht installiert werden konnte, werden keine Anwendungen mit diesem Reihenfolgewert installiert. Wenn Anwendungen mit demselben Reihenfolgewert nicht installiert werden können, werden keine Anwendungen mit einem höheren Reihenfolgewert installiert. |
Aufsteigende Reihenfolge |
Anwendungen werden nach Anwendungen mit niedrigeren Reihenfolgewerten und vor denen mit höheren Reihenfolgewerten installiert. |
Wenn eine vorherige Anwendung mit einer niedrigeren Reihenfolge nicht installiert werden konnte, wird diese Anwendung nicht installiert. Wenn diese Anwendung nicht installiert werden kann, wird keine Anwendung mit einem höheren Reihenfolgewert installiert. |
Die Antwort enthält das vollständige VM-Modell. Im Folgenden finden Sie die relevanten Teile.
{
"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=}"
}
]
}
Um den VM-Anwendungsstatus anzuzeigen, navigieren Sie zur Registerkarte „Erweiterungen und Anwendungen“ und dann zu „Einstellungen“, und überprüfen Sie den Status von VMAppExtension:
Um den VM-Anwendungsstatus für eine Skalierungsgruppe anzuzeigen, gehen Sie zur Seite "Virtual Machine Scale Sets" des Azure-Portals, gehen Sie dann zum Abschnitt "Instanzen", wählen Sie eine der aufgeführten Skalierungsgruppen aus und gehen Sie anschließend zu "VMAppExtension".
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 Bereitstellungsstatus von Virtual Machine Scale Sets listet die Instanz-ID nicht im Ergebnis auf. Um die Instanz-ID zusammen mit dem Status der Erweiterung in jeder Instanz anzuzeigen, ist ein zusätzliches Skript 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 die erfolgreiche Anwendungsausführung:
$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 die VM-Skalierungsgruppe:
$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
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 ist in der Statusmeldung des Ergebnisses der VM-App-Erweiterung in der Instanzansicht enthalten.
So rufen Sie den Status der Anwendung in der VM-Skalierungsgruppe ab:
GET
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/ virtualMachineScaleSets/{VMSSName}/virtualMachines/{instanceId}/instanceView?api-version=2019-03-01
Die Ausgabe ähnelt dem VM-Beispiel weiter oben.
Um die VM-Anwendungsressource zu löschen, müssen Sie zuerst alle zugehörigen Versionen löschen. Das Löschen der Anwendungsversion führt dazu, dass die Anwendungsversionsressource aus der Azure Compute Gallery und allen ihren Replikaten gelöscht wird. Das Anwendungs-BLOB im Speicherkonto, das zum Erstellen der Anwendungsversion verwendet wird, ist nicht betroffen. Nach dem Löschen der Anwendungsversion tritt bei einem virtuellen Computer, der diese Version verwendet, ein Erneutimagevorgang auf diesen virtuellen Computern fehl. Verwenden Sie das Schlüsselwort "latest" als Versionsnummer in "applicationProfile", anstatt die Versionsnummer hart zu codieren, um diesen Fehler zu beheben.
Wenn die Anwendung jedoch gelöscht wird, schlägt der virtuelle Computer während des Erneutimagevorgangs fehl, da keine Versionen für die Installation von Azure verfügbar sind. Das VM-Profil muss aktualisiert werden, damit die VM-Anwendung nicht verwendet wird.
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
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:
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
Nächste Schritte
Erfahren Sie mehr über Azure VM-Anwendungen.