Partager via


Déployer des fichiers sur Azure App Service

Cet article vous montre comment déployer votre code en tant que package ZIP, WAR, JAR ou EAR pour le Service d’application Azure . Il vous montre également comment déployer des fichiers individuels sur App Service, distincts de votre package d’application.

Prérequis

Pour effectuer les étapes de cet article, créez une application App Service ou utilisez une application créée pour un autre didacticiel.

Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.

Créer un package ZIP de projet

Important

Quand vous créez le package ZIP du déploiement, n’incluez pas le répertoire racine. Incluez uniquement les fichiers et répertoires dans le répertoire racine. Si vous téléchargez un référentiel GitHub en tant que fichier ZIP, vous ne pouvez pas déployer ce fichier tel quel dans App Service. GitHub ajoute des répertoires imbriqués au niveau supérieur, qui ne fonctionnent pas avec App Service.

Dans une fenêtre de terminal locale, accédez au répertoire racine de votre projet d’application.

Ce répertoire doit contenir le fichier d’entrée de votre application web, comme index.html, index.php, et app.js. Il peut également contenir des fichiers de gestion de package tels que project.json, , composer.jsonpackage.json, bower.json, et requirements.txt.

Si vous ne souhaitez pas qu’App Service exécute l’automatisation du déploiement pour vous, exécutez toutes les tâches de génération. Par exemple : npm, , bower, gulpcomposer, et pip. Vérifiez que vous disposez de tous les fichiers dont vous avez besoin pour exécuter l’application. Cette étape est requise si vous souhaitez exécuter votre package directement.

Créez une archive ZIP contenant tous les éléments de votre projet. Pour les projets dotnet, ajoutez tout ce qui se trouve dans le répertoire de sortie de la commande dotnet publish, à l’exception du répertoire de sortie lui-même. Par exemple, entrez la commande suivante dans votre terminal pour créer un package ZIP qui inclut le contenu du répertoire actif :

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

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

Déployer un package ZIP

Lorsque vous déployez un package ZIP, App Service décompresse son contenu dans le chemin d’accès par défaut de votre application : D:\home\site\wwwroot pour Windows et /home/site/wwwroot Linux.

Ce déploiement de package ZIP utilise le même service Kudu que celui qui pilote les déploiements continus basés sur l’intégration. Kudu prend en charge les fonctionnalités suivantes pour le déploiement de package ZIP :

  • Suppression de fichiers laissés à partir d’un déploiement précédent
  • Option permettant d’activer le processus de génération par défaut, qui inclut la restauration de package
  • Personnalisation du déploiement, y compris l’exécution de scripts de déploiement
  • Journaux de déploiement
  • Limite de taille de package de 2 048 mégaoctets

Remarque

Les fichiers du package ZIP ne sont copiés que si leurs horodatages ne correspondent pas à ce qui est déjà déployé.

Déployer avec l’interface utilisateur de déploiement ZIP dans Kudu

  1. Ouvrez votre application dans le portail Azure et sélectionnez Outils de développement avancés, puis sélectionnez >.
  2. Dans Kudu, sélectionnez Tools>Zip Push Deploy.
  3. Chargez le package ZIP que vous avez créé dans Créer un package ZIP de projet. Faites-le glisser vers la zone de l’Explorateur de fichiers sur la page web.

Lorsque le déploiement est en cours, une icône dans le coin supérieur droit affiche le pourcentage de progression. La page affiche également des messages pour l’opération située sous la zone Explorateur de fichiers. Une fois le déploiement terminé, le dernier message doit indiquer « Déploiement réussi ».

Ce point de terminaison ne fonctionne pas pour App Service sur Linux pour l’instant. Envisagez plutôt d’utiliser FTP ou l’API de déploiement ZIP.

Déployer sans l'interface de déploiement ZIP dans Kudu

Déployez un package ZIP sur votre application web à l’aide de la az webapp deploy commande. La commande CLI utilise l' API de publication Kudu pour déployer les fichiers et peut être entièrement personnalisée.

L’exemple suivant envoie un package ZIP sur votre site. Spécifiez le chemin d’accès à votre package ZIP local pour --src-path.

az webapp deploy --resource-group <group-name> --name <app-name> --src-path <zip-package-path>

Cette commande redémarre l’application après le déploiement du package ZIP.

Activer l’automatisation de build pour le déploiement ZIP

Par défaut, le moteur de déploiement suppose qu’un package ZIP est prêt à s’exécuter en l’état et n’effectue aucune automatisation de build. Pour activer la même automatisation de build utilisée dans un déploiement Git, définissez le SCM_DO_BUILD_DURING_DEPLOYMENT paramètre d’application. Exécutez la commande suivante dans Azure Cloud Shell :

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

Pour plus d’informations, consultez la documentation Kudu.

Déployer des packages WAR, JAR ou EAR

Vous pouvez déployer votre package WAR, JAR ou EAR sur App Service pour exécuter votre application web Java à l’aide de l’API de publication Azure CLI, PowerShell ou Kudu.

Le processus de déploiement présenté ici place le package sur le partage de contenu de l’application avec la convention d’affectation de noms et la structure d’annuaire appropriées. Pour plus d’informations, consultez Référence API de publication Kudu. Nous recommandons cette approche. Si vous déployez des packages WAR, JAR ou EAR à l’aide de FTP ou Web Deploy à la place, vous pouvez voir des échecs inconnus en raison d’erreurs dans le nommage ou la structure.

Déployez un package WAR sur Tomcat ou JBoss EAP à l’aide de la az webapp deploy commande. Spécifiez le chemin d’accès à votre package Java local pour --src-path.

az webapp deploy --resource-group <group-name> --name <app-name> --src-path ./<package-name>.war

La commande CLI utilise l' API de publication Kudu pour déployer le package et peut être entièrement personnalisée.

Déployer des fichiers individuels

Déployez un script de démarrage, une bibliothèque et un fichier statique sur votre application web à l’aide de la az webapp deploy commande avec le --type paramètre.

Si vous déployez un script de démarrage de cette manière, le Service d’application utilise automatiquement votre script pour démarrer votre application.

L’interface de ligne de commande utilise l’API de publication Kudu pour déployer les fichiers. La commande peut être entièrement personnalisée.

Utilisation d'un script de démarrage

az webapp deploy --resource-group <group-name> --name <app-name> --src-path scripts/startup.sh --type=startup

Déployer un fichier de bibliothèque

az webapp deploy --resource-group <group-name> --name <app-name> --src-path driver.jar --type=lib

Déployer un fichier statique

az webapp deploy --resource-group <group-name> --name <app-name> --src-path config.json --type=static

Déployer sur des applications protégées par le réseau

Selon la configuration réseau de votre application web, l’accès direct à l’application à partir de votre environnement de développement peut être bloqué. (Voir Déploiement sur des sites sécurisés par le réseau et déploiement sur des sites sécurisés par le réseau, partie 2.) Au lieu d’envoyer directement le package ou le fichier à l’application web, vous pouvez le publier sur un système de stockage accessible à partir de l’application web et déclencher l’application pour extraire le fichier ZIP à partir de l’emplacement de stockage.

L’URL distante peut être n’importe quel emplacement accessible publiquement, mais il est préférable d’utiliser un conteneur de stockage d’objets blob avec une clé de signature d’accès partagé (SAP) pour la protéger.

Utilisez la commande az webapp deploy comme vous le feriez dans les autres sections, mais utilisez --src-url plutôt que --src-path. L’exemple suivant utilise le paramètre --src-url pour spécifier l’URL d’un fichier Zip hébergé dans un compte de stockage 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

référence sur l’API de publication Kudu

L'API Kudu publish vous permet de spécifier les mêmes paramètres depuis la commande CLI en tant que paramètres de requête d’URL. Pour vous authentifier avec l’API REST Kudu, nous vous recommandons l’authentification par jeton, mais vous pouvez également utiliser l’authentification de base avec les informations d’identification du déploiement de votre application.

Le tableau suivant présente les paramètres de requête disponibles, leurs valeurs autorisées et leurs descriptions.

Clé Valeurs autorisées Descriptif Obligatoire Catégorie
type war|jar|ear|lib|startup|static|zip Il s’agit du type de l’artefact en cours de déploiement. Il définit le chemin cible par défaut et informe l’application web de la façon dont le déploiement doit être géré.

type=zip: Déployez un package ZIP en décompressant le contenu dans /home/site/wwwroot. Le paramètre target-path est facultatif.

type=war: Déployer un package WAR. Par défaut, le package WAR est déployé sur /home/site/wwwroot/app.war. Le chemin d’accès cible peut être spécifié avec target-path.

type=jar: Déployer un package JAR sur /home/site/wwwroot/app.jar. Le paramètre target-path est ignoré.

type=ear: Déployer un package EAR sur /home/site/wwwroot/app.ear. Le paramètre target-path est ignoré.

type=lib: Déployer un fichier de bibliothèque JAR. Par défaut, le fichier est déployé sur /home/site/libs. Le chemin d’accès cible peut être spécifié avec target-path.

type=static: Déployez un fichier statique, tel qu’un script. Par défaut, le fichier est déployé sur /home/site/wwwroot.

type=startup: Déployez un script que App Service utilise automatiquement comme script de démarrage pour votre application. Par défaut, le script est déployé sur D:\home\site\scripts\<name-of-source> pour Windows et home/site/wwwroot/startup.sh pour Linux. Le chemin d’accès cible peut être spécifié avec target-path.
Oui Chaîne
restart true|false Par défaut, l’API redémarre l’application après l’opération de déploiement (restart=true). Lorsque vous déployez plusieurs artefacts, vous pouvez empêcher les redémarrages sur tous les déploiements sauf le dernier en définissant restart=false. Non Booléen
clean true|false Spécifie s’il faut nettoyer (supprimer) le déploiement cible avant de déployer l’artefact ici. Non Booléen
ignorestack true|false L’API de publication utilise la variable d’environnement WEBSITE_STACK pour choisir les valeurs par défaut sécurisées en fonction de la pile de langue de votre site. La définition de ce paramètre sur false désactive les valeurs par défaut spécifiques au langage. Non Booléen
target-path Un chemin absolu Chemin d’accès absolu vers lequel déployer l’artefact. Par exemple, /home/site/deployments/tools/driver.jar ou /home/site/scripts/helper.sh. Non Chaîne

Pour des scénarios de déploiement plus avancés, consultez Déploiement Git local vers Azure App Service. Le déploiement GIT vers Azure autorise le contrôle de version, la restauration du package, MSBuild et bien plus encore.