Partager via


Déployer sur Azure App Service à l’aide de Git localement

Cet article explique comment déployer votre application sur Azure App Service à partir d’un dépôt Git sur votre ordinateur local.

Remarque

Cette méthode de déploiement nécessite l’authentification de base du Gestionnaire de contrôle de code source (SCM), qui est moins sécurisée que d’autres méthodes de déploiement. Si le déploiement Git local ne fonctionne pas, vous ne pouvez pas configurer le déploiement Git local dans le Centre de déploiement d’application.

Prérequis

Pour effectuer les étapes décrites dans cet article :

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

  • Installer Git.

  • Disposer d’un référentiel Git local avec du code à 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 automatisées à partir du serveur de build App Service, assurez-vous que la racine de votre référentiel contient les fichiers appropriés dans votre projet.

Temps d'exécution Fichiers du répertoire racine
ASP.NET (Windows uniquement) *.sln, *.csproj, ou default.aspx.
ASP.NET Noyau *.sln ou *.csproj.
PHP index.php.
Ruby (Linux uniquement) Gemfile.
Node.JS server.js, app.jsou 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, incluez un .deployment fichier dans la racine du référentiel. Pour plus d’informations, consultez Personnaliser les déploiements et Personnaliser un script de déploiement.

Conseil

Visual Studio peut créer un référentiel pour vous. Avec cette méthode, votre projet est immédiatement prêt pour le déploiement via Git.

Configuration d’un utilisateur de déploiement

Découvrez comment configurer les informations d’identification de déploiement pour Azure App Service. Vous pouvez utiliser les informations de connexion à l’étendue de l’utilisateur ou les informations de connexion à l’étendue de l’application.

Créer une application prenant en charge Git

Si vous disposez déjà d’une application App Service et que vous souhaitez configurer un déploiement Git local pour l’application, consultez Configurer une application existante à la place.

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 comme l’exemple 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, commencez à créer une application git activée.

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 comme l’exemple 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. Vous pouvez utiliser les informations de connexion spécifiques à l'application à la place.

Déployer l’application web

  1. Dans une fenêtre de terminal local, remplacez le répertoire par la racine de votre dépôt Git. Ajoutez un Git distant à l’aide de l’URL de votre application. Si la méthode que vous utilisez ne fournit pas d’URL, utilisez https://<app-name>.scm.azurewebsites.net/<app-name>.git le nom de votre application.

    git remote add azure <url>
    

    Remarque

    Si vous avez créé une application avec Git dans PowerShell à l’aide de New-AzWebApp, la connexion distante est déjà créée.

  2. Envoyez (push) à la branche distante Azure en exécutant git push azure master.

    Pour plus d’informations, consultez Modifier la branche de déploiement.

  3. Dans la boîte de dialogue Gestionnaire d’informations d’identification Git, entrez vos informations de connexion à l’étendue de l’utilisateur ou à l’étendue de l’application, et non vos informations de connexion Azure.

    Si votre URL distante Git contient déjà votre nom d’utilisateur et votre mot de passe, vous n’êtes pas invité à les entrer.

  4. Passez en revue la sortie. Vous pouvez voir une automatisation spécifique au runtime, telle que MSBuild pour ASP.NET, npm install pour Node.js, ou pip install pour Python.

  5. Dans le portail Azure, accédez à votre application pour vérifier que le contenu est 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. Étant donné que de nombreux dépôts Git passent de master à main, assurez-vous de pousser sur la bonne branche dans le dépôt App Service de l’une des deux manières suivantes :

  • Déployez explicitement sur master en exécutant une commande comme dans cet exemple :

    git push azure main:master
    
  • Modifiez la branche de déploiement en définissant le DEPLOYMENT_BRANCH paramètre d’application, puis envoyez des validations à la branche personnalisée.

    Pour ce faire à l’aide d’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 DEPLOYMENT_BRANCH paramètre d’application dans le portail Azure :

    1. Sous Paramètres, sélectionnez Variables d’environnement.
    2. Ajoutez un paramètre d’application qui a le nom DEPLOYMENT_BRANCH et la valeur main.

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 La cause Résolution
Unable to access '[siteURL]': Failed to connect to [scmAddress] L’application n’est pas en cours d’exécution. Dans le portail Azure, démarrez l’application. 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 dépôts distants et leurs URL associées. Vérifiez que l’URL du dépôt distant azure est correcte. Si nécessaire, supprimez et recréez-le à l’aide 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 lorsque vous avez exécuté git push ou que vous n’avez pas défini la push.default valeur dans .gitconfig. Réexécutez git push et spécifiez la branche principale : 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 . Pour plus d’informations, consultez Modifier la branche de déploiement.
src refspec [branchname] does not match any. Vous avez essayé d’envoyer (push) vers une branche autre que main sur le dépôt distant azure. Réexécutez git push et spécifiez la branche principale : 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 définir une valeur plus élevée pour 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. Passez en revue les npm ERR! messages d’erreur qui s’affichent avant cette erreur pour plus de contexte. Les causes suivantes sont des causes connues de cette erreur et des messages correspondants npm ERR! :

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\