Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come distribuire il codice come pacchetto ZIP, WAR, JAR o EAR nel Servizio app di Azure. Illustra anche come distribuire singoli file nel servizio app, separati dal pacchetto dell'applicazione.
Prerequisiti
Per completare i passaggi descritti in questo articolo, creare un'app del Servizio app di Azureo usare un'app creata per un'altra esercitazione.
Se non si ha un account Azure, creare un account gratuito prima di iniziare.
Creare un pacchetto ZIP del progetto
Importante
Quando si crea il pacchetto ZIP per la distribuzione, non includere la directory radice. Includere solo i file e le directory nella directory radice. Se si scarica un repository GitHub come file ZIP, non è possibile distribuire il file così com'è nel servizio app. GitHub aggiunge directory annidate al livello superiore, il che non funziona con il servizio app.
In una finestra terminale locale, vai alla cartella principale del tuo progetto dell'app.
Questa directory deve contenere il file di immissione nell'app Web, ad esempio index.html
, index.php
e app.js
. Può anche contenere file di gestione dei pacchetti come project.json
, composer.json
package.json
, bower.json
, e requirements.txt
.
Se non si vuole che il servizio app esegua automaticamente l'automazione della distribuzione, eseguire tutte le attività di compilazione. Ad esempio: npm
, bower
, gulp
, composer
e pip
. Assicurarsi di avere tutti i file necessari per eseguire l'app. Questo passaggio è obbligatorio se si desidera eseguire direttamente il pacchetto.
Creare un archivio ZIP per tutti gli elementi del progetto. Per i progetti dotnet
, aggiungere tutti gli elementi nella directory di output del comando dotnet publish
, con l’esclusione della directory di output stessa. Ad esempio, immettere il comando seguente nel terminale per creare un pacchetto ZIP che includa il contenuto della directory corrente:
# Bash
zip -r <file-name>.zip .
# PowerShell
Compress-Archive -Path * -DestinationPath <file-name>.zip
Distribuire un pacchetto ZIP
Quando si distribuisce un pacchetto ZIP, il servizio app decomprime il relativo contenuto nel percorso predefinito per l'app: D:\home\site\wwwroot
per Windows e /home/site/wwwroot
per Linux.
La distribuzione tramite pacchetto ZIP utilizza lo stesso servizio Kudu usato per le distribuzioni basate su integrazione continua. Kudu supporta le funzionalità seguenti per la distribuzione del pacchetto ZIP:
- Eliminazione di file rimasti da una distribuzione precedente
- Opzione per attivare il processo di compilazione predefinito, che include il ripristino del pacchetto
- Personalizzazione della distribuzione, inclusi gli script di distribuzione in esecuzione
- Log di distribuzione
- Limite di dimensioni del pacchetto di 2.048 megabyte
Nota
I file nel pacchetto ZIP vengono copiati solo se i timestamp non corrispondono a ciò che è già distribuito.
Distribuire utilizzando l'interfaccia utente di distribuzione ZIP in Kudu
- Aprire l'app nel portale di Azure e selezionare Strumenti> di sviluppoStrumenti avanzati e quindi selezionare Vai.
- In Kudu selezionare Strumenti>Distribuzione Push Zip.
- Caricare il pacchetto ZIP creato in Creare un pacchetto ZIP del progetto. Trascinarlo nell'area esplora file nella pagina Web.
Quando la distribuzione è in corso, un'icona nell'angolo superiore destro mostra la percentuale di avanzamento. La pagina visualizza anche i messaggi per l'operazione sotto l'area Esplora file . Al termine della distribuzione, l'ultimo messaggio dovrebbe indicare "Distribuzione riuscita".
Questo endpoint non funziona attualmente per il servizio app in Linux. È invece consigliabile usare FTP o l'API di distribuzione ZIP.
Senza zip implementare l'interfaccia utente in Kudu
Distribuire un pacchetto ZIP nell'app Web usando il az webapp deploy
comando . Il comando dell'interfaccia della riga di comando usa l'API di pubblicazione Kudu per distribuire i file ed è pienamente personalizzabile.
Nell'esempio seguente viene eseguito il push di un pacchetto ZIP nel sito. Specificare il percorso del pacchetto ZIP locale per --src-path
.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path <zip-package-path>
Questo comando riavvia l'app dopo aver distribuito il pacchetto ZIP.
Abilitare l'automazione della compilazione per la distribuzione ZIP
Per impostazione predefinita, il motore di distribuzione presuppone che un pacchetto ZIP sia pronto per essere eseguito così com'è e non esegue alcun processo di automazione della compilazione. Per abilitare la stessa automazione di compilazione usata in una distribuzione Git, impostare l'impostazione dell'app SCM_DO_BUILD_DURING_DEPLOYMENT
. Eseguire il comando seguente in Azure Cloud Shell:
az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
Per altre informazioni, vedere Documentazione Kudu.
Distribuire pacchetti WAR, JAR o EAR
È possibile distribuire il pacchetto WAR, JAR o EAR nel servizio app per eseguire l'app Web Java usando l'interfaccia della riga di comando di Azure, PowerShell o l'API di pubblicazione Kudu.
Il processo di distribuzione illustrato di seguito inserisce il pacchetto nella condivisione di contenuto dell'app con la convenzione di denominazione e la struttura di directory corretta. Per altre informazioni, vedere Informazioni di riferimento sull'API di pubblicazione kudu. È consigliabile adottare questo approccio. Se si distribuiscono invece pacchetti WAR, JAR o EAR usando FTP o Distribuzione Web, potrebbero verificarsi errori sconosciuti a causa di errori nella denominazione o nella struttura.
Distribuire un pacchetto WAR in Tomcat o JBoss EAP usando il az webapp deploy
comando . Specificare il percorso del pacchetto Java locale per --src-path
.
az webapp deploy --resource-group <group-name> --name <app-name> --src-path ./<package-name>.war
Il comando dell'interfaccia della riga di comando usa l'API di pubblicazione Kudu per distribuire il pacchetto e può essere completamente personalizzato.
Distribuire singoli file
Distribuire uno script di avvio, una libreria e un file statico nell'app Web usando il az webapp deploy
comando con il --type
parametro .
Se si distribuisce uno script di avvio in questo modo, il Servizio app di Azure usa automaticamente lo script per avviare l'app.
Il comando dell'interfaccia della riga di comando usa l'API di pubblicazione Kudu per distribuire i file. Il comando può essere completamente personalizzato.
Distribuire uno script di avvio
az webapp deploy --resource-group <group-name> --name <app-name> --src-path scripts/startup.sh --type=startup
Distribuire un file di libreria
az webapp deploy --resource-group <group-name> --name <app-name> --src-path driver.jar --type=lib
Distribuire un file statico
az webapp deploy --resource-group <group-name> --name <app-name> --src-path config.json --type=static
Distribuire in app protette dalla rete
A seconda della configurazione di rete dell'app Web, l'accesso diretto all'app dall'ambiente di sviluppo potrebbe essere bloccato. Vedere Distribuzione in siti protetti dalla rete e distribuzione in siti protetti dalla rete, parte 2. Anziché eseguire direttamente il push del pacchetto o del file nell'app Web, è possibile pubblicarlo in un sistema di archiviazione accessibile dall'app Web e attivare l'app per eseguire il pull del file ZIP dal percorso di archiviazione.
L'URL remoto può essere qualsiasi posizione accessibile pubblicamente, ma è consigliabile usare un contenitore di archiviazione BLOB con una chiave di firma di accesso condiviso (SAS) per proteggerlo.
Usare il comando az webapp deploy
come nelle altre sezioni, ma usare --src-url
anziché --src-path
. L'esempio seguente usa il parametro --src-url
per specificare l'URL di un file ZIP ospitato in un account di archiviazione di Azure.
az webapp deploy --resource-group <group-name> --name <app-name> --src-url "https://storagesample.blob.core.windows.net/sample-container/myapp.zip?sv=2021-10-01&sb&sig=slk22f3UrS823n4kSh8Skjpa7Naj4CG3 --type zip
Informazioni di riferimento sulle API di pubblicazione Kudu
L'API Kudu publish
consente di specificare gli stessi parametri del comando CLI come parametri di query nell'URL. Per eseguire l'autenticazione con l'API REST Kudu, è consigliabile usare l'autenticazione basata su token, ma è anche possibile usare l'autenticazione di base con le credenziali di distribuzione dell'app.
Nella tabella seguente vengono illustrati i parametri di query disponibili, i relativi valori consentiti e le descrizioni.
Chiave | Valori consentiti | Descrizione | Obbligatoria | Tipo |
---|---|---|---|---|
type |
war |jar |ear |lib |startup |static |zip |
Questo è il tipo di artefatto da implementare. Imposta il percorso di destinazione predefinito e informa l'app Web come deve essere gestita la distribuzione. type=zip : distribuire un pacchetto ZIP decomprimendo il contenuto in /home/site/wwwroot . Il parametro target-path è facoltativo. type=war : distribuire un pacchetto WAR. Per impostazione predefinita, il pacchetto WAR viene distribuito in /home/site/wwwroot/app.war . Il percorso di destinazione può essere specificato con target-path . type=jar : distribuire un pacchetto JAR in /home/site/wwwroot/app.jar . Il parametro target-path viene ignorato. type=ear : distribuire un pacchetto EAR in /home/site/wwwroot/app.ear . Il parametro target-path viene ignorato. type=lib : distribuire un file di libreria JAR. Per impostazione predefinita, il file viene distribuito in /home/site/libs . Il percorso di destinazione può essere specificato con target-path . type=static : distribuire un file statico, ad esempio uno script. Per impostazione predefinita, il file viene distribuito in /home/site/wwwroot . type=startup : distribuisci uno script che il Servizio App utilizza automaticamente come script di avvio per la tua app. Per impostazione predefinita, lo script viene distribuito in D:\home\site\scripts\<name-of-source> per Windows e home/site/wwwroot/startup.sh per Linux. Il percorso di destinazione può essere specificato con target-path . |
Sì | Stringa |
restart |
true |false |
Per impostazione predefinita, l'API riavvia l'app dopo l'operazione di distribuzione (restart=true ). Quando si distribuiscono più artefatti, è possibile impedire i riavvii su tutte le distribuzioni tranne quella finale impostando restart=false . |
NO | Booleano |
clean |
true |false |
Specifica se pulire (eliminare) la distribuzione di destinazione prima di distribuire l'artefatto. | NO | Booleano |
ignorestack |
true |false |
L'API di pubblicazione usa la variabile di ambiente WEBSITE_STACK per scegliere impostazioni predefinite sicure a seconda dello stack di linguaggio del sito. L'impostazione di questo parametro su false disabilita le impostazioni predefinite specifiche della lingua. |
NO | Booleano |
target-path |
Percorso assoluto | Percorso assoluto in cui distribuire l'artefatto. Ad esempio, /home/site/deployments/tools/driver.jar o /home/site/scripts/helper.sh . |
NO | Stringa |
Contenuto correlato
Per scenari di distribuzione più avanzati, provare a eseguire la distribuzione in Azure con Git. La distribuzione basata su Git in Azure abilita il controllo della versione, il ripristino del pacchetto, MSBuild e altro ancora.