Condividi tramite


Gestire Azure applicazioni di macchine virtuali

Questo articolo illustra come visualizzare, aggiornare ed eliminare l'applicazione di macchine virtuali pubblicata in Azure Raccolta di calcolo. Illustra quindi come visualizzare, monitorare, aggiornare ed eliminare la risorsa dell'applicazione vm distribuita in Azure macchina virtuale (VM) o Virtual Machine Scale Sets.

Questa sezione illustra come visualizzare, aggiornare ed eliminare applicazioni VM pubblicate in Azure Compute Gallery.

Visualizzare le applicazioni vm pubblicate

  • Portal
  • Rest
  • CLI
  • PowerShell

Per visualizzare le proprietà di un'applicazione di macchina virtuale pubblicata nel portale di Azure:

  1. Accedere al portale Azure.
  2. Cerca Azure Compute Gallery.
  3. Selezionare la galleria che contiene l'Applicazione VM.
  4. Fare clic sul nome dell'applicazione della macchina virtuale che si vuole visualizzare.
  5. Il pannello Panoramica/Proprietà visualizza informazioni sull'applicazione vm.
  6. Il pannello Panoramica/Versioni visualizza tutte le versioni pubblicate e le relative proprietà di base, ad esempio Aree di destinazione, Stato provisioning e Stato replica.
  7. Selezionare una versione specifica per visualizzarne tutti i dettagli.

Screenshot che mostra le proprietà dell'applicazione vm e tutte le versioni nel portale Azure.

Screenshot che mostra le proprietà della versione dell'applicazione vm nel Azure portal.

Visualizzare le applicazioni vm pubblicate usando Azure Resource Graph

Query di Azure Resource Graph può essere usata per visualizzare tutte le applicazioni VM pubblicate e le relative proprietà in tutte le gallerie di calcolo. Offre un modo programmatico per visualizzare l'inventario delle applicazioni e le relative proprietà su larga scala. Usare questo metodo per l'integrazione con dashboard e report personalizzati.

Visualizza l'elenco di tutte le gallerie di calcolo

resources
| where type == "microsoft.compute/galleries"
| where subscriptionId == "85236c53-92ad-4e66-97a4-8253a5246b99"
| extend provisioningState = properties["provisioningState"]
| extend permissions = properties["sharingProfile"]["permissions"]
| extend communityGalleryInfo = properties["sharingProfile"]["communityGalleryInfo"]
| project subscriptionId, resourceGroup, location, name, provisioningState, permissions, communityGalleryInfo

Visualizzare l'elenco di tutte le applicazioni di macchine virtuali pubblicate in tutte le raccolte

resources
| where subscriptionId == "85236c53-92ad-4e66-97a4-8253a5246b99"
| where type == "microsoft.compute/galleries/applications"
| extend OSType = properties["supportedOSType"]
| extend description = properties["description"]
| extend endOfLifeDate = properties["endOfLifeDate"]
| parse id with  "/subscriptions/" SubId "/resourceGroups/" rgName "/providers/Microsoft.Compute/galleries/" gallaryName "/applications/" appName  
| project subscriptionId, resourceGroup, location, gallaryName, name, OSType, description

Visualizza l'elenco di tutte le versioni pubblicate delle applicazioni VM in tutte le applicazioni e gallerie.

resources
| where type == "microsoft.compute/galleries/applications/versions"
| project subscriptionId, resourceGroup, id, location, properties
| parse id with  "/subscriptions/" SubId "/resourceGroups/" rgName "/providers/Microsoft.Compute/galleries/" gallaryName "/applications/" appName "/versions/" versionNumber 
| extend provisioningState = properties["provisioningState"]
| extend publishingProfile = properties["publishingProfile"]
| extend storageAccountType = publishingProfile["storageAccountType"]
| extend scriptBehaviorAfterReboot = publishingProfile["settings"]["scriptBehaviorAfterReboot"]
| extend packageFileName = publishingProfile["settings"]["packageFileName"]
| extend configFileName = publishingProfile["settings"]["configFileName"]
| extend mediaLink = publishingProfile["source"]["mediaLink"]
| extend defaultConfigurationLink = publishingProfile["source"]["defaultConfigurationLink"]
| extend excludeFromLatest = publishingProfile["excludeFromLatest"]
| extend targetRegions = publishingProfile["targetRegions"]
| extend replicaCount = publishingProfile["replicaCount"]
| extend publishedDate = publishingProfile["publishedDate"]
| extend installScript = publishingProfile["manageActions"]["install"]
| extend removeScript = publishingProfile["manageActions"]["remove"]
| extend safetyProfile = properties["safetyProfile"]
| extend allowDeletionOfReplicatedLocations = safetyProfile["allowDeletionOfReplicatedLocations"]
| project-away safetyProfile, publishingProfile, SubId, rgName, id, properties

Aggiornare l'applicazione di macchine virtuali pubblicata

Annotazioni

Non tutte le proprietà di un'applicazione vm pubblicata o di una versione dell'applicazione vm possono essere aggiornate. Per un elenco completo delle proprietà aggiornabili, vedere la risorsa applicazione vm e lo schema delle risorse della versione dell'applicazione vm.

  • REST
  • CLI
  • PowerShell

Aggiornare la risorsa dell'applicazione VM.

PATCH
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}?api-version=2024-03-03

Body
{
    "properties": {
        "description": "Updated description",
        "endOfLifeDate": "2026-12-31T00:00:00Z",
        "eula": "Updated EULA text",
        "privacyStatementUri": "https://contoso.com/privacy",
        "releaseNoteUri": "https://contoso.com/release-notes"
    }
}

Aggiornare la risorsa della versione dell'applicazione della macchina virtuale:

PATCH
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{galleryApplicationName}/versions/{galleryApplicationVersionName}?api-version=2024-03-03

Body
{
    "properties": {
        "publishingProfile": {
            "targetRegions": [
                {
                    "name": "eastus",
                    "regionalReplicaCount": 2,
                    "storageAccountType": "Standard_LRS"
                },
                {
                    "name": "westus",
                    "regionalReplicaCount": 1,
                    "storageAccountType": "Standard_LRS"
                }
            ],
            "excludeFromLatest": false
        }
    }
}

Per eliminare la risorsa applicazione macchina virtuale, è necessario prima eliminare tutte le relative versioni. L'eliminazione della versione dell'applicazione comporta la rimozione della risorsa di tale versione dalla Azure Compute Gallery e da tutte le sue repliche. Il BLOB dell'applicazione nell'account di archiviazione usato per creare la versione dell'applicazione non è interessato.

Avvertimento

  • L'eliminazione della versione dell'applicazione causa l'esito negativo delle operazioni PUT successive sulle macchine virtuali che usano tale versione. Per evitare questo errore, usare la parola chiave come numero di versione nel anziché codificare il numero di versione .

  • L'eliminazione dell'applicazione vm distribuita in qualsiasi macchina virtuale o Virtual Machine Scale Sets causa l'esito negativo delle operazioni PUT successive su queste risorse, ad esempio aggiornamento, scalabilità o ricreazione dell'immagine. Prima di eliminare l'applicazione, assicurarsi che tutte le istanze di macchine virtuali/Virtual Machine Scale Sets interrompano l'uso dell'applicazione rimuovendola dal relativo applicationProfile.

  • Per evitare l'eliminazione accidentale, impostare safetyProfile/allowDeletionOfReplicatedLocations su false durante la pubblicazione della versione e applicare un blocco Azure Resource Manager (CanNotDelete o ReadOnly) nella risorsa dell'applicazione della macchina virtuale.

  • Portal
  • REST
  • CLI
  • PowerShell
  1. Accedere al portale Azure.
  2. Cercare la Raccolta di calcolo di Azure e aprire la raccolta di destinazione.
  3. Selezionare l'applicazione vm da rimuovere.
  4. Selezionare una o più versioni da eliminare.
  5. Per eliminare l'applicazione vm, eliminare prima tutte le versioni. Fare clic su Elimina (nella parte superiore del pannello).
  6. Monitorare le notifiche per il completamento del processo. Se l'eliminazione è bloccata, rimuovere eventuali blocchi e assicurarsi che nessuna macchina virtuale o Virtual Machine Scale Sets faccia riferimento all'applicazione.

Screenshot che mostra l'eliminazione di un'applicazione vm e le relative versioni nel portale Azure.

Gestire l'applicazione VM distribuita sulle macchine virtuali Azure e sui Virtual Machine Scale Sets

Questa sezione illustra come visualizzare i dettagli dell'applicazione distribuiti e monitorare le applicazioni distribuite nell'infrastruttura. Illustra anche come aggiornare ed eliminare applicazioni VM distribuite nelle macchine virtuali di Azure e nei set di scalabilità delle macchine virtuali.

Visualizzare le applicazioni vm distribuite e il relativo stato

Azure usa VMAppExtension per distribuire, monitorare e gestire le applicazioni di macchine virtuali nella macchina virtuale. Di conseguenza, lo stato di provisioning dell'applicazione vm distribuita è descritto nello stato di VMAppExtension.

  • Portal
  • REST
  • CLI
  • PowerShell

Per visualizzare lo stato dell'applicazione della macchina virtuale, passare alla scheda Estensioni e applicazioni in Impostazioni e controllare lo stato di VMAppExtension:

Screenshot che mostra lo stato dell'applicazione della macchina virtuale.

Per visualizzare lo stato dell'applicazione della macchina virtuale per un set di macchine virtuali a scalabilità, passare alla pagina del portale di Azure 'Set di macchine virtuali a scalabilità'. Nella sezione Istanze selezionare una delle istanze. Passare quindi alla scheda Estensioni e applicazioni in Impostazioni e controllare lo stato di VMAppExtension:

Screenshot che mostra lo stato dell'applicazione di Virtual Machine Scale Sets.

Visualizzare i log di installazione dell'applicazione usando il comando Esegui

Quando Azure Applications per macchine virtuali scarica e installa l'applicazione su macchine virtuali Azure o su gruppi di scalabilità di macchine virtuali, incanala tutti i risultati stdout nel file stdout all'interno del repository dell'applicazione. I clienti possono abilitare la registrazione dettagliata per l'installazione dell'applicazione e scrivere log personalizzati usando . I clienti possono quindi controllare manualmente il file e o usare Runcommand per ottenere il contenuto del file.

Usare lo script di PowerShell seguente nel comando di esecuzione gestita. Aggiornare le variabili e per l'applicazione

$appName = "vm-application-name"        # VM Application definition name
$appVersion = "1.0.0"                   # VM Application version name

$VMAppManagerVersion = "1.0.16"         # Version of the VMApplicationManagerWindows extension on the VM
$StdoutFilePath = "C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\$VMAppManagerVersion\Downloads\$appName\$appVersion\stdout"
$StderrFilePath = "C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\$VMAppManagerVersion\Downloads\$appName\$appVersion\stderr"

Write-Host "`n=== Contents of stdout ==="
Get-Content -Path $StdoutFilePath

Write-Host "`n=== Contents of stderr ==="
Get-Content -Path $StderrFilePath

Eseguire il comando run usando gli script e ottenere i log di installazione dell'applicazione.

  • Portal
  • CLI
  • PowerShell
  1. Aprire il portale Azure e passare alla macchina virtuale.
  2. In Operazioni selezionare Esegui comando.
  3. Scegliere RunPowerShellScript nell'elenco.
  4. Immettere lo script di PowerShell nell'editor.
  5. Selezionare Esegui per eseguire lo script.
  6. Visualizza l'Output nella sezione Output. Se lo script non riesce, controllare la sezione Errore per informazioni dettagliate.

Per altre informazioni, vedere Esegui script di PowerShell nella macchina virtuale Windows usando Esegui comando.

Visualizzare tutte le applicazioni vm distribuite usando Azure Resource Graph

Query di Azure Resource Graph può essere usata per visualizzare tutte le applicazioni VM distribuite e le relative proprietà in tutte le VM e i Virtual Machine Scale Sets. Offre un modo a livello di codice per visualizzare l'inventario delle applicazioni, lo stato e le versioni distribuite su larga scala. Usare questo metodo per l'integrazione con dashboard e report personalizzati.

resources
| where type == "microsoft.compute/virtualmachines" or type == "microsoft.compute/virtualmachinescalesets"
| where properties has "applicationProfile"
| extend resourceType = iff(type == "microsoft.compute/virtualmachines", "VM", "VMSS")
| extend applications = iff(resourceType == "VM", parse_json(properties["applicationProfile"]["galleryApplications"]), parse_json(properties["virtualMachineProfile"]["applicationProfile"]["galleryApplications"]))
| mv-expand applications
| extend enableAutomaticUpgrade = applications["enableAutomaticUpgrade"]
| extend packageReferenceId = applications["packageReferenceId"]
| extend treatFailureAsDeploymentFailure = applications["treatFailureAsDeploymentFailure"]
| parse packageReferenceId with "/subscriptions/" publisherSubcriptionId "/resourceGroups/" publisherResourceGroup "/providers/Microsoft.Compute/galleries/" galleryName "/applications/" appName "/versions/" version
| project tenantId, subscriptionId, resourceGroup, resourceName = name, type, location, appName, version, enableAutomaticUpgrade, treatFailureAsDeploymentFailure, galleryName, publisherSubcriptionId, publisherResourceGroup, properties

Controllare l'applicazione vm richiesta usando Azure Policy

Azure Policy consente di applicare la governance controllando se le applicazioni vm necessarie vengono distribuite tra le macchine virtuali e Virtual Machine Scale Sets. È possibile creare e assegnare criteri personalizzati per verificare la conformità e assicurarsi che nell'infrastruttura siano presenti applicazioni specifiche.

Per istruzioni dettagliate su come verificare la distribuzione delle applicazioni VM con Azure Policy, vedere Audit required VM applications using Azure Policy.

Aggiornare l'applicazione vm distribuita

Per aggiornare un'applicazione della macchina virtuale distribuita, modificare per fare riferimento a una versione più recente o modificare le impostazioni di distribuzione quale o .

  • REST
  • CLI
  • PowerShell

Aggiornare la versione o le impostazioni dell'applicazione vm in una singola macchina virtuale:

PATCH
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachines/{vmName}?api-version=2024-03-03

Body
{
    "properties": {
        "applicationProfile": {
            "galleryApplications": [
                {
                    "packageReferenceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{newVersion}",
                    "treatFailureAsDeploymentFailure": true,
                    "enableAutomaticUpgrade": true
                }
            ]
        }
    }
}

Aggiorna l'applicazione VM su un Set di Scalabilità di Macchine Virtuali (modello):

PATCH
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmssName}?api-version=2024-03-03

Body
{
    "properties": {
        "virtualMachineProfile": {
            "applicationProfile": {
                "galleryApplications": [
                    {
                        "packageReferenceId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/galleries/{galleryName}/applications/{applicationName}/versions/{newVersion | latest}",
                        "treatFailureAsDeploymentFailure": true,
                        "order": 2
                    }
                ]
            }
        }
    }
}

Applicare la modifica alle istanze di Virtual Machine Scale Sets esistenti (necessarie quando upgradePolicy.mode è Manuale):

POST
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/virtualMachineScaleSets/{vmssName}/updateInstances?api-version=2024-03-03

Body
{
    "instanceIds": ["*"]
}

Suggerimento

Usare come identificatore di versione in per distribuire automaticamente la versione pubblicata più recente senza aggiornare manualmente le distribuzioni.

Rimuovere l'applicazione VM dalla macchina virtuale di Azure o dagli insiemi di scalabilità di macchine virtuali

  • Portal
  • REST
  • CLI
  • PowerShell
  1. Aprire il portale di Azure e andare alla macchina virtuale di destinazione o ai set di scalabilità di macchine virtuali.
  2. In Impostazioni selezionare Estensioni e applicazioni, quindi selezionare la scheda Applicazioni vm .
  3. Fare clic sul pulsante Disinstalla nell'applicazione vm e su Salva.
  4. Tieni traccia dello stato di avanzamento nelle notifiche o controlla la vista dell'istanza per lo stato di VMAppExtension.

Screenshot che mostra come disinstallare l'applicazione vm da una macchina virtuale.

Passaggi successivi