Déploiement continu pour Azure Functions

Azure Functions vous permet de déployer votre code en continu via une intégration du contrôle de code source. L'intégration du contrôle de code source active un flux de travail dans lequel une mise à jour de code déclenche la génération, l'empaquetage et le déploiement de votre projet vers Azure.

Le déploiement continu est une option intéressante pour des projets dans le cadre desquels vous intégrez des contributions multiples et fréquentes. Avec un déploiement continu, vous maintenez une source fidèle unique de votre code, qui permet aux équipes de collaborer facilement.

Les étapes de cet article vous montrent comment configurer des déploiements de code continus sur votre application de fonction dans Azure à l’aide du Centre de déploiement du Portail Microsoft Azure. Vous pouvez également configurer l’intégration continue à l’aide d’Azure CLI.

Functions prend en charge ces sources pour un déploiement continu sur votre application :

Gérez le code de votre projet dans Azure Repos, l'un des services d'Azure DevOps. Prend en charge le contrôle de version Git et Team Foundation Version Control. Utilisé avec le fournisseur de build Azure Pipelines). Pour plus d’informations, consultez Qu’est-ce qu’Azure Repos ?

Vous pouvez également connecter votre application de fonction à un référentiel Git externe, mais cela nécessite une synchronisation manuelle. Pour plus d'informations sur les options de déploiement, consultez Technologies de déploiement dans Azure Functions.

Remarque

Les options de déploiement continu abordées dans cet article sont spécifiques aux déploiements de code uniquement. Pour les déploiements d’applications de fonction conteneurisées, consultez Activer le déploiement continu de conteneurs sur Azure.

Spécifications

Pour que le déploiement continu fonctionne correctement, votre structure de répertoires doit être compatible avec la structure de dossiers de base attendue par Azure Functions.

Le code de toutes les fonctions d’une application de fonctions spécifique se trouve dans un dossier de projet racine qui contient un fichier de configuration d’hôte. Le fichier host.json contient des configurations spécifiques du runtime et se trouve dans le dossier racine de la Function App. Un dossier bin contient des packages et autres fichiers de bibliothèque requis par la Function App. Les structures de dossiers spécifiques requises par l’application de fonction dépendent du langage :

Toutes les fonctions de l'application de fonction doivent partager la même pile de langage.

Fournisseurs de build

La création de votre projet de code fait partie du processus de déploiement. Le processus de création spécifique dépend de votre pile linguistique, de votre système d'exploitation et de votre plan d'hébergement spécifiques. Les builds peuvent être effectués localement ou à distance, encore une fois en fonction de votre hébergement spécifique. Pour en savoir plus, consultez Build à distance.

Functions prend en charge ces fournisseurs de build :

Azure Pipelines est l'un des services d'Azure DevOps et le fournisseur de build par défaut pour les projets Azure Repos. Vous pouvez également utiliser Pipelines pour créer des projets à partir de GitHub. Dans Pipelines, il existe une tâche AzureFunctionApp spécialement conçue pour le déploiement sur Azure Functions. Cette tâche vous permet de contrôler la façon dont le projet est construit, empaqueté et déployé.

Vos options quant aux fournisseurs de build que vous pouvez utiliser dépendent de la source de déploiement de code spécifique.

Centre de déploiement

Le Portail Microsoft Azure fournit un centre de déploiement pour vos applications de fonction, ce qui facilite la configuration du déploiement continu. La manière dont vous configurez le déploiement continu dépend à la fois du contrôle de source spécifique dans lequel réside votre code et du fournisseur de build que vous choisissez.

Dans le Portail Microsoft Azure, accédez à la page de votre application de fonction et sélectionnez Centre de déploiement sous Déploiement dans le volet de gauche.

Capture d'écran du centre de déploiement de l'application Function dans le Portail Microsoft Azure où vous choisissez votre référentiel source.

Sélectionnez le type de référentiel source dans lequel le code de votre projet est conservé parmi l'une de ces options prises en charge :

Les déploiements à partir d'Azure Repos qui utilisent Azure Pipelines sont définis dans le portail Azure DevOps et non à partir de votre application de fonction. Pour obtenir un guide étape par étape sur la création d'un déploiement basé sur Pipelines à partir d'Azure Repos, consultez Livraison continue avec Azure Pipelines.

Une fois le déploiement terminé, tout le code de la source spécifiée est déployé sur votre application. À ce stade, les modifications apportées à la source de déploiement déclenchent un déploiement de ces modifications sur votre Function App dans Azure.

À propos de l’installation

Vous devez garder ces considérations à l’esprit lors de la planification d’une stratégie de déploiement continu :

  • GitHub est la seule source qui prend actuellement en charge le déploiement continu des applications Linux exécutées sur un plan Consommation, qui est une option d'hébergement populaire pour les applications Python.

  • L’unité de déploiement de fonctions dans Azure est la Function App. Toutes les fonctions d'une application de fonction sont déployées en même temps et dans le même package.

  • Une fois le déploiement continu activé, l’accès au code de fonction dans le Portail Microsoft Azure est configuré en lecture seule, car on sait que la source de vérité réside ailleurs.

  • Vous devez toujours configurer le déploiement continu pour un emplacement intermédiaire et non pour l'emplacement de production. Lorsque vous utilisez l’emplacement de production, les mises à jour de code sont envoyées directement en production sans être vérifiées dans Azure. Au lieu de cela, activez le déploiement continu sur un emplacement intermédiaire, vérifiez les mises à jour dans l'emplacement intermédiaire et, une fois que tout fonctionne correctement, vous pouvez échanger le code de l'emplacement intermédiaire en production.

  • Le Centre de déploiement ne prend pas en charge l’activation du déploiement continu pour une application de fonction avec des restrictions de réseau entrant. Vous devez plutôt configurer le workflow du fournisseur de build directement dans GitHub ou Azure Pipelines. Ces workflows nécessitent également que vous utilisiez une machine virtuelle dans le même réseau virtuel que l'application de fonction en tant qu'agent auto-hébergé (Pipelines) ou exécuteur auto-hébergé (GitHub).

Déploiement continu pendant la création de l’application

Vous pouvez à présent configurer le déploiement continu à partir de GitHub à l’aide de GitHub Actions à la création de votre application de fonction dans le Portail Azure. Vous pouvez le faire sous l’onglet Déploiement dans la page Créer une application de fonction.

Si vous souhaitez utiliser une autre source de déploiement ou un autre fournisseur de build pour l’intégration continue, créez au préalable votre application de fonction, puis revenez au portail et configurez l’intégration continue dans le Centre de déploiement.

Activer l’authentification de base pour le déploiement

Par défaut, votre application de fonction est créée avec l’accès et l’authentification de base au point de terminaison scm désactivé. Cela bloque la publication par toutes les méthodes ne pouvant pas utiliser des identités managées pour accéder au point de terminaison scm. Les répercussions de la publication du point de terminaison scm désactivée sont détaillées dans Déploiement sans authentification de base.

Important

Lorsque vous utilisez l’authentification de base, les informations d’identification sont envoyées en texte clair. Pour protéger ces informations d’identification, vous devez uniquement accéder au point de terminaison scm par une connexion chiffrée (HTTPS) lors de l’utilisation de l’authentification de base. Pour plus d’informations, voir Déploiement sécurisé.

Pour activer l’authentification de base sur le point de terminaison scm :

  1. Sur le portail Azure, accédez à votre application de fonction.

  2. Dans le menu de gauche de l'application, sélectionnez Configuration>Paramètres généraux.

  3. Définissez les Informations d’identification Essentielles de publication d’authentification SCM sur Activé, puis sélectionnez Enregistrer.

Étapes suivantes