Emplacements de déploiement Azure Functions

Les emplacements de déploiement Azure Functions permettent à votre application de fonction d’exécuter différentes instances appelées emplacements. Les emplacements sont différents environnements exposés via un point de terminaison disponible publiquement. Une instance d’application est toujours mappée à l’emplacement de production, et vous pouvez permuter des instances affectées à un emplacement à la demande.

Le nombre d'emplacements disponibles dépend de votre option d'hébergement spécifique :

Option d’hébergement Machines à sous (y compris la production)
Plan Consommation 2
Plan Consommation flexible Non prise en charge pour le moment
Plan Premium 3
Plan dédié (App Service) 1-20
Applications de conteneur Utilisations Révisions

Les éléments suivants reflètent la manière dont les fonctions sont affectées par la permutation d’emplacements :

  • La redirection du trafic est transparente. La permutation n’entraîne l’abandon d’aucune demande. Ce comportement transparent survient, car le déclencheur de fonction suivants est routé vers l’emplacement permuté.
  • Actuellement, les fonctions en cours d’exécution sont arrêtées pendant la permutation. Pour savoir comment écrire des fonctions sans état et défensives, consultez Améliorer les performances et la fiabilité d’Azure Functions.

Pourquoi utiliser des emplacements ?

L’utilisation d’emplacements de déploiement présente de nombreux avantages, notamment :

  • Différents environnements à des fins différentes : L’utilisation de différents emplacements vous donne la possibilité de différencier des instances d’application avant de basculer vers un emplacement de production ou de préproduction.
  • Préchauffage : Le déploiement de l’application vers un emplacement plutôt que directement en production permet de « préchauffer » celle-ci avant sa mise en ligne. En outre, l’utilisation d’emplacements réduit la latence pour les charges de travail déclenchées par HTTP. Les instances sont préchauffées avant déploiement, ce qui réduit le démarrage à froid de fonctions nouvellement déployées.
  • Facilité de secours : Après permutation avec l’emplacement de production, la précédente application en production se retrouve dans l’emplacement de l’application précédemment en préproduction. Si les modifications résultant de la permutation dans l’emplacement de production ne vous conviennent pas, vous pouvez inverser immédiatement la permutation pour revenir à votre « dernière bonne instance connue ».
  • Réduire les redémarrages : la modification des paramètres d’application dans un emplacement de production nécessite un redémarrage de l’application en cours d’exécution. Vous pouvez à la place modifier les paramètres dans un emplacement intermédiaire et échanger les paramètres en productions avec une instance prédéfinie. Les emplacements sont un moyen recommandé de migrer entre les versions du runtime Functions, tout en conservant la disponibilité la plus élevée. Pour en savoir plus, consultez la Mise à jour minimale des temps d’arrêt.

Permuter des opérations

Pendant une permutation, un emplacement est considéré comme source et l’autre est la cible. L’emplacement source contient l’instance de l’application qui est appliquée à l’emplacement cible. Les étapes suivantes garantissent que l’emplacement cible ne rencontre pas de temps d’arrêt lors d’une permutation :

  1. Appliquer les paramètres : Les paramètres de l’emplacement cible sont appliqués à toutes les instances de l’emplacement source. Par exemple, les paramètres de l’emplacement production sont appliqués à l’instance en préproduction. Les paramètres appliqués incluent les catégories suivantes :

  2. Attendre les redémarrages et la disponibilité : L’opération de permutation attend que chaque instance dans l’emplacement source ait redémarré et soit disponible pour recevoir des demandes. Si l’une des instances ne parvient pas à redémarrer, l’opération d’échange rétablit toutes les modifications apportées à l’emplacement source, puis cesse d’être exécutée.

  3. Mettre à jour le routage : Si toutes les instances dans l’emplacement source sont correctement préchauffées, les deux emplacements opèrent la permutation en échangeant leurs règles d’acheminement. Après cette étape, l’emplacement cible (par exemple, l’emplacement de production) dispose de l’application précédemment hébergée dans l’emplacement source.

  4. Répéter l’opération : Maintenant que l’emplacement source contient l’application qui se trouvait dans l’emplacement cible avant la permutation, menez à bien la même opération en appliquant tous les paramètres, puis en redémarrant les instances pour l’emplacement source.

Gardez à l’esprit les points suivants :

  • À tout moment pendant une opération de permutation, l’initialisation des applications permutées se produit sur l’emplacement source. L’emplacement cible reste en ligne pendant la préparation de l’emplacement source, que la permutation réussisse ou échoue.

  • Pour permuter un emplacement de préproduction avec l’emplacement de production, assurez-vous que l’emplacement de production est toujours l’emplacement cible. De cette façon, l’opération d’échange n’affectera pas votre application de production.

  • Les paramètres liés aux sources et aux liaisons d’événements doivent être configurés en tant que paramètres d’emplacement de déploiement avant le lancement d’une permutation. Le marquage à l’avance de ces paramètres comme « rémanents », garantit que les événements et les sorties sont dirigés vers l’instance appropriée.

  • Lorsque vous créez un nouvel emplacement de préproduction, tous les paramètres existants qui découlent de l’emplacement de production sont créés dans le nouvel emplacement, quel que soit l’adhérence du paramètre.

Gérer les paramètres

Certains paramètres de configuration sont spécifiques à l’emplacement. Les listes suivantes décrivent en détail les paramètres qui évoluent quand vous effectuez un changement d’emplacement, et ceux qui restent identiques.

Paramètres spécifiques à l’emplacement :

  • Points de terminaison de publication
  • Noms de domaine personnalisés
  • Certificats non publics et paramètres TLS/SSL
  • Paramètres de mise à l’échelle
  • Restrictions d’adresse IP
  • Always On
  • Paramètres de diagnostic
  • Partage des ressources cross-origin (CORS)
  • Instances Private Endpoint

Paramètres non spécifiques à l’emplacement :

  • Paramètres généraux, par exemple versions du framework, 32/64 bits, sockets web
  • Paramètres d’application (peuvent être configurés pour respecter un emplacement)
  • Chaînes de connexion (peuvent être configurées pour respecter un emplacement)
  • Mappages de gestionnaires
  • Certificats publics
  • Connexions hybrides*
  • Intégration du réseau virtuel*
  • Points de terminaison de service*
  • Azure Content Delivery Network*

Par conception, les fonctionnalités marquées avec un astérisque (*) ne sont pas permutées.

Remarque

Certains paramètres d’application qui s’appliquent à des paramètres non échangés ne sont pas non plus échangés. Par exemple, étant donné que les paramètres de diagnostic ne sont pas échangés, les paramètres d’application associés comme WEBSITE_HTTPLOGGING_RETENTION_DAYS et DIAGNOSTICS_AZUREBLOBRETENTIONDAYS ne sont pas non plus échangés, même s’ils n’apparaissent pas comme des paramètres d’emplacement.

Créer un paramètre de déploiement

Vous pouvez marquer des paramètres comme paramètres de déploiement, ce qui a pour effet de les rendre rémanents. Un paramètre rémanent ne suit pas la permutation de l’instance d’application.

Si vous créez un paramètre de déploiement dans un emplacement, veillez à créer le même paramètre avec une valeur unique dans tout autre emplacement qui est impliqué dans une permutation. De cette façon, si la valeur d’un paramètre ne change pas, son nom reste cohérent dans les emplacements. Cette cohérence de nom garantit que votre code ne tente pas d’accéder à un paramètre défini dans un emplacement, mais pas dans un autre.

Pour créer un paramètre de déploiement, procédez comme suit :

  1. Dans l’application de fonction, accédez à Deployment slots (Emplacements de déploiement), puis sélectionnez le nom de l’emplacement.

    Recherchez des emplacements dans le portail Azure.

  2. Sélectionnez Configuration, puis le nom du paramètre que vous souhaitez utiliser avec l’emplacement actuel.

    Configurez le paramètre d’application d’un emplacement dans le portail Azure.

  3. Sélectionnez Deployment slot setting (Paramètre d’emplacement de déploiement), puis OK.

    Configurez le paramètre d’emplacement de déploiement.

  4. Lorsque la section du paramètre disparaît, sélectionnez Save (Enregistrer) pour conserver les modifications

    Enregistrez le paramètre d’emplacement de déploiement.

Déploiement

Les emplacements sont vides lorsque vous créez un emplacement. Pour déployer votre application dans un emplacement, vous pouvez utiliser toute technologie de déploiement prise en charge.

Mise à l'échelle

Tous les emplacements sont mis à l’échelle du nombre de rôles de travail dans l’emplacement de production.

  • Pour les plans Consommation, l’emplacement est mis à l’échelle à mesure que l’échelle de l’application de fonction évolue.
  • Pour les plans App Service, l’application s’adapte à un nombre fixe de rôles de travail. Les emplacements s’exécutent sur le même nombre de rôles de travail que le plan de l’application.

Afficher les emplacements

Vous pouvez afficher des informations sur des emplacements existants à l’aide d’Azure CLI ou par le Portail Azure.

Suivez ces étapes pour créer un emplacement dans le portail :

  1. Accédez à votre application de fonction.

  2. Sélectionnez des emplacements de déploiement et les emplacements existants s’affichent.

Ajouter un emplacement

Vous pouvez ajouter un emplacement à l’aide d’Azure CLI ou par le Portail Azure.

Suivez ces étapes pour créer un emplacement dans le portail :

  1. Accédez à votre application de fonction.

  2. Sélectionnez Deployment slots (Emplacements de déploiement), puis + Add Slot (+ Ajouter un emplacement).

    Ajout d’un emplacement de déploiement Azure Functions.

  3. Tapez le nom de l’emplacement, puis sélectionnez Add (Ajouter).

    Nommez l’emplacement de déploiement Azure Functions.

Accéder aux ressources de l’emplacement

Vous accédez aux ressources (déclencheurs HTTP et points de terminaison d’administrateur) dans un emplacement de préproduction de la même façon que l’emplacement de production. En lieu et place du nom d’hôte de l’application de fonction, vous utilisez toutefois le nom d’hôte spécifique à l’emplacement dans l’URL de la demande, ainsi que les clés spécifiques à l’emplacement. Étant donné que les emplacements de préproduction sont des applications actives, vous devez sécuriser vos fonctions dans un emplacement de préproduction comme vous le feriez dans un emplacement de production.

Permuter des emplacements

Vous pouvez échanger des emplacements hors production à l’aide d’Azure CLI ou par le Portail Azure.

Suivez ces étapes pour échanger un emplacement de préproduction en production :

  1. Accédez à l’application de fonction.

  2. Sélectionnez Deployment slots (Emplacements de déploiement), puis Swap (Échanger).

    Capture d’écran montrant la page « Emplacement de déploiement » avec l’action « Ajouter un emplacement » sélectionnée.

  3. Vérifiez les paramètres de configuration de votre échange, puis sélectionnez Swap (Échanger)

    Échangez l’emplacement de déploiement.

Cette opération d’échange peut prendre quelques secondes.

Restaurer un échange

Si une permutation provoque une erreur ou si vous souhaitez simplement « annuler » une permutation, vous pouvez restaurer l’état initial. Pour revenir à l’état avant permutation, effectuez un autre permutation pour inverser la précédente permutation.

Supprimer un emplacement

Vous pouvez supprimer un emplacement à l’aide d’Azure CLI ou par le Portail Azure.

Suivez ces étapes pour supprimer un emplacement de votre application dans le portail :

  1. Dans l’application de fonction, accédez à Deployment slots (Emplacements de déploiement), puis sélectionnez le nom de l’emplacement.

    Recherchez des emplacements dans le portail Azure.

  2. Sélectionnez Supprimer.

    Capture d’écran montrant la page « Vue d’ensemble » avec l’action « Supprimer » sélectionnée.

  3. Tapez le nom de l’emplacement de déploiement que vous souhaitez supprimer, puis sélectionnez Delete (Supprimer).

    Suppression de l’emplacement de déploiement dans le portail Azure.

  4. Fermez le volet confirmation.

    Confirmation de suppression de l’emplacement de déploiement.

Changer le plan App Service

Une application de fonction qui s’exécute dans le cadre d’un plan App Service vous permet de modifier le plan App service sous-jacent pour un emplacement.

Notes

Vous ne pouvez pas modifier le plan App Service d’un emplacement dans le cadre du plan Consommation.

Pour modifier le plan App service d’un emplacement, procédez comme suit :

  1. Dans l’application de fonction, accédez à Deployment slots (Emplacements de déploiement), puis sélectionnez le nom de l’emplacement.

    Recherchez des emplacements dans le portail Azure.

  2. Sous App Service plan (Plan App Service), sélectionnez Change App Service plan (Modifier le plan App Service).

  3. Sélectionnez le plan vers lequel vous souhaitez effectuer la mise à niveau ou créez un nouveau plan.

    Modification du plan App Service dans le portail Azure.

  4. Sélectionnez OK.

Considérations

Les emplacements de déploiement Azure Functions doivent tenir compte des éléments suivants :

  • Le nombre d’emplacements disponibles pour une application dépend du plan. Le plan Consommation ne peut disposer que d’un seul emplacement de déploiement. Davantage d’emplacements sont disponibles pour les applications fonctionnant sous d’autres plans. Pour plus d’informations, consultez Limites du service.
  • La permutation d’un emplacement a pour effet de réinitialiser les clés pour les applications dont le paramètre d’application AzureWebJobsSecretStorageType a la valeur files.
  • Lorsque les emplacements sont activés, votre application de fonction est définie en mode lecture seule dans le portail.
  • Les permutations d’emplacement peuvent échouer lorsque votre application de fonction utilise un compte de stockage sécurisé comme compte de stockage par défaut (défini dans AzureWebJobsStorage). Pour plus d’informations, consultez les informations de référence sur WEBSITE_OVERRIDE_STICKY_DIAGNOSTICS_SETTINGS.
  • Utilisez des noms d’application de fonction inférieurs à 32 caractères. Les noms de plus de 32 caractères sont susceptibles de provoquer des collisions d’ID d’hôte.

Étapes suivantes