Partager via


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

L’une des méthodes les plus simples pour déployer du code provient de votre ordinateur local. Cet article explique comment déployer votre application sur Azure App Service à partir d’un dépôt Git sur votre ordinateur local.

Remarque

Le déploiement Git local 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 l’authentification de base est désactivée, vous ne pouvez pas configurer le déploiement Git local dans le Centre de déploiement de l’application.

Prérequis

Pour accomplir les étapes décrites dans cet article, vous avez besoin de ce qui suit :

  • Un compte et un abonnement Azure avec l'autorisation de créer des ressources de type App Services. Si vous ne disposez pas d’un compte Azure, créez-en un gratuitement avant de commencer.

  • Git installé et dépôt Git local qui contient du code d’application à déployer.

    Vous pouvez cloner un exemple de référentiel d’applications Node.js en exécutant la commande suivante dans votre fenêtre de terminal Bash locale :

    git clone https://github.com/Azure-Samples/nodejs-docs-hello-world.git
    
  • Si vous souhaitez utiliser les commandes Azure CLI, la dernière version d’Azure CLI installée sur votre ordinateur local. Connectez-vous à Azure à l’aide d’az login.

  • Si vous souhaitez exécuter les commandes Azure PowerShell, la dernière version d’Azure PowerShell installée. Connectez-vous à Azure à l’aide de Connect-AzAccount.

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 Core *.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.

Identifiants utilisateur de déploiement

Vous avez besoin d’informations d’identification utilisateur de déploiement pour authentifier et déployer votre application. Ces informations sont différentes de vos informations d’identification d’abonnement Azure, et vous pouvez utiliser des informations d’identification d’étendue utilisateur ou d’étendue d’application .

Un utilisateur de déploiement d’étendue utilisateur pour le déploiement Git local a uniquement besoin d’un nom d’utilisateur, et non d’un mot de passe. Vous pouvez définir ce nom d’utilisateur via la commande Azure CLI az webapp deployment user set --user-name <username>, ou en accédant à l’onglet Identifiants Git/FTPS locaux du Centre de déploiement de l’application, sous la section étendue utilisateur.

Une fois que vous avez créé votre utilisateur de déploiement d’étendue utilisateur, vous pouvez l’utiliser pour toutes les applications App Service auxquelles vous avez accès. Pour plus d’informations, consultez Configurer les identifiants d’étendue utilisateur.

Un utilisateur de déploiement au niveau de l'application est spécifique à l'application et est généré automatiquement lorsque vous créez une application. Vous pouvez obtenir les informations d'identification utilisateur à l'échelle de l'application à utiliser pour le déploiement à partir de l'onglet Informations d'identification Git/FTPS locales dans le Centre de déploiement de l'application.

Créer et configurer une application avec Git

Vous pouvez créer et configurer une application prenant en charge Git ou configurer un déploiement Git local pour une application préexistante, à l’aide d’Azure CLI, d’Azure PowerShell ou du portail Azure.

  • Pour créer une application web configurée pour le déploiement Git local, exécutez az webapp create avec l’option --deployment-local-git . Exemple :

    az webapp create --resource-group myResourceGroup --plan myAppServicePlan --name myApp --runtime "NODE:24-lts" --deployment-local-git
    
  • Pour configurer le déploiement Git local pour une application déjà existante, exécutez az webapp deployment source config-local-git. Exemple :

    az webapp deployment source config-local-git --name myApp --resource-group myResourceGroup
    

L’une ou l’autre commande produit une sortie qui inclut une URL, par exemple :

Local git is configured with url of 'https://contoso-user@myapp.scm.azurewebsites.net/myApp.git'

L’URL précédente contient le nom d’utilisateur pour le déploiement à l'étendue utilisateurcontoso-user. Si aucun nom d’utilisateur d’étendu utilisateur n’est défini, l’URL utilise celui à nom d’utilisateur d’étendu application, par exemple https://$myApp@myApp.scm.azurewebsites.net/myApp.git.

Utilisez cette URL de clone Git pour déployer votre application à l’étape suivante.

Déployer l’application web

Pour déployer l’application sur Azure, créez une branche distante si nécessaire, vérifiez que vous effectuez le déploiement vers la branche appropriée, puis envoyez votre code à distance.

Créer la branche distante

Si vous avez utilisé Azure PowerShell New-AzWebApp pour créer l’application à partir de l’exemple de code, le dépôt distant azure est déjà créé. Dans le cas contraire, suivez ces instructions pour créer l’environnement distant :

  1. Dans un terminal local, remplacez le répertoire par la racine de votre référentiel Git cloné.

  2. Ajoutez un git distant nommé azure à l’aide de votre URL de git clone. Si vous ne connaissez pas votre URL de clone Git, utilisez https://<app-name>.scm.azurewebsites.net/<app-name>.git.

    git remote add azure <git-clone-url>
    

Envoyer (push) les modifications vers la branche appropriée

Les référentiels App Service déploient des fichiers dans la master branche par défaut. Si vos fichiers locaux préexistants se trouvent dans la master branche de votre référentiel, vous pouvez maintenant déployer votre application en exécutant git push azure master.

Toutefois, de nombreux référentiels Git, y compris l’exemple de référentiel de code pour cet article, utilisent main ou un autre nom de branche par défaut. Pour effectuer le déploiement vers la branche appropriée, vous devez soit déployer explicitement sur la branche distante master, soit modifier la branche de déploiement en main ou un autre nom de branche, puis déployer sur cette branche.

Déployez explicitement à master à partir de votre branche main grâce à la commande suivante push :

git push azure main:master

Ou modifiez le paramètre d'application DEPLOYMENT_BRANCH à main de votre application, puis envoyez directement à main, comme suit :

  • Azure CLI :

    az webapp config appsettings set --name <app-name> --resource-group <group-name> --settings DEPLOYMENT_BRANCH='main'
    git push azure main
    
  • Portail Azure :

    1. Dans la page portail de votre application, sélectionnez Variables d’environnement sous Paramètres dans le menu de navigation de gauche.
    2. Sélectionnez Ajouter, ajoutez un paramètre d’application avec le nom DEPLOYMENT_BRANCH et la valeur principale, puis sélectionnez Appliquer.
    3. Dans la fenêtre de terminal, exécutez git push azure main.

Terminer et vérifier le déploiement

Si la boîte de dialogue Gestionnaire d’informations d’identification Git s’affiche après avoir poussé votre code, entrez le nom d'utilisateur pour le déploiement à l'échelle utilisateur ou le nom d'utilisateur et mot de passe pour l'échelle application. Si votre URL distante Git contient déjà les informations de connexion, vous n’êtes pas invité à l’entrer.

Passez en revue la sortie de la push commande. Vous pouvez voir une automatisation spécifique à l'environnement d'exécution, par exemple npm install pour Node.js, MSBuild pour ASP.NET ou pip install pour Python. Si vous recevez des erreurs, consultez Résoudre les problèmes de déploiement.

Accédez au portail Azure et vérifiez que l’application a été déployée correctement en sélectionnant le lien de domaine par défaut sur la page Vue d’ensemble de l’application. L’application doit s’ouvrir sous un onglet de navigateur et afficher Hello World !.

Résoudre les problèmes de déploiement

Les erreurs courantes suivantes peuvent se produire lorsque vous utilisez Git local pour publier sur 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 l’URL incorrecte en utilisant git remote remove , puis recréez l’URL distante avec 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 correcte avec git push azure <branch>.
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 ou modifiez la branche de déploiement en suivant les instructions dans Push vers la branche correcte.
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 main branche avec git push azure main.
RPC failed; result=22, HTTP code = 5xx. Vous avez essayé d’envoyer (push) un dépôt Git volumineux sur 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 avec un fichier package.json qui spécifie les modules requis ajoutés. Passez en revue les npm ERR! messages d’erreur qui s’affichent avant cette erreur pour plus de contexte. Les causes connues suivantes de cette erreur produisent les messages correspondants npm ERR! :
Fichier package.json incorrect: npm ERR! Couldn't read dependencies.
Le 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\