Condividi tramite


Panoramica delle applicazioni VM

Le applicazioni della macchina virtuale sono un tipo di risorsa disponibile nel servizio Raccolta di calcolo di Azure (in precedenza noto come Raccolta immagini condivise) che semplifica la gestione, la condivisione e la distribuzione globale delle applicazioni della macchina virtuale.

Anche se è possibile creare un'immagine di una macchina virtuale con app preinstallate, è necessario aggiornare l'immagine ogni volta che vengono apportate modifiche all'applicazione. Se si separa l'installazione dell'applicazione dalle immagini della macchina virtuale, non è necessario pubblicare una nuova immagine per ogni modifica di riga di codice.

I pacchetti dell'applicazione offrono vantaggi rispetto ad altri metodi di distribuzione e creazione di pacchetti:

  • Le applicazioni della macchina virtuale supportano i Criteri di Azure

  • Raggruppamento e controllo delle versioni dei pacchetti

  • Le applicazioni della macchina virtuale possono essere replicate a livello globale per essere più vicine all'infrastruttura, quindi non è necessario usare AzCopy o altri meccanismi di copia dell'archiviazione per copiare i bit tra aree di Azure.

  • Condivisione con altri utenti tramite il controllo degli accessi in base al ruolo di Azure

  • Supporto per le macchine virtuali e set di scalabilità flessibili e uniformi

  • Se alla macchina virtuale o al set di scalabilità sono state applicate regole del gruppo di sicurezza di rete, il download dei pacchetti da un repository Internet potrebbe non essere possibile. Con gli account di archiviazione, il download di pacchetti in macchine virtuali bloccate richiederebbe la configurazione di collegamenti privati.

  • Supporto per i BLOB in blocchi: questa funzionalità consente la gestione efficiente di file di grandi dimensioni suddividendoli in blocchi più piccoli e gestibili. Ideale per il caricamento di grandi quantità di dati, lo streaming multimediale e il caricamento in background.

Che cosa sono i pacchetti dell'app della macchina virtuale?

I pacchetti dell'applicazione della macchina virtuale usano più tipi di risorse:

Risorsa Descrizione
Raccolta di calcolo di Azure Una raccolta è un repository per la gestione e la condivisione dei pacchetti dell'applicazione. Gli utenti possono condividere la risorsa della raccolta e tutte le risorse figlio verranno condivise automaticamente. Il nome della raccolta deve essere univoco per ogni sottoscrizione. Ad esempio, potrebbe essere disponibile una raccolta per archiviare tutte le immagini del sistema operativo e un'altra raccolta per archiviare tutte le applicazioni della macchina virtuale.
Applicazione della macchina virtuale Definizione dell'applicazione della macchina virtuale. Si tratta di una risorsa logica che archivia i metadati comuni per tutte le versioni sottostanti. Ad esempio, è possibile avere una definizione dell'applicazione per Apache Tomcat con più versioni al suo interno.
Versione dell'applicazione della macchina virtuale Risorsa distribuibile. È possibile replicare a livello globale le versioni dell'applicazione della macchina virtuale nelle aree di destinazione più vicine all'infrastruttura di macchine virtuali. La versione dell'applicazione della macchina virtuale deve essere replicata in un'area prima di poter essere distribuita in una macchina virtuale in tale area.

Limiti

  • Non più di 3 repliche per area: quando si crea una versione dell'applicazione della macchina virtuale, il numero massimo di repliche per area è tre.

  • Archiviazione con accesso pubblico o URI della firma di accesso condiviso con privilegi di lettura: l'account di archiviazione deve avere accesso a livello pubblico o usare un URI della firma di accesso condiviso con privilegi di lettura, in quanto altri livelli di restrizione bloccano le distribuzioni.

  • Ripetizione delle installazioni non riuscite: attualmente, l'unico modo per ritentare un'installazione non riuscita consiste nel rimuovere l'applicazione dal profilo, quindi aggiungerla nuovamente.

  • Solo 25 applicazioni per macchina virtuale: in una macchina virtuale è possibile distribuire non più di 25 applicazioni in qualsiasi momento.

  • Dimensioni dell'applicazione pari a 2 GB: la dimensione massima del file di una versione dell'applicazione è di 2 GB.

  • Nessuna garanzia sui riavvii nello script: se lo script richiede un riavvio, è consigliabile posizionare l'applicazione per ultima durante la distribuzione. Mentre il codice tenta di gestire i riavvii, l'operazione potrebbe non riuscire.

  • Richiede un agente di macchine virtuali: l'agente di macchine virtuali deve esistere nella macchina virtuale ed essere in grado di ricevere gli stati degli obiettivi.

  • Più versioni della stessa applicazione nella stessa macchina virtuale: non possono essere presenti più versioni della stessa applicazione in una macchina virtuale.

  • Le operazioni di spostamento non sono attualmente supportate: lo spostamento di macchine virtuali con app di macchine virtuali in altri gruppi di risorse non è attualmente supportato.

Nota

Per le applicazioni di Raccolta di calcolo di Azure e delle macchine virtuali, la firma di accesso condiviso dell'archiviazione può essere eliminata dopo la replica. Tuttavia, qualsiasi operazione di aggiornamento successiva richiederà una firma di accesso condiviso valida.

Costo

Non sono previsti costi aggiuntivi per l'uso dei pacchetti dell'applicazione della macchina virtuale, ma vengono addebitati i costi per le risorse seguenti:

  • Costi di archiviazione dell'archiviazione di ogni pacchetto e di qualsiasi replica.
  • Addebiti in uscita di rete per la replica della prima versione dell'immagine dall'area di origine alle aree replicate. Le repliche successive vengono gestite tra le aree, così da non incorrere in nessun addebito aggiuntivo.

Per altre informazioni sul traffico di rete in uscita, vedere Dettagli sui prezzi per la larghezza di banda.

Applicazioni della macchina virtuale

La risorsa dell'applicazione della macchina virtuale definisce quanto segue sull'applicazione stessa:

  • Raccolta di calcolo di Azure in cui è archiviata l'applicazione della macchina virtuale
  • Nome dell'applicazione
  • Tipo di sistema operativo supportato, ad esempio Linux o Windows
  • Descrizione dell'applicazione della macchina virtuale

Versioni dell'applicazione della macchina virtuale

Le versioni dell'applicazione della macchina virtuale sono la risorsa distribuibile. Le versioni vengono definite con le proprietà seguenti:

  • Numero versione
  • Collegamento al file del pacchetto dell'applicazione in un account di archiviazione
  • Stringa di installazione per l'installazione dell'applicazione
  • Rimuovere la stringa per mostrare come rimuovere correttamente l'app
  • Nome del file del pacchetto da usare quando viene scaricato nella macchina virtuale
  • Nome del file di configurazione da usare per configurare l'app nella macchina virtuale
  • Collegamento al file di configurazione per l'applicazione della macchina virtuale, in cui è possibile includere i file di licenza
  • Aggiornare la stringa per aggiornare l'applicazione della macchina virtuale a una versione più recente
  • Data di fine del ciclo di vita. Le date di fine del ciclo di vita sono informative; è comunque possibile distribuire le versioni dell'applicazione della macchina virtuale oltre tale data.
  • Escludi da versione più recente. È possibile impedire l'uso di una versione come versione più recente dell'applicazione.
  • Aree di destinazione per la replica
  • Numero di repliche per area

Directory di download

Il percorso di download del pacchetto dell'applicazione e i file di configurazione sono:

  • Linux: /var/lib/waagent/Microsoft.CPlat.Core.VMApplicationManagerLinux/<appname>/<app version>
  • Windows: C:\Packages\Plugins\Microsoft.CPlat.Core.VMApplicationManagerWindows\1.0.9\Downloads\<appname>\<app version>

I comandi di installazione/aggiornamento/rimozione devono essere scritti presupponendo che il pacchetto dell'applicazione e il file di configurazione si trovino nella directory corrente.

Denominazione dei file

Quando il file dell'applicazione viene scaricato nella macchina virtuale, viene rinominato come "MyVmApp" (senza estensione). Ciò è dovuto al fatto che la macchina virtuale non conosce il nome o l'estensione originale del pacchetto. Usa l'unico nome che ha, ovvero il nome dell'applicazione stesso, "MyVmApp".

Ecco alcune alternative per gestire questo problema:

È possibile modificare lo script in modo da includere un comando per rinominare il file prima dell'esecuzione:

move .\\MyVmApp .\\MyApp.exe & MyApp.exe /S

È anche possibile usare la proprietà packageFileName (e la corrispondente proprietà configFileName) per indicare come rinominare il file. Ad esempio, impostandolo su "MyApp.exe", lo script di installazione deve essere:

MyAppe.exe /S

Suggerimento

Se il BLOB è stato originariamente denominato "myApp.exe" anziché "myapp", lo script precedente avrebbe funzionato anche senza impostare la proprietà packageFileName.

Interprete dei comandi

Gli interpreti dei comandi predefiniti sono:

  • Linux: /bin/bash
  • Windows: cmd.exe

È possibile usare un interprete diverso, ad esempio Chocolatey o PowerShell, purché sia installato nel computer, chiamando il file eseguibile e passando il comando. Ad esempio, per eseguire il comando in PowerShell in Windows anziché cmd, è possibile passare powershell.exe -Command '<powershell commmand>'

Procedura di gestione degli aggiornamenti

Quando si aggiorna una versione dell'applicazione in una macchina virtuale o in set di scalabilità di macchine virtuali, viene usato il comando di aggiornamento fornito durante la distribuzione. Se la versione aggiornata non dispone di un comando di aggiornamento, la versione corrente viene rimossa e viene installata la nuova versione.

I comandi di aggiornamento devono essere scritti prevedendo che l'aggiornamento potrebbe essere eseguito da qualsiasi versione precedente dell'applicazione della macchina virtuale.

Suggerimenti per la creazione di applicazioni della macchina virtuale in Linux

Le applicazioni di terze parti per Linux possono essere incluse in pacchetti in alcuni modi. Si esaminerà ora come gestire la creazione dei comandi di installazione per alcuni dei modi più comuni.

File .tar e .gz

Questi file sono archivi compressi e possono essere estratti nella posizione desiderata. Controllare le istruzioni di installazione per il pacchetto originale nel caso in cui i file debbano essere estratti in una posizione specifica. Se il file .tar o .gz contiene codice sorgente, vedere le istruzioni per il pacchetto per informazioni sulla procedura di installazione dall'origine.

Esempio di comando per installare golang un computer Linux:

sudo tar -C /usr/local -xzf go_linux

Comando di rimozione di esempio:

sudo rm -rf /usr/local/go

Creazione di pacchetti di applicazioni tramite .deb, .rpm e altri pacchetti specifici della piattaforma per le macchine virtuali con accesso a Internet con restrizioni

È possibile scaricare singoli pacchetti per strumenti di gestione di pacchetti specifici della piattaforma, ma in genere non contengono tutte le dipendenze. Per questi file, è necessario includere anche tutte le dipendenze nel pacchetto dell'applicazione oppure fare in modo che lo strumento di gestione dei pacchetti di sistema scarichi le dipendenze tramite i repository disponibili per la macchina virtuale. Se si usa una macchina virtuale con accesso a Internet con restrizioni, è necessario creare manualmente un pacchetto di tutte le dipendenze.

La comprensione delle dipendenze può essere un compito un po' complicato. Sono disponibili strumenti di terze parti che consentono di visualizzare l'intero albero delle dipendenze.

In Ubuntu è possibile eseguire sudo apt show <package_name> | grep Depends per visualizzare tutti i pacchetti installati durante l'esecuzione del comando sudo apt-get install <packge_name>. È quindi possibile usare tale output per scaricare tutti i file .deb per creare un archivio che può essere usato come pacchetto dell'applicazione.

  1. Ad esempio, per creare un pacchetto dell'applicazione della macchina virtuale per installare PowerShell per Ubuntu, eseguire prima i comandi seguenti per abilitare il repository da cui è possibile scaricare PowerShell e anche per identificare le dipendenze del pacchetto in una nuova macchina virtuale Ubuntu.
# Download the Microsoft repository GPG keys
wget -q "https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb"
# Register the Microsoft repository GPG keys
sudo dpkg -i packages-microsoft-prod.deb
sudo rm -rf packages-microsoft-prod.deb
sudo apt update
sudo apt show powershell | grep Depends
  1. Controllare l'output della riga Depends che elenca i pacchetti seguenti:
Depends: libc6, lib32gcc-s1, libgssapi-krb5-2, libstdc++6, zlib1g, libicu72|libicu71|libicu70|libicu69|libicu68|libicu67|libicu66|libicu65|libicu63|libicu60|libicu57|libicu55|libicu52, libssl3|libssl1.1|libssl1.0.2|libssl1.
  1. Scaricare ognuno di questi file usando sudo apt-get download <package_name> e creare un archivio compresso con estensione TAR con tutti i file.
  • Ubuntu 18.04:
mkdir /tmp/powershell
cd /tmp/powershell
sudo apt-get download libc6
sudo apt-get download lib32gcc-s1
sudo apt-get download libgssapi-krb5-2
sudo apt-get download libstdc++6
sudo apt-get download zlib1g
sudo apt-get download libssl1.1
sudo apt-get download libicu60
sudo apt-get download powershell
sudo tar -cvzf powershell.tar.gz *.deb
  • Ubuntu 20.04:
mkdir /tmp/powershell
cd /tmp/powershell
sudo apt-get download libc6
sudo apt-get download lib32gcc-s1
sudo apt-get download libgssapi-krb5-2
sudo apt-get download libstdc++6
sudo apt-get download zlib1g
sudo apt-get download libssl1.1
sudo apt-get download libicu66
sudo apt-get download powershell
sudo tar -cvzf powershell.tar.gz *.deb
  • Ubuntu 22.04:
mkdir /tmp/powershell
cd /tmp/powershell
sudo apt-get download libc6
sudo apt-get download lib32gcc-s1
sudo apt-get download libgssapi-krb5-2
sudo apt-get download libstdc++6
sudo apt-get download zlib1g
sudo apt-get download libssl3
sudo apt-get download libicu70
sudo apt-get download powershell
sudo tar -cvzf powershell.tar.gz *.deb
  1. Questo archivio con estensione TAR è il file del pacchetto dell'applicazione.
  • Il comando di installazione in questo caso è:
sudo tar -xvzf powershell.tar.gz && sudo dpkg -i *.deb
  • E il comando di rimozione è:
sudo apt remove powershell

Usare sudo apt autoremove anziché tentare in modo esplicito di rimuovere tutte le dipendenze. È possibile che siano state installate altre applicazioni con dipendenze sovrapposte. In questo caso, un comando di rimozione esplicito avrà esito negativo.

Se non si vogliono risolvere manualmente le dipendenze e apt è in grado di connettersi ai repository, è possibile installare un'applicazione con un solo file .deb e consentire a apt di gestire le dipendenze.

Comando di installazione di esempio:

dpkg -i <package_name> || apt --fix-broken install -y

Suggerimenti per la creazione di applicazioni della macchina virtuale in Windows

La maggior parte delle applicazioni di terze parti in Windows è disponibile come programmi di installazione con estensione .exe o .msi. Alcune sono disponibili anche come file di estrazione ed esecuzione con estensione ZIP. Vengono ora esaminate le procedure consigliate per ogni singolo caso.

Programma di installazione con estensione .exe

I file eseguibili del programma di installazione in genere avviano un'interfaccia utente e chiedono all'utente di selezionare l'interfaccia utente. Se il programma di installazione supporta un parametro per la modalità invisibile all'utente, tale parametro deve essere incluso nella stringa di installazione.

Cmd.exe prevede anche che i file eseguibili abbiano l'estensione .exe, quindi è necessario rinominare il file in modo che abbia l'estensione .exe.

Se si vuole creare un pacchetto dell'applicazione della macchina virtuale per myApp.exe, che viene fornito come eseguibile, l'applicazione della macchina virtuale è denominata "myApp"; scrivere quindi il comando presupponendo che il pacchetto dell'applicazione si trovi nella directory corrente:

"move .\\myApp .\\myApp.exe & myApp.exe /S -config myApp_config"

Se il file eseguibile del programma di installazione non supporta un parametro di disinstallazione, a volte è possibile cercare il Registro di sistema in un computer di test per sapere dove si trova il programma di disinstallazione.

Nel Registro di sistema, la stringa di disinstallazione è archiviata in Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\<installed application name>\UninstallString; è pertanto possibile usarne il contenuto come comando di rimozione:

'\"C:\\Program Files\\myApp\\uninstall\\helper.exe\" /S'

Programma di installazione con estensione .msi

Per l'esecuzione da riga di comando dei programmi di installazione .msi, i comandi per installare o rimuovere un'applicazione devono usare msiexec. In genere, msiexec viene eseguito come processo separato e cmd non ne attende il completamento; ciò può causare problemi durante l'installazione di più applicazioni di macchine virtuali. Il comando start può essere usato con msiexec per assicurarsi che l'installazione venga completata prima che il comando restituisca il controllo. Ad esempio:

start /wait %windir%\\system32\\msiexec.exe /i myapp /quiet /forcerestart /log myapp_install.log

Comando di rimozione di esempio:

start /wait %windir%\\system32\\msiexec.exe /x $appname /quiet /forcerestart /log ${appname}_uninstall.log

In genere, il start comando viene chiamato all'interno di uno script batch. Se usato con il /wait parametro , lo script chiamante verrà sospeso fino al termine del processo chiamato. Al termine, lo script batch verificherà la presenza della errorlevel variabile impostata dal start comando e uscire come indicato di seguito:

start /wait %windir%\\system32\\msiexec.exe /i myapp /quiet /forcerestart /log myapp_install.log
if %errorlevel% neq 0 exit /b %errorlevel%
...

File compressi

Per i file con estensione .zip o altri file compressi, rinominare e decomprimere il contenuto del pacchetto dell'applicazione nella destinazione desiderata.

Comando di installazione di esempio:

rename myapp myapp.zip && mkdir C:\myapp && powershell.exe -Command "Expand-Archive -path myapp.zip -destinationpath C:\myapp"

Comando di rimozione di esempio:

rmdir /S /Q C:\\myapp

Gestire l'errore come errore di distribuzione

L'estensione dell'applicazione della macchina virtuale restituisce sempre un messaggio di esito positivo indipendentemente dal fatto che l'installazione, l'aggiornamento o la rimozione di un'app della macchina virtuale abbia avuto esito negativo. L'estensione dell'applicazione della macchina virtuale segnala lo stato dell'estensione come errore solo quando si verifica un problema con l'estensione o l'infrastruttura sottostante. Questo comportamento viene attivato dal flag per gestire l'errore come errore di distribuzione, impostato su $false per impostazione predefinita e può essere modificato in $true. Il flag di errore può essere configurato in PowerShell o nell'interfaccia della riga di comando.

Risoluzione dei problemi relativi alle applicazioni delle macchine virtuali

Per sapere se un'applicazione della macchina virtuale specifica è stata aggiunta correttamente all'istanza della macchina virtuale, controllare il messaggio dell'estensione dell'applicazione stessa.

Per altre informazioni su come ottenere lo stato delle estensioni della macchina virtuale, vedere Estensioni e funzionalità della macchina virtuale per Linux e Estensioni e funzionalità della macchina virtuale per Windows.

Per ottenere lo stato delle estensioni della macchina virtuale, usare Get-AzVM:

Get-AzVM -name <VM name> -ResourceGroupName <resource group name> -Status | convertto-json -Depth 10

Per ottenere lo stato delle estensioni del set di scalabilità, usare Get-AzVMSS:

$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

Messaggi di errore

Message Descrizione
La versione corrente {name} dell'applicazione VM è stata deprecata alla versione {date}. Si è tentato di distribuire una versione già deprecata dell'applicazione della macchina virtuale. Provare a usare latest anziché specificare una versione specifica.
La versione corrente {name} dell'applicazione VM supporta il sistema operativo {OS}, mentre il sistema operativo corrente del disco del sistema operativo è {OS}. Si è tentato di distribuire un'applicazione Linux nell'istanza di Windows o viceversa.
È stato superato il numero massimo di applicazioni VM (massimo=5, corrente={count}). Usare un numero inferiore di applicazioni e ripetere la richiesta. Attualmente sono supportate solo cinque applicazioni della macchina virtuale per ogni macchina virtuale o set di scalabilità.
È stata specificata più di un'applicazione VM con lo stesso packageReferenceId. La stessa applicazione è stata specificata più di una volta.
Sottoscrizione non autorizzata ad accedere a questa immagine. La sottoscrizione non ha accesso a questa versione dell'applicazione.
L'account di archiviazione negli argomenti non esiste. Nessuna applicazione per questa sottoscrizione.
L'immagine della piattaforma {image} non è disponibile. Verificare che tutti i campi del profilo di archiviazione siano corretti. Per altri dettagli sulle informazioni del profilo di archiviazione, vedere https://aka.ms/storageprofile. L'applicazione non esiste.
L'immagine della raccolta {image} non è disponibile nell'area {region}. Contattare il proprietario dell'immagine per eseguire la replica in questa area o modificare l'area richiesta. La versione dell'applicazione della raccolta esiste, ma non è stata replicata in questa area.
La firma di accesso condiviso non è valida per l'URI di origine {uri}. È stato ricevuto un errore Forbidden dal servizio di archiviazione quando si tenta di recuperare le informazioni sull'URL (mediaLink o defaultConfigurationLink).
Il BLOB a cui fa riferimento l'URI di origine {uri} non esiste. Il BLOB fornito per le proprietà mediaLink o defaultConfigurationLink non esiste.
Non è possibile accedere all'URL della versione dell'applicazione della raccolta {url} a causa dell'errore seguente: nome remoto non trovato. Assicurarsi che il BLOB esista e che sia accessibile pubblicamente o sia un URL di firma di accesso condiviso con privilegi di lettura. Il caso più probabile è che non sia stato fornito un URI di firma di accesso condiviso con privilegi di lettura.
Non è possibile accedere all'URL della versione dell'applicazione della raccolta {url} a causa dell'errore seguente: {error description}. Assicurarsi che il BLOB esista e che sia accessibile pubblicamente o sia un URL di firma di accesso condiviso con privilegi di lettura. Si è verificato un problema con il BLOB di archiviazione fornito. La descrizione dell'errore fornisce altre informazioni.
L'operazione {operationName} non è consentita in {application} perché è contrassegnata per l'eliminazione. È solo possibile ripetere l'operazione di eliminazione oppure attendere il completamento di un'operazione in corso. Si è tentato di aggiornare un'applicazione attualmente in fase di eliminazione.
Il valore {value} del parametro 'galleryApplicationVersion.properties.publishingProfile.replicaCount' non è compreso nell'intervallo. Il valore deve essere compreso tra uno e tre inclusi. Sono consentite solo da una a tre repliche per le versioni dell'applicazione della macchina virtuale.
La modifica della proprietà 'galleryApplicationVersion.properties.publishingProfile.manageActions.install' non è consentita (o aggiornamento, eliminazione) Non è possibile modificare le azioni di gestione in una versione di VmApplication esistente. È necessario creare una nuova versione di VmApplication.
La modifica della proprietà 'galleryApplicationVersion.properties.publishingProfile.settings.packageFileName' non è consentita (o configFileName) Non è possibile modificare le impostazioni, ad esempio il nome di file del pacchetto o il nome del file di configurazione. È necessario creare una nuova versione di VmApplication.
Il BLOB a cui fa riferimento l'URI di origine {uri} è troppo grande: dimensione = {size}. Le dimensioni massime consentite per i BLOB sono "1 GB". La dimensione massima per un BLOB a cui fa riferimento mediaLink o defaultConfigurationLink attualmente è pari a 1 GB.
Il BLOB a cui fa riferimento l'URI di origine {uri} è vuoto. È stato fatto riferimento a un BLOB vuoto.
Il tipo di BLOB {type} non è supportato per l'operazione {operation}. Sono supportati solo BLOB di pagine e BLOB in blocchi. VmApplications supporta solo BLOB di pagine e BLOB in blocchi.
La firma di accesso condiviso non è valida per l'URI di origine {uri}. L'URI di firma di accesso condiviso fornito per mediaLink o defaultConfigurationLink non è un URI di firma di accesso condiviso valido.
Non è possibile specificare {region} nelle aree di destinazione perché alla sottoscrizione manca la funzionalità obbligatoria {featureName}. Registrare la sottoscrizione con la funzionalità richiesta o rimuovere l'area dall'elenco di aree di destinazione. Per usare VmApplications in determinate aree con restrizioni, è necessario che il flag di funzionalità sia registrato per tale sottoscrizione.
Le aree del profilo di pubblicazione delle versioni delle immagini della raccolta {regions} devono contenere la posizione della versione dell'immagine {location}. L'elenco delle aree per la replica deve contenere il percorso in cui si trova la versione dell'applicazione.
Le aree duplicate non sono consentite nelle aree di pubblicazione di destinazione. Le aree di pubblicazione non possono contenere duplicati.
Le risorse della versione dell'applicazione della raccolta attualmente non supportano la crittografia. La proprietà di crittografia per le aree di destinazione non è supportata per le applicazioni delle macchine virtuali
Il nome dell'entità non corrisponde al nome nell'URL della richiesta. La versione dell'applicazione della raccolta specificata nell'URL della richiesta non corrisponde a quella specificata nel corpo della richiesta.
Il nome della versione dell'applicazione della raccolta non è valido. Il nome della versione dell'applicazione deve avere il formato Major(int32). Minor(int32). Patch(int32), dove int è compreso tra 0 e 2.147.483.647 (incluso), ad esempio 1.0.0, 2018.12.1 e così via. La versione dell'applicazione della raccolta deve avere il formato specificato.

Passaggi successivi