Déployer des fichiers sur le Service d’application
Remarque
Depuis le 1er juin 2024, toutes les applications App Service nouvellement créées ont la possibilité de générer un nom d’hôte par défaut unique en utilisant la convention d’affectation de noms <app-name>-<random-hash>.<region>.azurewebsites.net
. Les noms d’application existants restent inchangés.
Exemple : myapp-ds27dh7271aah175.westus-01.azurewebsites.net
Pour plus d’informations, reportez-vous à Nom d’hôte par défaut unique pour la ressource 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 montre également comment déployer des fichiers individuels sur le e Service d’application, séparément 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 n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Créer un package ZIP de projet
Important
Lorsque vous créez le package ZIP pour un déploiement, n’incluez pas le répertoire racine, mais uniquement les fichiers et répertoires qu’il contient. Si vous téléchargez un référentiel GitHub en tant que fichier ZIP, vous ne pourrez pas déployer ce fichier tel que pour App Service. GitHub ajoute des répertoires imbriqués supplémentaires 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 à votre application web, tel que index.html, index.php et app.js. Il peut également contenir des fichiers de gestion de package comme project.json, composer.json, package.json, bower.json et requirements.txt.
Sauf si vous souhaitez qu’App Service exécute l’automatisation du déploiement à votre place, exécutez toutes les tâches de compilation (par exemple, npm
, bower
, gulp
, composer
et pip
) et assurez-vous que vous disposez de tous les fichiers nécessaires 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
, il s’agit de 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, la commande suivante dans votre terminal pour créer un package ZIP du 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, le e Service d’application décompresse son contenu dans le chemin d’accès par défaut de votre application (D:\home\site\wwwroot
pour Windows, /home/site/wwwroot
pour 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 des fichiers laissés par un déploiement précédent
- Option pour activer le processus de génération par défaut, qui inclut la restauration de package
- Personnalisation du déploiement, notamment exécution de scripts de déploiement
- Journaux d’activité de déploiement
- La taille d’un package ne doit pas dépasser 2 048 Mo.
Remarque
Les fichiers du package ZIP ne sont copiés que si leurs horodatages ne correspondent pas à ce qui est déjà déployé.
Avec l’interface utilisateur de déploiement Zip dans Kudu
Dans le navigateur, accédez à https://<app_name>.scm.azurewebsites.net/ZipDeployUI
(voir la note en haut de page).
Télécharger le package ZIP que vous avez créé dans Créer un package ZIP de projet en le faisant 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 vous indique la progression en pourcentage. La page affiche également des messages détaillés concernant l’opération sous la zone de l’explorateur. Une fois le déploiement terminé, le dernier message doit indiquer Deployment successful
.
Le point de terminaison ci-dessus ne fonctionne actuellement pas pour Linux App Services. Envisagez plutôt d’utiliser FTP ou l’API de déploiement ZIP.
Sans l’interface utilisateur de déploiement Zip dans Kudu
Déployez un package ZIP sur votre application Web à l’aide de la commande AZ webapp deploy . 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 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 :
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/EAR
Vous pouvez déployer votre package WAR, JARou EAR sur le service d’application pour exécuter votre application Web Java à l’aide de l’interface CLI Azure, PowerShell ou l’API de publication Kudu.
Le processus de déploiement présenté ici place le package sur le partage de contenu de l’application avec la bonne convention d’affectation de noms et la bonne structure d’annuaire (consulter Référence sur l’API de publication Kudu), et il s’agit de l’approche recommandée. Si vous déployez des packages WAR/JAR/EAR à l’aide du protocole FTP ou de WebDeploy à la place, vous risquez de rencontrer des défaillances inconnues en raison d’erreurs dans l’affectation de noms ou la structure.
Déployez un package WAR sur le protocole EAP Tomcat ou JBoss à l’aide de la commande AZ webapp deploy . 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 dans votre application Web à l’aide de la commande AZ webapp deploy avec le paramètre --type
.
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.
La commande CLI utilise l' API de publication Kudu pour déployer les fichiers et 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 de la mise en réseau de votre application web, l’accès direct à l’application à partir de votre environnement de développement peut être bloqué (consultez 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). Plutôt qu’envoyer (push) le package ou le fichier directement vers l’application web, vous pouvez le publier sur un système de stockage accessible depuis l’application web et déclencher l’application pour extraire le ZIP 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é 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 au moyen de l’API REST Kudu, il est préférable d’utiliser l’authentification par jeton. 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 | Description | Obligatoire | Type |
---|---|---|---|---|
type |
war |jar |ear |lib |startup |static |zip |
Le type de l’artefact déployé définit le chemin d’accès cible par défaut et indique à l’application Web comment le déploiement doit être géré. - type=zip : Déployez un package ZIP en dézippant le contenu sur /home/site/wwwroot . Le paramètre target-path est facultatif. - type=war : Déployez 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éployez un package JAR sur /home/site/wwwroot/app.jar . Le paramètre target-path est ignoré - type=ear : Déployez un package EAR sur /home/site/wwwroot/app.ear . Le paramètre target-path est ignoré - type=lib : Déployez 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 (par exemple un script). Par défaut, le fichier est déployé sur /home/site/wwwroot . - type=startup : Déployez un script que le Service d’application 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 | String |
restart |
true |false |
Par défaut, l’API redémarre l’application après l’opération de déploiement (restart=true ). Pour déployer plusieurs artefacts, évitez les redémarrages sur l’ensemble, sauf le déploiement final, en définissant restart=false . |
Non | Boolean |
clean |
true |false |
Spécifie s’il faut nettoyer (supprimer) le déploiement cible avant de déployer l’artefact ici. | Non | Boolean |
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 | Boolean |
target-path |
Un chemin absolu | Chemin d’accès absolu vers lequel déployer l’artefact. Par exemple, "/home/site/deployments/tools/driver.jar" , "/home/site/scripts/helper.sh" . |
Non | String |
Étapes suivantes
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.