Déploiement continu vers Azure App ServiceContinuous deployment to Azure App Service

Azure App Service permet un déploiement continu à partir des référentiels GitHub, BitBucket et Azure Repos en extrayant les dernières mises à jour.Azure App Service enables continuous deployment from GitHub, BitBucket, and Azure Repos repositories by pulling in the latest updates. Cet article explique comment utiliser le Portail Azure pour procéder à un déploiement continu de votre application via le service de builds Kudu ou Azure Pipelines.This article shows you how to use the Azure portal to continuously deploy your app through the Kudu build service or Azure Pipelines.

Pour plus d'informations sur les services de contrôle de code source, consultez Création d’un dépôt (GitHub), Création d’un dépôt (BitBucket) ou Créer un référentiel Git (Azure Repos).For more information on the source control services, see Create a repo (GitHub), Create a repo (BitBucket), or Create a new Git repo (Azure Repos).

Pour configurer manuellement le déploiement continu à partir d'un référentiel cloud que le portail ne prend pas directement en charge, comme GitLab, consultez Configurer manuellement un déploiement continu.To manually configure continuous deployment from a cloud repository that the portal doesn't directly support, such as GitLab, see Set up continuous deployment using manual steps.

Préparer votre dépôtPrepare your repository

Pour obtenir les builds automatiques à partir du serveur de builds Kudu d’Azure App Service, assurez-vous que la racine du référentiel contient les fichiers appropriés de votre projet.To get automatic builds from Azure App Service Kudu build server, make sure that your repository root has the correct files in your project.

RuntimeRuntime Fichiers du répertoire racineRoot directory files
ASP.NET (Windows uniquement)ASP.NET (Windows only) *.sln, *.csproj ou default.aspx*.sln, *.csproj, or default.aspx
ASP.NET CoreASP.NET Core *.sln ou *.csproj*.sln or *.csproj
PHPPHP index.phpindex.php
Ruby (Linux uniquement)Ruby (Linux only) GemfileGemfile
Node.jsNode.js server.js, app.js ou package.json avec un script de démarrageserver.js, app.js, or package.json with a start script
PythonPython *.py, requirements.txt ou runtime.txt*.py, requirements.txt, or runtime.txt
HTMLHTML default.htm, default.html, default.asp, index.htm, index.html ou iisstart.htmdefault.htm, default.html, default.asp, index.htm, index.html, or iisstart.htm
WebJobsWebJobs <job_name>/run.<extension> sous App_Data/jobs/continuous pour les WebJobs continus ou App_Data/jobs/triggered pour les WebJobs déclenchés.<job_name>/run.<extension> under App_Data/jobs/continuous for continuous WebJobs, or App_Data/jobs/triggered for triggered WebJobs. Pour plus d’informations, consultez la documentation Kudu relative aux WebJobs.For more information, see Kudu WebJobs documentation.
FonctionsFunctions Consultez Déploiement continu pour Azure Functions.See Continuous deployment for Azure Functions.

Pour personnaliser votre déploiement, vous pouvez inclure un fichier .deployment dans la racine du dépôt.To customize your deployment, include a .deployment file in the repository root. Pour plus d’informations, consultez Personnaliser les déploiements et Personnaliser un script de déploiement.For more information, see Customize deployments and Custom deployment script.

Notes

Si vous développez dans Visual Studio, laissez Visual Studio créer un dépôt pour vous.If you develop in Visual Studio, let Visual Studio create a repository for you. Le projet est immédiatement prêt à être déployé à l’aide de Git.The project is immediately ready to be deployed by using Git.

Autoriser Azure App ServiceAuthorize Azure App Service

Pour utiliser Azure Repos, assurez-vous que votre organisation Azure DevOps est liée à votre abonnement Azure.To use Azure Repos, make sure your Azure DevOps organization is linked to your Azure subscription. Pour plus d'informations, consultez Configurer un compte Azure DevOps Services afin de le déployer sur une application web.For more information, see Set up an Azure DevOps Services account so it can deploy to a web app.

Pour Bitbucket ou GitHub, autorisez Azure App Service à se connecter à votre référentiel.For Bitbucket or GitHub, authorize Azure App Service to connect to your repository. Un service de contrôle de source ne nécessite qu'une seule autorisation.You only need to authorize with a source control service once.

  1. Sélectionnez App Services dans le volet de navigation gauche du Portail Azure, puis sélectionnez l'application web que vous souhaitez déployer.Select App Services in the Azure portal left navigation, and then select the web app you want to deploy.

  2. Sur la page de l'application, sélectionnez Centre de déploiement dans le menu de gauche.On the app page, select Deployment Center in the left menu.

  3. Sur la page Centre de déploiement, choisissez GitHub ou Bitbucket, puis sélectionnez Autoriser.On the Deployment Center page, select GitHub or Bitbucket, and then select Authorize.

    Sélectionnez le service de contrôle de code source, puis choisissez Autoriser.

  4. Si nécessaire, connectez-vous au service et suivez les instructions d'autorisation.Sign in to the service if necessary, and follow the authorization prompts.

Activer le déploiement continuEnable continuous deployment

Après avoir autorisé un service de contrôle de code source, configurez votre application pour un déploiement continu via le serveur de builds Kudu App Service intégré, ou via Azure Pipelines.After you authorize a source control service, configure your app for continuous deployment through the built-in Kudu App Service build server, or through Azure Pipelines.

Option 1 : utiliser le service de builds App ServiceOption 1: Use the App Service build service

Vous pouvez utiliser le serveur de builds Kudu App Service intégré pour procéder à des déploiements continus à partir de GitHub, Bitbucket ou Azure Repos.You can use the built-in Kudu App Service build server to continuously deploy from GitHub, Bitbucket, or Azure Repos.

  1. Sélectionnez App Services dans le volet de navigation gauche du Portail Azure, puis sélectionnez l'application web que vous souhaitez déployer.Select App Services in the Azure portal left navigation, and then select the web app you want to deploy.

  2. Sur la page de l'application, sélectionnez Centre de déploiement dans le menu de gauche.On the app page, select Deployment Center in the left menu.

  3. Sélectionnez votre fournisseur de contrôle de code source autorisé sur la page Centre de déploiement, puis choisissez Continuer.Select your authorized source control provider on the Deployment Center page, and select Continue. Pour GitHub ou Bitbucket, vous pouvez également sélectionner Modifier le compte pour changer de compte autorisé.For GitHub or Bitbucket, you can also select Change account to change the authorized account.

    Notes

    Pour utiliser Azure Repos, assurez-vous que votre organisation Azure DevOps Services est liée à votre abonnement Azure.To use Azure Repos, make sure your Azure DevOps Services organization is linked to your Azure subscription. Pour plus d'informations, consultez Configurer un compte Azure DevOps Services afin de le déployer sur une application web.For more information, see Set up an Azure DevOps Services account so it can deploy to a web app.

  4. Pour GitHub ou Azure Repos, sur la page Fournisseur de builds, sélectionnez Service de builds App Service, puis Continuer.For GitHub or Azure Repos, on the Build provider page, select App Service build service, and then select Continue. Bitbucket utilise toujours le service de builds App Service.Bitbucket always uses the App Service build service.

    Sélectionnez Service de builds App Service, puis Continuer.

  5. Sur la page Configurer :On the Configure page:

    • Pour GitHub, sélectionnez l'Organisation, le Référentiel et la Branche que vous souhaitez déployer en continu.For GitHub, drop down and select the Organization, Repository, and Branch you want to deploy continuously.

      Notes

      En l'absence de référentiel, il peut être nécessaire d'autoriser Azure App Service dans GitHub.If you don't see any repositories, you may need to authorize Azure App Service in GitHub. Accédez à votre référentiel GitHub, puis sélectionnez Paramètres > Applications > Applications OAuth autorisées.Browse to your GitHub repository and go to Settings > Applications > Authorized OAuth Apps. Sélectionnez Azure App Service, puis Octroyer.Select Azure App Service, and then select Grant.

    • Pour Bitbucket, sélectionnez l'Équipe, le Référentiel et la Branche que vous souhaitez déployer en continu.For Bitbucket, select the Bitbucket Team, Repository, and Branch you want to deploy continuously.

    • Pour Azure Repos, sélectionnez l'Organisation Azure DevOps, le Projet, le Référentiel et la Branche que vous souhaitez déployer en continu.For Azure Repos, select the Azure DevOps Organization, Project, Repository, and Branch you want to deploy continuously.

      Notes

      Si votre organisation Azure DevOps n'est pas répertoriée, assurez-vous qu'elle est liée à votre abonnement Azure.If your Azure DevOps organization isn't listed, make sure it's linked to your Azure subscription. Pour plus d'informations, consultez Configurer un compte Azure DevOps Services afin de le déployer sur une application web.For more information, see Set up an Azure DevOps Services account so it can deploy to a web app..

  6. Sélectionnez Continuer.Select Continue.

    Renseignez les informations relatives au référentiel, puis sélectionnez Continuer.

  7. Une fois le fournisseur de builds configuré, vérifiez les paramètres sur la page Résumé, puis sélectionnez Terminer.After you configure the build provider, review the settings on the Summary page, and then select Finish.

    Les nouvelles validations correspondant au référentiel et à la branche sélectionnés sont déployées en continu dans votre application App Service.New commits in the selected repository and branch now deploy continuously into your App Service app. Vous pouvez suivre les validations et les déploiements sur la page Centre de déploiement.You can track the commits and deployments on the Deployment Center page.

    Suivre les validations et les déploiements dans le Centre de déploiement

Option 2 : utiliser Azure PipelinesOption 2: Use Azure Pipelines

Si votre compte dispose des autorisations nécessaires, vous pouvez configurer Azure Pipelines pour un déploiement continu à partir de référentiels GitHub ou Azure Repos.If your account has the necessary permissions, you can set up Azure Pipelines to continuously deploy from GitHub or Azure Repos repositories. Pour plus d'informations sur le déploiement via Azure Pipelines, consultez Déployer une application web dans Azure App Services.For more information about deploying through Azure Pipelines, see Deploy a web app to Azure App Services.

Pour permettre à Azure App Service de créer des pipelines Azure à diffusion continue dans votre organisation Azure DevOps :For Azure App Service to create continuous delivery Azure Pipelines in your Azure DevOps organization:

  • Votre compte Azure doit être autorisé à écrire dans Azure Active Directory et à créer un service.Your Azure account must have permissions to write to Azure Active Directory and create a service.

  • Votre compte Azure doit disposer du rôle Propriétaire dans votre abonnement Azure.Your Azure account must have the Owner role in your Azure subscription.

  • Vous devez être administrateur dans le projet Azure DevOps que vous souhaitez utiliser.You must be an administrator in the Azure DevOps project you want to use.

Pour configurer Azure Pipelines (préversion) :To configure Azure Pipelines (Preview):

  1. Sélectionnez App Services dans le volet de navigation gauche du Portail Azure, puis sélectionnez l'application web que vous souhaitez déployer.Select App Services in the Azure portal left navigation, and then select the web app you want to deploy.

  2. Sur la page de l'application, sélectionnez Centre de déploiement dans le menu de gauche.On the app page, select Deployment Center in the left menu.

  3. Dans la page Fournisseur de générations, sélectionnez Azure pipelines (préversion) , puis Continuer.On the Build provider page, select Azure Pipelines (Preview), and then select Continue.

  4. Sur la page Configurer, section Code :On the Configure page, in the Code section:

    • Pour GitHub, sélectionnez l'Organisation, le Référentiel et la Branche que vous souhaitez déployer en continu.For GitHub, drop down and select the Organization, Repository, and Branch you want to deploy continuously.

      Notes

      En l'absence de référentiel, il peut être nécessaire d'autoriser Azure App Service dans GitHub.If you don't see any repositories, you may need to authorize Azure App Service in GitHub. Accédez à votre référentiel GitHub, puis sélectionnez Paramètres > Applications > Applications OAuth autorisées.Browse to your GitHub repository and go to Settings > Applications > Authorized OAuth Apps. Sélectionnez Azure App Service, puis Octroyer.Select Azure App Service, and then select Grant.

    • Pour Azure Repos, sélectionnez l'Organisation Azure DevOps, le Projet, le Référentiel et la Branche que vous souhaitez déployer en continu, ou configurez une nouvelle Organisation Azure DevOps.For Azure Repos, select the Azure DevOps Organization, Project, Repository, and Branch you want to deploy continuously, or configure a new Azure DevOps organization.

      Notes

      Si votre organisation Azure DevOps existante n'est pas répertoriée, vous serez peut-être amené à devoir la lier à votre abonnement Azure.If your existing Azure DevOps organization isn't listed, you may need to link it to your Azure subscription. Pour plus d’informations, consultez Définir votre pipeline de mise en production CD.For more information, see Define your CD release pipeline.

  5. Sélectionnez Continuer.Select Continue.

  6. Pour Azure Repos, dans la section Build, spécifiez l'infrastructure de langage qu'Azure Pipelines doit utiliser pour exécuter les tâches de build, puis sélectionnez Continuer.For Azure Repos, in the Build section, specify the language framework that Azure Pipelines should use to run build tasks, and then select Continue.

  7. Sur la page Test, choisissez d'activer ou non les tests de charge, puis sélectionnez Continuer.On the Test page, choose whether to enable load tests, and then select Continue.

  8. En fonction du niveau tarifaire de votre plan App Service, il peut arriver qu’une page Déployer en préproduction s'affiche.Depending on your App Service plan pricing tier, you may see a Deploy to staging page. Choisissez si vous souhaitez activer des emplacements de déploiement, puis sélectionnez Continuer.Choose whether to enable deployment slots, and then select Continue.

    Notes

    Azure Pipelines ne permet pas la livraison continue vers l'emplacement de production.Azure Pipelines doesn't allow continuous delivery to the production slot. Cette restriction vise à empêcher les déploiements accidentels en production.This restriction prevents accidental deployments to production. Configurez la livraison continue vers un emplacement de préproduction, vérifiez les modifications, puis permutez les emplacements une fois que vous êtes prêt.Set up continuous delivery to a staging slot, verify the changes there, and then swap the slots when you are ready.

  9. Une fois le fournisseur de builds configuré, vérifiez les paramètres sur la page Résumé, puis sélectionnez Terminer.After you configure the build provider, review the settings on the Summary page, and then select Finish.

    Les nouvelles validations correspondant au référentiel et à la branche sélectionnés sont déployées en continu dans votre application App Service.New commits in the selected repository and branch now deploy continuously into your App Service app. Vous pouvez suivre les validations et les déploiements sur la page Centre de déploiement.You can track the commits and deployments on the Deployment Center page.

    Suivre les validations et les déploiements dans le Centre de déploiement

Désactiver le déploiement continuDisable continuous deployment

Pour désactiver le déploiement continu, sélectionnez Déconnecter en haut de la page Centre de déploiement de votre application.To disable continuous deployment, select Disconnect at the top of your app's Deployment Center page.

Désactiver le déploiement continu

Que se passe-t-il au niveau de mon application pendant le déploiement ?What happens to my app during deployment?

Toutes les méthodes de déploiement officiellement prises en charge apportent des modifications aux fichiers dans le dossier /home/site/wwwroot de votre application.All the officially supported deployment methods make changes to the files in the /home/site/wwwroot folder of your app. Ce sont ces mêmes fichiers qui sont exécutés en production.These files are the same ones that are run in production. Par conséquent, le déploiement peut échouer si des fichiers sont verrouillés.Therefore, the deployment can fail because of locked files. L’application en production peut également se comporter de façon imprévisible pendant le déploiement, car tous les fichiers ne sont pas tous mis à jour en même temps.The app in production may also behave unpredictably during deployment, because not all the files updated at the same time. Il existe différentes manières d’éviter ces problèmes :There are a few different ways to avoid these issues:

Ressources supplémentairesAdditional resources