Déployer votre application sur Azure App Service avec un fichier ZIP ou WARDeploy your app to Azure App Service with a ZIP or WAR file

Cet article montre comment utiliser un fichier ZIP ou WAR pour déployer votre application web sur Azure App Service.This article shows you how to use a ZIP file or WAR file to deploy your web app to Azure App Service.

Ce déploiement de fichier ZIP utilise le même service Kudu que celui qui pilote les déploiements continus basés sur l’intégration.This ZIP file deployment uses the same Kudu service that powers continuous integration-based deployments. Kudu prend en charge les fonctionnalités suivantes pour le déploiement de fichier ZIP :Kudu supports the following functionality for ZIP file deployment:

  • Suppression des fichiers laissés par un déploiement précédentDeletion of files left over from a previous deployment.
  • Option pour activer le processus de génération par défaut, qui inclut la restauration de packageOption to turn on the default build process, which includes package restore.
  • Personnalisation du déploiement, notamment exécution de scripts de déploiementDeployment customization, including running deployment scripts.
  • Journaux d’activité de déploiementDeployment logs.
  • La taille de fichier ne doit pas dépasser 2 048 Mo.A file size limit of 2048 MB.

Pour plus d’informations, consultez la documentation Kudu.For more information, see Kudu documentation.

Le fichier WAR est déployé sur App Service pour exécuter votre application web Java.The WAR file deployment deploys your WAR file to App Service to run your Java web app. Consultez Déployer un fichier WAR.See Deploy WAR file.

Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.If you don't have an Azure subscription, create a free account before you begin.

PrérequisPrerequisites

Pour accomplir les étapes décrites dans cet article :To complete the steps in this article:

Créer un fichier ZIP de projetCreate a project ZIP file

Notes

Si vous avez téléchargé les fichiers dans un fichier ZIP, extrayez tout d’abord les fichiers.If you downloaded the files in a ZIP file, extract the files first. Par exemple, si vous avez téléchargé un fichier ZIP à partir de GitHub, vous ne pouvez pas déployer ce fichier tel quel.For example, if you downloaded a ZIP file from GitHub, you cannot deploy that file as-is. GitHub ajoute des répertoires imbriqués supplémentaires qui ne fonctionnent pas avec App Service.GitHub adds additional nested directories, which do not work with App Service.

Dans une fenêtre de terminal locale, accédez au répertoire racine de votre projet d’application.In a local terminal window, navigate to the root directory of your app project.

Ce répertoire doit contenir le fichier d’entrée à votre application web, tel que index.html, index.php et app.js.This directory should contain the entry file to your web app, such as index.html, index.php, and app.js. Il peut également contenir des fichiers de gestion de package comme project.json, composer.json, package.json, bower.json et requirements.txt.It can also contain package management files like project.json, composer.json, package.json, bower.json, and requirements.txt.

Créez une archive ZIP contenant tous les éléments de votre projet.Create a ZIP archive of everything in your project. La commande suivante utilise l’outil par défaut dans votre terminal :The following command uses the default tool in your terminal:

# Bash
zip -r <file-name>.zip .

# PowerShell
Compress-Archive -Path * -DestinationPath <file-name>.zip

Déployer un fichier ZipDeploy ZIP file

Dans un navigateur, accédez à https://<app_name>.scm.azurewebsites.net/ZipDeployUI.In the browser, navigate to https://<app_name>.scm.azurewebsites.net/ZipDeployUI.

Télécharger le fichier ZIP que vous avez créé dans Créer un fichier ZIP de projet en le faisant glisser vers la zone de l’explorateur de fichiers sur la page web.Upload the ZIP file you created in Create a project ZIP file by dragging it to the file explorer area on the web page.

Lorsque le déploiement est en cours, une icône dans le coin supérieur droit vous indique la progression en pourcentage.When deployment is in progress, an icon in the top right corner shows you the progress in percentage. La page affiche également des messages détaillés concernant l’opération sous la zone de l’explorateur.The page also shows verbose messages for the operation below the explorer area. Lorsqu’elle est terminée, le dernier message de déploiement doit indiquer Deployment successful.When it is finished, the last deployment message should say Deployment successful.

Déployer le fichier ZIP avec Azure CLIDeploy ZIP file with Azure CLI

Vérifiez que votre version d’Azure CLI est égale ou supérieure à 2.0.21.Make sure your Azure CLI version is 2.0.21 or later. Pour vérifier votre version, exécutez la commande az --version dans la fenêtre de terminal.To see which version you have, run az --version command in your terminal window.

Déployez le fichier ZIP chargé sur votre application web à l’aide de la commande az webapp deployment source config-zip.Deploy the uploaded ZIP file to your web app by using the az webapp deployment source config-zip command.

L’exemple suivant déploie le fichier ZIP que vous avez chargé.The following example deploys the ZIP file you uploaded. Quand vous utilisez une installation locale d’Azure CLI, spécifiez le chemin de votre fichier ZIP local pour --src.When using a local installation of Azure CLI, specify the path to your local ZIP file for --src.

az webapp deployment source config-zip --resource-group myResourceGroup --name <app_name> --src clouddrive/<filename>.zip

Cette commande déploie les fichiers et répertoires du fichier ZIP vers votre dossier d’applications App Service par défaut (\home\site\wwwroot), puis redémarre l’application.This command deploys the files and directories from the ZIP file to your default App Service application folder (\home\site\wwwroot) and restarts the app.

Par défaut, le moteur de déploiement suppose qu’un fichier ZIP est prêt à s’exécuter en l’état et n’effectue aucune automatisation de build.By default, the deployment engine assumes that a ZIP file is ready to run as-is and doesn't run any build automation. Pour permettre la même automatisation de build que dans un déploiement Git, définissez le paramètre d’application SCM_DO_BUILD_DURING_DEPLOYMENT en exécutant la commande suivante dans Azure Cloud Shell :To enable the same build automation as in a Git deployment, set the SCM_DO_BUILD_DURING_DEPLOYMENT app setting by running the following command in the Cloud Shell:

az webapp config appsettings set --resource-group <resource-group-name> --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true

Pour plus d’informations, consultez la documentation Kudu.For more information, see Kudu documentation.

Déployer un fichier ZIP avec l’API RESTDeploy ZIP file with REST APIs

Vous pouvez utiliser les API REST du service de déploiement pour déployer le fichier .zip sur votre application dans Azure.You can use the deployment service REST APIs to deploy the .zip file to your app in Azure. Pour déployer, envoyez une demande POST à https://<nom_application>.scm.azurewebsites.net/api/zipdeploy.To deploy, send a POST request to https://<app_name>.scm.azurewebsites.net/api/zipdeploy. La demande POST doit contenir le fichier .zip dans le corps du message.The POST request must contain the .zip file in the message body. Les informations d’identification de déploiement pour votre application sont fournies dans la demande avec l’authentification de base HTTP.The deployment credentials for your app are provided in the request by using HTTP BASIC authentication. Pour plus d’informations, consultez les informations de référence des envois (push) de fichiers .zip.For more information, see the .zip push deployment reference.

Pour l’authentification HTTP BASIC, vous avez besoin de vos informations d’identification de déploiement App Service.For the HTTP BASIC authentication, you need your App Service deployment credentials. Pour découvrir comment définir les informations d’identification de votre déploiement, consultez Définir et réinitialiser les informations d’identification de niveau utilisateur.To see how to set your deployment credentials, see Set and reset user-level credentials.

Avec cURLWith cURL

L’exemple suivant utilise l’outil cURL pour déployer un fichier .zip.The following example uses the cURL tool to deploy a .zip file. Remplacez les espaces réservés <username>, <password>, <zip_file_path> et <app_name>.Replace the placeholders <username>, <password>, <zip_file_path>, and <app_name>. Quand vous y êtes invité par cURL, tapez le mot de passe.When prompted by cURL, type in the password.

curl -X POST -u <deployment_user> --data-binary @"<zip_file_path>" https://<app_name>.scm.azurewebsites.net/api/zipdeploy

Cette demande déclenche le déploiement par envoi (push) à partir du fichier .zip chargé.This request triggers push deployment from the uploaded .zip file. Vous pouvez examiner les déploiements en cours et passés en utilisant le point de terminaison https://<app_name>.scm.azurewebsites.net/api/deployments, comme le montre l’exemple cURL suivant.You can review the current and past deployments by using the https://<app_name>.scm.azurewebsites.net/api/deployments endpoint, as shown in the following cURL example. Ici encore, remplacez <app_name> par le nom de votre application et <deployment_user> par le nom d’utilisateur de vos informations d’identification de déploiement.Again, replace <app_name> with the name of your app and <deployment_user> with the username of your deployment credentials.

curl -u <deployment_user> https://<app_name>.scm.azurewebsites.net/api/deployments

Avec PowerShellWith PowerShell

L’exemple suivant utilise Publish-AzWebapp pour charger le fichier .zip.The following example uses Publish-AzWebapp upload the .zip file. Remplacez les espaces réservés <group-name>, <app-name> et <zip-file-path>.Replace the placeholders <group-name>, <app-name>, and <zip-file-path>.

Publish-AzWebapp -ResourceGroupName <group-name> -Name <app-name> -ArchivePath <zip-file-path>

Cette demande déclenche le déploiement par envoi (push) à partir du fichier .zip chargé.This request triggers push deployment from the uploaded .zip file.

Pour passer en revue les déploiements en cours et passés, exécutez les commandes suivantes.To review the current and past deployments, run the following commands. Là encore, remplacez les valeurs des espaces réservés <deployment-user>, <deployment-password> et <app-name>.Again, replace the <deployment-user>, <deployment-password>, and <app-name> placeholders.

$username = "<deployment-user>"
$password = "<deployment-password>"
$apiUrl = "https://<app-name>.scm.azurewebsites.net/api/deployments"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$userAgent = "powershell/1.0"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method GET

Déployer un fichier WARDeploy WAR file

Pour déployer un fichier WAR sur App Service, envoyez une requête POST à https://<app_name>.scm.azurewebsites.net/api/wardeploy.To deploy a WAR file to App Service, send a POST request to https://<app_name>.scm.azurewebsites.net/api/wardeploy. La requête POST doit contenir le fichier .war dans le corps du message.The POST request must contain the .war file in the message body. Les informations d’identification de déploiement pour votre application sont fournies dans la demande avec l’authentification de base HTTP.The deployment credentials for your app are provided in the request by using HTTP BASIC authentication.

Pour l’authentification HTTP BASIC, vous avez besoin de vos informations d’identification de déploiement App Service.For the HTTP BASIC authentication, you need your App Service deployment credentials. Pour découvrir comment définir les informations d’identification de votre déploiement, consultez Définir et réinitialiser les informations d’identification de niveau utilisateur.To see how to set your deployment credentials, see Set and reset user-level credentials.

With cURLWith cURL

L’exemple suivant utilise l’outil cURL pour déployer un fichier .war.The following example uses the cURL tool to deploy a .war file. Remplacez les espaces réservés <username>, <war-file-path> et <app-name>.Replace the placeholders <username>, <war-file-path>, and <app-name>. Quand vous y êtes invité par cURL, tapez le mot de passe.When prompted by cURL, type in the password.

curl -X POST -u <username> --data-binary @"<war-file-path>" https://<app_name>.scm.azurewebsites.net/api/wardeploy

Avec PowerShellWith PowerShell

L’exemple suivant utilise Publish-AzWebapp pour charger le fichier .war.The following example uses Publish-AzWebapp upload the .war file. Remplacez les espaces réservés <group-name>, <app-name> et <war-file-path>.Replace the placeholders <group-name>, <app-name>, and <war-file-path>.

Publish-AzWebapp -ResourceGroupName <group-name> -Name <app-name> -ArchivePath <war-file-path>

Que se passe-t-il au niveau de mon application pendant le déploiement ?What happens to my app during deployment?

Toutes les méthodes de déploiement officiellement prises en charge apportent des modifications aux fichiers dans le dossier /home/site/wwwroot de votre application.All the officially supported deployment methods make changes to the files in the /home/site/wwwroot folder of your app. Ce sont ces mêmes fichiers qui sont exécutés en production.These files are the same ones that are run in production. Par conséquent, le déploiement peut échouer si des fichiers sont verrouillés.Therefore, the deployment can fail because of locked files. L’application en production peut également se comporter de façon imprévisible pendant le déploiement, car tous les fichiers ne sont pas tous mis à jour en même temps.The app in production may also behave unpredictably during deployment, because not all the files updated at the same time. Il existe différentes manières d’éviter ces problèmes :There are a few different ways to avoid these issues:

Étapes suivantesNext steps

Pour des scénarios de déploiement plus avancés, consultez Déploiement Git local vers Azure App Service.For more advanced deployment scenarios, try deploying to Azure with Git. Le déploiement GIT vers Azure autorise le contrôle de version, la restauration du package, MSBuild et bien plus encore.Git-based deployment to Azure enables version control, package restore, MSBuild, and more.

Autres ressourcesMore resources