Déploiement Git local vers Azure App Service
Ce guide pratique vous montre comment déployer votre application sur Azure App Service depuis un référentiel Git sur votre ordinateur local.
Remarque
Quand l’authentification de base SCM est désactivée, le déploiement Git local ne fonctionne pas et vous ne pouvez pas configurer le déploiement Git local dans le Centre de déploiement de l’application.
Prérequis
Pour suivre les étapes décrites dans ce guide de procédures :
-
Si vous n’avez pas d’abonnement Azure, créez un compte gratuit Azure avant de commencer.
Obtenez un référentiel Git local comprenant le code que vous souhaitez déployer. Pour télécharger un exemple de référentiel, exécutez la commande suivante dans la fenêtre de terminal locale :
git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
Préparer votre dépôt
Pour obtenir des builds automatiques auprès du serveur de builds Azure App Service, vérifiez que la racine de votre référentiel contient les fichiers appropriés de votre projet.
Runtime | Fichiers du répertoire racine |
---|---|
ASP.NET (Windows uniquement) | *.sln , *.csproj ou default.aspx |
ASP.NET Core | *.sln ou *.csproj |
PHP | index.php |
Ruby (Linux uniquement) | Gemfile |
Node.JS | server.js , app.js ou package.json avec un script de démarrage |
Python | *.py , requirements.txt ou runtime.txt |
HTML | default.htm , default.html , default.asp , index.htm , index.html ou iisstart.htm |
WebJobs | <job_name>/run.<extension> sous App_Data/jobs/continuous pour WebJobs continus ou App_Data/jobs/triggered pour WebJobs déclenchées. Pour plus d’informations, consultez la documentation Kudu relative aux WebJobs. |
Fonctions | Consultez Déploiement continu pour Azure Functions. |
Pour personnaliser votre déploiement, vous pouvez inclure un fichier .deployment dans la racine du dépôt. Pour plus d’informations, consultez Personnaliser les déploiements et Personnaliser un script de déploiement.
Notes
Si vous utilisez dans Visual Studio, laissez Visual Studio vous créer un référentiel. Votre projet sera immédiatement prêt pour le déploiement via Git.
Configuration d’un utilisateur de déploiement
Consultez Configurer les informations d’identification de déploiement pour Azure App Service. Vous pouvez utiliser les informations d’identification de portée utilisateur ou les informations d’identification de portée application.
Créer une application compatible Git
Si vous disposez déjà d’une application App Service et que vous souhaitez configurer le déploiement Git local pour celle-ci, consultez plutôt Configurer une application existante.
Exécutez az webapp create
avec l'option --deployment-local-git
. Par exemple :
az webapp create --resource-group <group-name> --plan <plan-name> --name <app-name> --runtime "<runtime-flag>" --deployment-local-git
La sortie contient une URL, telle que : https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Utilisez cette URL pour déployer votre application à l’étape suivante.
Configurer une application existante
Si vous n’avez pas encore d’application, consultez plutôt Créer une application compatible Git.
Exécutez az webapp deployment source config-local-git
. Par exemple :
az webapp deployment source config-local-git --name <app-name> --resource-group <group-name>
La sortie contient une URL, telle que : https://<deployment-username>@<app-name>.scm.azurewebsites.net/<app-name>.git
. Utilisez cette URL pour déployer votre application à l’étape suivante.
Conseil
Cette URL contient le nom d’utilisateur de déploiement de portée utilisateur. Si vous le souhaitez, vous pouvez plutôt utiliser les informations d’identification de portée application.
Déployer l’application web
Dans une fenêtre de terminal local, remplacez le répertoire par la racine de votre référentiel Git et ajoutez un dépôt distant Git en utilisant l’URL que vous avez obtenue à partir de votre application. Si la méthode que vous avez choisie ne vous donne pas d’URL, utilisez
https://<app-name>.scm.azurewebsites.net/<app-name>.git
avec le nom de votre application dans<app-name>
.git remote add azure <url>
Notes
Si vous avez créé une application Git dans PowerShell à l’aide de New-AzWebApp, le dépôt distant est déjà créé pour vous.
Envoyez (push) vers le site distant Azure avec
git push azure master
(voir Modifier la branche de déploiement).Dans la fenêtre Gestionnaire des informations d’identification Git, entrez vos informations d’identification pour l’étendue de l’utilisateur ou de l’application, et non les informations d’identification de votre connexion Azure.
Si l’URL de votre dépôt distant Git contient déjà le nom d’utilisateur et le mot de passe, vous ne serez pas invité à le faire.
Passez en revue la sortie. Vous verrez probablement une automatisation spécifique au runtime, comme MSBuild pour ASP.NET,
npm install
pour Node.js etpip install
pour Python.Dans le portail Azure, accédez à votre application pour vérifier que le contenu a été déployé.
Modifier la branche de déploiement
Lorsque vous envoyez (push) des commits vers votre référentiel App Service, App Service déploie les fichiers dans la branche master
par défaut. Comme de nombreux référentiels Git se déplacent de master
à main
, vous devez vous assurer que vous envoyez (push) vers la bonne branche dans le référentiel App Service de l’une des deux manières suivantes :
Déployer sur
master
de manière explicite avec une commande comme :git push azure main:master
Modifiez la branche de déploiement en définissant le paramètre d’application
DEPLOYMENT_BRANCH
, puis envoyez (push) les commits vers la branche personnalisée. Pour le faire avec Azure CLI :az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main' git push azure main
Vous pouvez également modifier le paramètre d’application
DEPLOYMENT_BRANCH
dans le Portail Azure, en sélectionnant Variables d’environnement sous Paramètres et en ajoutant un nouveau paramètre d’application avec le nomDEPLOYMENT_BRANCH
et la valeurmain
.
Résoudre les problèmes de déploiement
Vous risquez de voir les messages d’erreur courants suivants lorsque vous utilisez Git pour publier une application App Service dans Azure :
Message | Cause | Résolution |
---|---|---|
Unable to access '[siteURL]': Failed to connect to [scmAddress] |
L’application n’est pas opérationnelle. | Démarrez l’application dans le portail Azure. Le déploiement Git n'est pas disponible lorsque l’application web est arrêtée. |
Couldn't resolve host 'hostname' |
Les informations d’adresse du dépôt distant azure ne sont pas correctes. |
Utilisez la commande git remote -v pour répertorier tous les référentiels distants avec l’URL associée. Vérifiez que l’URL du dépôt distant azure est correcte. Si nécessaire, supprimez et recréez ce référentiel distant au moyen de l’URL correcte. |
No refs in common and none specified; doing nothing. Perhaps you should specify a branch such as 'main'. |
Vous n’avez pas spécifié de branche pendant git push ou vous n'avez pas défini la valeur push.default dans .gitconfig . |
Réexécutez git push , en spécifiant la branche primaire : git push azure main . |
Error - Changes committed to remote repository but deployment to website failed. |
Vous avez envoyé (push) une branche locale qui ne correspond pas à la branche de déploiement d’applications sur azure . |
Vérifiez que la branche actuelle est master . Pour modifier la branche par défaut, utilisez le paramètre d’application DEPLOYMENT_BRANCH (voir Modifier la branche de déploiement). |
src refspec [branchname] does not match any. |
Vous avez tenté un envoi (push) vers une autre branche que la branche primaire du dépôt distant azure . |
Réexécutez git push , en spécifiant la branche primaire : git push azure main . |
RPC failed; result=22, HTTP code = 5xx. |
Cette erreur peut se produire si vous essayez d’envoyer (push) un dépôt Git volumineux via HTTPS. | Modifiez la configuration Git sur l’ordinateur local pour agrandir le postBuffer . Par exemple : git config --global http.postBuffer 524288000 . |
Error - Changes committed to remote repository but your web app not updated. |
Vous avez déployé une application Node.js contenant un fichier package.json spécifiant des modules obligatoires supplémentaires. | Examinez les messages d'erreur npm ERR! préalables à cette erreur pour plus de contexte sur l’échec. Voici les causes connues de cette erreur et les messages npm ERR! correspondants :Fichier package.json incorrect: npm ERR! Couldn't read dependencies. Un module natif n’a pas de distribution binaire pour Windows : npm ERR! \cmd "/c" "node-gyp rebuild"\ failed with 1 ou npm ERR! [modulename@version] preinstall: \make \|\| gmake\ |
Plus de ressources
- Serveur de build App Service (documentation Project Kudu)
- Déploiement continu vers Azure App Service
- Exemple : Créer une application web et déployer du code à partir d’un référentiel Git local (Azure CLI)
- Exemple : Créer une application web et déployer du code à partir d’un référentiel Git local (PowerShell)