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. Les applications de fonction qui s’exécutent dans le cadre du plan App Service peuvent avoir plusieurs emplacements tandis que, dans le cadre du plan Consommation, un seul emplacement est autorisé.

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 résulte du fait que les déclencheurs de fonction suivants sont routés vers l’emplacement permuté.
  • Actuellement, les fonctions en cours d’exécution sont arrêtées pendant la permutation. Consultez Améliorer les performances et la fiabilité d’Azure Functions pour apprendre à écrire des fonctions sans état et des fonctions défensives.

Pourquoi utiliser des emplacements ?

L’utilisation d’emplacements de déploiement présente un certain nombre d’avantages. Les scénarios suivants décrivent des utilisations courantes des emplacements :

  • 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. Il s’agit du moyen recommandé de mettre à niveau entre les versions du runtime Functions tout en conservant la disponibilité la plus élevée. Pour en savoir plus, consultez la Mise à niveau minimale des temps d’arrêt.

Permuter des opérations

Pendant une permutation, un emplacement est considéré source et l’autre comme 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 déjà initialisé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 relatifs aux sources d’événements et aux liaisons doivent être configurés en tant que paramètres d’emplacement de déploiementavant de commencer un échange. 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.

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*

Il est prévu que les fonctionnalités marquées d’un astérisque (*) ne soient plus échangées.

Notes

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 en tant que 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.

Ajouter un emplacement

Vous pouvez ajouter un emplacement via l’interface de ligne de commande ou le portail. Les étapes suivantes montrent comment créer un emplacement sur 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.

Permuter des emplacements

Vous pouvez permuter des emplacements via l’interface de ligne de commande ou le portail. Les étapes suivantes expliquent comment permuter des emplacements dans le portail :

  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.

L’exécution de l’opération peut prendre un certain temps.

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 permutation précédente.

Supprimer un emplacement

Vous pouvez supprimer un emplacement via l’interface de ligne de commande ou le portail. Les étapes suivantes montrent comment supprimer un emplacement sur 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 de la suppression.

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

Automatiser la gestion des emplacements

Azure CLI vous permet d’automatiser les actions suivantes pour un emplacement :

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. Des emplacements supplémentaires 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.
  • 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