Comparer les options d’hébergement Azure Functions

Effectué

Lorsque vous créez une Function App dans Azure, vous devez choisir un plan d’hébergement pour votre application. Azure vous fournit ces options d’hébergement pour votre code de fonction :

Option d’hébergement Service Disponibilité Support pour les conteneurs
Plan Consommation Azure Functions Disponibilité générale (GA) Aucun
Plan Consommation flexible Azure Functions Aperçu Aucun
Plan Premium Azure Functions GA Linux
Plan dédié Azure Functions GA Linux
Applications de conteneur Azure Container Apps GA Linux

L’infrastructure Azure App Service facilite l’hébergement d’Azure Functions sur des machines virtuelles Linux et Windows. L’option d’hébergement que vous choisissez détermine les comportements suivants :

  • La mise à l’échelle de votre Function App.
  • Les ressources disponibles pour chaque instance de Function App.
  • La prise en charge des fonctionnalités avancées, notamment la connectivité du réseau virtuel Azure.
  • Prise en charge des conteneurs Linux.

Le plan que vous choisissez a également un impact sur les coûts d’exécution de votre code de fonction.

Vue d’ensemble des plans

Voici un résumé des avantages des différentes options d’hébergement :

Plan Consommation

Le plan Consommation est le plan d’hébergement par défaut. Payez des ressources de calcul uniquement lorsque vos fonctions s’exécutent (paiement à l’utilisation) avec une mise à l’échelle automatique. Dans le plan de consommation, les instances de l’hôte Functions sont ajoutées et supprimées de façon dynamique en fonction du nombre d’événements entrants.

Plan Consommation flexible

Bénéficiez d’une scalabilité élevée des choix de calcul, de la mise en réseau virtuel et du paiement à l’utilisation. Dans le plan Consommation Flex, les instances de l’hôte Functions sont ajoutées et supprimées dynamiquement en fonction de la concurrence par instance configurée et du nombre d’évènements entrants.

Vous pouvez réduire les démarrages à froid en spécifiant le nombre d’instances préprovisionnées (toujours prêtes). Se met automatiquement à l’échelle en fonction de la demande.

Plan Premium

Mise à l’échelle automatique selon la demande à l’aide de Workers préchauffés qui exécutent des applications sans délai après leur inactivité, exécution sur des instances plus puissantes et connexion à des réseaux virtuels.

Envisagez le plan Premium d’Azure Functions dans les situations suivantes :

  • Vos applications de fonction s’exécutent en continu ou presque.
  • Vous souhaitez contrôler davantage vos instances et déployer plusieurs applications de fonction sur le même plan avec une mise à l’échelle pilotée par les événements.
  • Vous avez un nombre élevé de petites exécutions et une facture d’exécution élevée, mais un rapport Go par seconde faible dans le plan Consommation.
  • Vous avez besoin de plus d’options de mémoire ou de processeur que celles proposées dans les plans Consommation.
  • Votre code exige une durée d’exécution supérieure à celle qui est autorisée dans le plan Consommation.
  • Vous avez besoin d’une connectivité de réseau virtuel.
  • Vous souhaitez fournir une image Linux personnalisée dans laquelle exécuter vos fonctions.

Plan dédié

Exécutez vos fonctions au sein d’un plan App Service aux tarifs habituels du plan App Service. Idéal pour les scénarios de longue durée où l’extension Durable Functions ne peut pas être utilisée.

Envisagez un plan App Service dans les situations suivantes :

  • Vous devez disposer d’une facturation entièrement prévisible ou mettre à l’échelle manuellement des instances.
  • Vous souhaitez exécuter plusieurs applications web et applications de fonction sur le même plan.
  • Vous avez besoin d’accéder à des tailles de calcul plus importantes.
  • Isolation de calcul complète et accès réseau sécurisé fournis par une instance App Service Environment (ASE).
  • Utilisation de la mémoire importante et mise à l’échelle élevée (ASE).

Applications de conteneur

Créez et déployez des applications de fonction conteneurisées dans un environnement entièrement managé hébergé par Azure Container Apps.

Utilisez le modèle de programmation Azure Functions pour créer des applications de fonction natives cloud, basées sur les évènements et serverless. Exécutez vos fonctions en même temps que d’autres microservices, API, sites web et flux de travail en tant que programmes hébergés par des conteneurs.

Envisagez d’héberger vos fonctions sur Container Apps dans les situations suivantes :

  • Vous souhaitez empaqueter des bibliothèques personnalisées avec votre code de fonction pour prendre en charge des applications métier.
  • Vous devez migrer l’exécution du code à partir d’applications locales ou héritées vers des microservices natifs cloud s’exécutant dans des conteneurs.
  • Vous souhaitez éviter la surcharge et la complexité de la gestion des clusters Kubernetes et du calcul dédié.
  • Vous avez besoin de la puissance de traitement haut de gamme fournie par les ressources de calcul processeur dédiées pour vos fonctions.

Durée du délai d’expiration du conteneur de fonctions

La propriété functionTimeout dans le fichier projet host.json spécifie la durée du délai d’expiration des fonctions dans une application de fonction. Cette propriété s’applique spécifiquement aux exécutions de fonction. Une fois que le déclencheur démarre l’exécution d’une fonction, la fonction doit retourner/répondre dans la durée du délai d’expiration.

Le tableau suivant indique les valeurs par défaut et maximales (en minutes) pour des plans spécifiques :

Plan Default Maximum1
Plan de consommation 5 10
Plan Consommation flexible 30 Illimité3
Plan Premium 302 Illimité3
Plan dédié 302 Illimité3
Applications de conteneur 305 Illimité3
  1. Quel que soit le paramètre de délai d’expiration du conteneur de fonctions, 230 secondes est le temps maximum que peut prendre une fonction déclenchée via HTTP pour répondre à une demande.
  2. Le délai d’expiration par défaut pour la version 1.x du runtime Functions est illimité.
  3. Garanti pour une durée maximale de 60 minutes. La mise à jour corrective du système d’exploitation et du runtime, la mise à jour corrective des vulnérabilités et les comportements de scale-in peuvent toujours annuler les exécutions de fonctions.
  4. Dans un plan Consommation Flex, l’hôte n’applique pas de limite de temps d’exécution. Toutefois, il n’existe actuellement aucune garantie, car la plateforme peut avoir besoin de mettre fin à vos instances pendant la mise à l’échelle, les déploiements ou l’application de mises à jour.
  5. Lorsque le nombre minimal de réplicas est défini sur zéro, le délai d’expiration par défaut dépend des déclencheurs spécifiques utilisés dans l’application.