Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment configurer le déploiement continu (CD) sur Azure App Service en extrayant les mises à jour à partir de GitHub, Bitbucket, Azure Repos ou d’autres référentiels.
Conditions préalables
Écrire des autorisations sur une application Azure App Service dans un référentiel de contrôle de code source.
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.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, 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 / Astuce
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.
Activer le déploiement continu
Dans le portail Azure, accédez à la page de votre application App Service et sélectionnez Centre de déploiement dans le menu de navigation de gauche.
Sous l’onglet Paramètres , sous Source, sélectionnez votre type de référentiel de contrôle de code source.
Suivez les instructions de votre type source pour configurer le déploiement.
Toutes les sources répertoriées peuvent être générées avec App Service Build Service. Certaines sources peuvent également être générées avec GitHub Actions ou Azure Pipelines. Pour plus d’informations, consultez Fournisseurs de build.
GitHub Actions est le fournisseur de build GitHub par défaut. Pour modifier le fournisseur, sélectionnez Modifier le fournisseur, sélectionnez App Service Build Service ou Azure Pipelines, puis ok.
Si nécessaire, sélectionnez Autoriser et suivez les invites d’autorisation pour GitHub. Pour effectuer le déploiement à partir du référentiel d’un autre utilisateur, sélectionnez Modifier le compte.
Sélectionnez l’organisation, le référentiel et la branche GitHub appropriés.
Si vous ne trouvez pas d’organisation ou de dépôt, vous devrez peut-être activer davantage d’autorisations sur GitHub. Pour plus d’informations, consultez Gestion de l’accès aux dépôts de votre organisation.
Sous Type d’authentification, sélectionnez Identité affectée par l’utilisateur pour une meilleure sécurité.
Si votre compte Azure dispose des autorisations requises, App Service crée une identité managée affectée par l’utilisateur pour vous, ou vous pouvez choisir une identité managée existante. Si vous n’avez pas les autorisations requises, collaborez avec votre administrateur Azure pour créer une identité avec le rôle requis sur votre application, puis sélectionnez-la dans la liste déroulante.
App Service sélectionne un modèle de flux de travail en fonction du paramètre de pile linguistique de votre application et le valide dans votre dépôt GitHub sélectionné. Vous pouvez éventuellement sélectionner le fichier d’aperçu pour afficher le fichier de flux de travail avant d’enregistrer vos modifications.
Sélectionnez Enregistrer.
Les nouvelles validations correspondant au dépôt et à la branche sélectionnés sont déployées en continu dans votre application App Service. Vous pouvez suivre les validations et les déploiements sous l’onglet Journaux.
Désactiver le déploiement continu
Pour désactiver le déploiement continu pour une source connectée :
Dans le portail Azure, accédez à la page de votre application App Service et sélectionnez Centre de déploiement dans le menu de navigation de gauche.
Sous l’onglet Paramètres , sélectionnez Déconnecter.
Cliquez sur OK.
Pour GitHub, le fichier de flux de travail reste dans le référentiel par défaut, mais vous ne voyez plus la progression intégrée sous l’onglet Journaux du Centre de déploiement.
Qu’est-ce qu’un fournisseur de build ?
Les fournisseurs de build vous aident à créer une solution d’intégration continue et de livraison continue (CI/CD) avec Azure App Service en automatisant la génération, le test et le déploiement. Certaines sources de déploiement offrent plusieurs options de fournisseur de build. Toutes les sources répertoriées peuvent être générées avec App Service Build Service.
Vous n’êtes pas limité aux options de fournisseur de build répertoriées, mais App Service vous aide à configurer rapidement les options répertoriées et à commencer à obtenir la journalisation du déploiement intégré.
GitHub Actions (actions de GitHub)
Le fournisseur de build GitHub Actions est disponible uniquement pour la source GitHub et est la valeur par défaut pour les déploiements GitHub. Le fournisseur de build configure CI/CD en dépôtant un fichier de flux de travail GitHub Actions dans votre référentiel GitHub qui gère les tâches de génération et de déploiement App Service.
Pour l’authentification de base, le fournisseur de build GitHub Actions ajoute le profil de publication de votre application en tant que secret GitHub. Le fichier de workflow utilise ce secret pour s’authentifier auprès d’App Service.
Pour l’identité affectée par l’utilisateur, App Service active l’authentification Microsoft OpenID Connect recommandée et configure les ressources nécessaires dans Azure et GitHub. Pour plus d'informations, consultez Que fait l’option d’identité assignée par l’utilisateur pour GitHub Actions ?
Le fournisseur de build GitHub Actions capture des informations à partir des journaux d’exécution du flux de travail et l’affiche sous l’onglet Journaux dans le Centre de déploiement de l’application.
Vous pouvez personnaliser le fournisseur de build GitHub Actions de plusieurs façons :
- Personnalisez le fichier de flux de travail après sa génération dans votre dépôt GitHub. Pour plus d’informations, consultez Syntaxe de workflow pour GitHub Actions. Déployez le flux de travail personnalisé sur App Service avec l’action
azure/webapps-deploy
. - Si la branche sélectionnée est protégée, affichez un aperçu du fichier de flux de travail sans enregistrer la configuration. Personnalisez le fichier, puis ajoutez-le manuellement à votre référentiel. Cette méthode ne permet pas l’intégration des journaux avec le portail Azure.
- Déployez en utilisant un service principal Microsoft Entra ID au lieu d’utiliser l’authentification de base ou une identité affectée par l’utilisateur. Vous ne pouvez pas configurer cette méthode dans le portail.
Service de build App Service
Le service de construction de l'App Service est le moteur natif de déploiement et de construction de l'App Service. Lorsque vous sélectionnez cette option, App Service ajoute un webhook dans le référentiel que vous avez autorisé. Tout push de code vers le référentiel déclenche le webhook et App Service extrait les modifications et effectue toutes les tâches de déploiement. Pour plus d’informations, consultez Déploiement à partir de GitHub (Kudu).
Le service de build App Service nécessite l’authentification de base du Gestionnaire de contrôle de code source (SCM) pour que le webhook fonctionne. L’authentification de base est moins sécurisée que les autres méthodes d’authentification. Pour plus d’informations, consultez :
- Projet Kudu
- Examiner les problèmes courants liés au déploiement continu
- Déployer sans authentification de base
Azure Pipelines
Azure Pipelines est le composant de build d’Azure DevOps. Vous pouvez configurer un pipeline pour générer, tester et déployer votre application sur App Service à partir de n’importe quel dépôt source pris en charge.
Pour utiliser Azure Pipelines comme fournisseur de build, sélectionnez l’option Azure Pipelines dans le Centre de déploiement App Service, puis accédez directement à Azure DevOps pour configurer le pipeline. Pour plus d’informations, consultez Déployer sur App Service avec Azure Pipelines.
Forum aux questions
- Comment fonctionne le fournisseur de build GitHub Actions si l’authentification de base est désactivée ?
- Que se passe-t-il pour mon application pendant le déploiement qui peut provoquer une défaillance ou un comportement imprévisible ?
- Que fait l’option d’identité affectée par l’utilisateur pour GitHub Actions ?
- Pourquoi l’erreur « Vous ne disposez pas des autorisations suffisantes sur cette application pour attribuer un accès en fonction du rôle à une identité managée et configurer des informations d’identification fédérées » ?
- Pourquoi est-ce que je vois l'erreur « Cette identité n'a pas d'autorisations d'écriture sur cette application. Sélectionnez une identité différente ou collaborez avec votre administrateur pour accorder le rôle Contributeur de site web à votre identité sur cette application » s’affiche-t-elle ?
Comment fonctionne le fournisseur de build GitHub Actions si l’authentification de base est désactivée ?
Le fournisseur de build GitHub Actions ne fonctionne pas avec l’authentification de base si l’authentification de base est désactivée. Essayez d’utiliser GitHub Actions avec l’option identité assignée par l’utilisateur plutôt. Pour plus d’informations, consultez Déployer sans authentification de base.
Que se passe-t-il pour mon application pendant le déploiement qui peut provoquer une défaillance ou un comportement imprévisible ?
Les méthodes de déploiement officiellement prises en charge apportent des modifications aux fichiers dans le dossier /home/site/wwwroot utilisé pour exécuter votre application. Le déploiement peut échouer en raison de fichiers verrouillés. L’application peut également se comporter de manière imprévisible pendant le déploiement si les fichiers ne sont pas tous mis à jour en même temps, ce qui n’est pas souhaitable pour une application côté client.
Il existe plusieurs façons d’éviter ces problèmes.
- Exécutez votre application directement à partir du package ZIP sans la décompresser.
- Arrêtez votre application ou activez le mode hors connexion pendant le déploiement. Pour plus d’informations, consultez Gérer les fichiers verrouillés au cours du déploiement.
- Effectuez le déploiement sur un emplacement de préproduction avec échange automatique activé.
Que fait l’option d’identité affectée par l’utilisateur pour GitHub Actions ?
Lorsque vous sélectionnez l’identité affectée par l’utilisateur pour la source GitHub , App Service configure toutes les ressources nécessaires dans Azure et GitHub. App Service active l’authentification Microsoft OpenID Connect recommandée avec GitHub Actions.
Plus précisément, App Service effectue les opérations suivantes :
- Crée des informations d’identification fédérées entre une identité managée affectée par l’utilisateur dans Azure et votre dépôt et votre branche sélectionnés dans GitHub.
- Crée les secrets
AZURE_CLIENT_ID
,AZURE_TENANT_ID
etAZURE_SUBSCRIPTION_ID
à partir des informations d’identification fédérées dans votre dépôt GitHub sélectionné. - Affecte l’identité à votre application.
Vous pouvez ensuite utiliser l’action Azure/login
dans un workflow GitHub Actions dans votre dépôt GitHub pour vous authentifier auprès de votre application à l’aide d’OpenID Connect. Pour obtenir des exemples, consultez Ajouter le fichier de workflow à votre dépôt GitHub.
Si votre compte Azure dispose des autorisations requises, App Service crée une identité managée affectée par l’utilisateur et la configure pour vous. Cette identité n’apparaît pas dans la page Identité de votre application. Si votre compte Azure ne dispose pas des autorisations requises, vous devez sélectionner une identité existante avec le rôle requis.
Pourquoi l’erreur « Vous ne disposez pas des autorisations suffisantes sur cette application pour attribuer un accès en fonction du rôle à une identité managée et configurer des informations d’identification fédérées » ?
Le message indique que votre compte Azure n’a pas les autorisations requises pour créer une identité managée affectée par l’utilisateur pour GitHub Actions. Vous avez besoin des autorisations suivantes, délimitées à votre application :
Microsoft.Authorization/roleAssignments/write
Microsoft.ManagedIdentity/userAssignedIdentities/write
Par défaut, les rôles Administrateur et Propriétaire de l’accès utilisateur Azure disposent de ces autorisations, mais le rôle Contributeur ne le fait pas. Si vous n’avez pas les autorisations requises, collaborez avec votre administrateur Azure pour créer une identité managée affectée par l’utilisateur disposant du rôle Contributeur de sites web . Vous pouvez ensuite sélectionner cette identité dans la liste déroulante Identité pour la source GitHub dans le Centre de déploiement App Service.
Pour plus d’informations sur l’utilisation d’autres étapes, consultez Déployer sur App Service à l’aide de GitHub Actions.
Pourquoi est-ce que je vois l'erreur « Cette identité n'a pas d'autorisations d'écriture sur cette application. Sélectionnez une identité différente ou collaborez avec votre administrateur pour accorder le rôle Contributeur de site web à votre identité sur cette application » s’affiche-t-elle ?
Le message indique que l'identité managée attribuée à l'utilisateur(-trice) sélectionné(e) n'a pas le rôle requis pour [activer OpenID Connect]((#what-does-the-user-assigned-identity-option-do-for-github-actions)) entre le référentiel GitHub et l'application App Service. L’identité doit avoir le rôle Propriétaire, Contributeur ou Contributeur de sites web sur l’application. Le rôle le moins privilégié dont l’identité a besoin est Contributeur de sites web.