Échelle et hébergement dans Azure FunctionsAzure Functions scale and hosting

Lorsque vous créez une Function App dans Azure, vous devez choisir un plan d’hébergement pour votre application.When you create a function app in Azure, you must choose a hosting plan for your app. Trois plans d’hébergement De base sont disponibles pour Azure Functions : plan Consommation, plan Premium et plan dédié (App Service).There are three basic hosting plans available for Azure Functions: Consumption plan, Premium plan, and Dedicated (App Service) plan. Tous les plans d’hébergement sont en disponibilité générale sur les machines virtuelles Linux et Windows.All hosting plans are generally available (GA) on both Linux and Windows virtual machines.

Le plan d’hébergement que vous choisissez détermine les comportements suivants :The hosting plan you choose dictates the following behaviors:

  • La mise à l’échelle de votre Function App.How your function app is scaled.
  • Les ressources disponibles pour chaque instance de Function App.The resources available to each function app instance.
  • La prise en charge des fonctionnalités avancées, notamment la connectivité du réseau virtuel Azure.Support for advanced features, such as Azure Virtual Network connectivity.

Les plans Consommation et Premium ajoutent automatiquement de la puissance de calcul lors de l’exécution de votre code.Both Consumption and Premium plans automatically add compute power when your code is running. Le cas échéant, votre application bénéficie d’un scale-out afin de gérer la charge et d’un scale-in lorsque le code n’est plus en cours d’exécution.Your app is scaled out when needed to handle load, and scaled in when code stops running. En outre, avec le plan Consommation, vous n’avez pas à payer pour des machines virtuelles inactives ni à réserver de la capacité à l’avance.For the Consumption plan, you also don't have to pay for idle VMs or reserve capacity in advance.

Le plan Premium fournit des fonctionnalités supplémentaires, telles que des instances de calcul premium, la possibilité de conserver les instances chaudes indéfiniment et la connectivité de réseau virtuel.Premium plan provides additional features, such as premium compute instances, the ability to keep instances warm indefinitely, and VNet connectivity.

Le plan App Service vous permet d’exploiter l’infrastructure dédiée que vous gérez.App Service plan allows you to take advantage of dedicated infrastructure, which you manage. La mise à l’échelle de votre application de fonction ne dépend pas des événements, un scale-in jusqu’à zéro est donc impossible.Your function app doesn't scale based on events, which means is never scales in to zero. (Always On doit être activé.)(Requires that Always on is enabled.)

Pour une comparaison détaillée des différents plans d’hébergement (notamment l’hébergement basé sur Kubernetes), consultez la section Comparaison des plans d’hébergement.For a detailed comparison between the various hosting plans (including Kubernetes-based hosting), see the Hosting plans comparison section.

Plan de consommationConsumption plan

Quand vous utilisez le plan Consommation, les instances de l’hôte Azure Functions sont ajoutées et supprimées de façon dynamique en fonction du nombre d’événements entrants.When you're using the Consumption plan, instances of the Azure Functions host are dynamically added and removed based on the number of incoming events. Ce plan serverless est mis à l’échelle automatiquement, et vous êtes facturé pour les ressources de calcul uniquement lorsque vos fonctions sont exécutées.This serverless plan scales automatically, and you're charged for compute resources only when your functions are running. Dans un plan Consommation, le délai d’attente de l’exécution d’une fonction arrive à expiration après une période configurable.On a Consumption plan, a function execution times out after a configurable period of time.

La facturation est basée sur le nombre d’exécutions, la durée d’exécution et la mémoire utilisée.Billing is based on number of executions, execution time, and memory used. La facturation est unifiée pour toutes les fonctions d’une même application de fonction.Billing is aggregated across all functions within a function app. Pour plus d’informations, consultez la page Tarification d’Azure Functions.For more information, see the Azure Functions pricing page.

Le plan d’hébergement par défaut (le plan Consommation) présente les avantages suivants :The Consumption plan is the default hosting plan and offers the following benefits:

  • Paiement uniquement à l’exécution de vos fonctionsPay only when your functions are running
  • Effectuer un scale-out automatique même pendant les périodes de charge élevéeScale out automatically, even during periods of high load

Les Function App d’une même région peuvent être affectées au même plan Consommation.Function apps in the same region can be assigned to the same Consumption plan. Avoir plusieurs applications qui s’exécutent dans le même plan Consommation n’entraîne aucun inconvénient ou impact.There's no downside or impact to having multiple apps running in the same Consumption plan. L’attribution de plusieurs applications au même plan Consommation n’affecte pas la résilience, la scalabilité ni la fiabilité de chaque application.Assigning multiple apps to the same Consumption plan has no impact on resilience, scalability, or reliability of each app.

Pour en savoir plus sur la façon d’estimer les coûts pour une exécution dans le cadre d’un plan Consommation, consultez Compréhension des coûts d’un plan Consommation.To learn more about how to estimate costs when running in a Consumption plan, see Understanding Consumption plan costs.

Plan PremiumPremium plan

Quand vous utilisez le plan Premium, les instances de l’hôte Azure Functions sont ajoutées et supprimées en fonction du nombre d’événements entrants, comme avec le plan Consommation.When you're using the Premium plan, instances of the Azure Functions host are added and removed based on the number of incoming events just like the Consumption plan. Le plan Premium prend en charge les fonctionnalités suivantes :Premium plan supports the following features:

  • Les instances perpétuellement chaudes permettent d’éviter les démarrages à froidPerpetually warm instances to avoid any cold start
  • Connectivité des réseaux virtuelsVNet connectivity
  • Durée d’exécution illimitée (60 minutes garanties)Unlimited execution duration (60 minutes guaranteed)
  • Tailles d’instance premium (instances à un, deux et quatre cœurs)Premium instance sizes (one core, two core, and four core instances)
  • Tarification plus prévisibleMore predictable pricing
  • Allocation d’application à haute densité pour les plans avec plusieurs Function AppHigh-density app allocation for plans with multiple function apps

Pour en savoir plus sur la création d’une application de fonction dans un plan Premium, consultez le Plan Premium Azure Functions.To learn how you can create a function app in a Premium plan, see Azure Functions Premium plan.

Au lieu d’une facturation en fonction des exécutions et de la mémoire consommée, la facturation du plan Premium se base sur le nombre de cœurs-seconde et la mémoire utilisée sur les instances nécessaires et préparées.Instead of billing per execution and memory consumed, billing for the Premium plan is based on the number of core seconds and memory used across needed and pre-warmed instances. Au moins une instance doit être chaude en permanence par plan.At least one instance must be warm at all times per plan. Cela signifie qu’il existe un coût mensuel minimum par plan actif, quel que soit le nombre d’exécutions.This means that there's a minimum monthly cost per active plan, regardless of the number of executions. Gardez à l’esprit que toutes les applications de fonction d’un plan Premium partagent des instances actives et préparées.Keep in mind that all function apps in a Premium plan share pre-warmed and active instances.

Envisagez le plan Premium d’Azure Functions dans les situations suivantes :Consider the Azure Functions Premium plan in the following situations:

  • Vos applications de fonction s’exécutent en continu ou presque.Your function apps run continuously, or nearly continuously.
  • Vous disposez d’un grand nombre d’exécutions de petite taille et avez une facture d’exécution élevée, mais également une facture de Go par seconde faible dans le plan Consommation.You have a high number of small executions and have a high execution bill but low GB second bill in the Consumption plan.
  • Vous avez besoin de plus d’options de mémoire ou de processeur que celles qui sont proposées dans le plan Consommation.You need more CPU or memory options than what is provided by the Consumption plan.
  • Votre code exige une durée d’exécution supérieure à celle qui est autorisée dans le plan Consommation.Your code needs to run longer than the maximum execution time allowed on the Consumption plan.
  • Vous avez besoin de fonctionnalités qui sont uniquement disponibles dans un plan Premium, notamment la connectivité de réseau virtuel.You require features that are only available on a Premium plan, such as virtual network connectivity.

Plan (App Service) dédiéDedicated (App Service) plan

Vos Function App sont exécutées sur les mêmes machines virtuelles dédiées que d’autres applications App Service (références De base, Standard, Premium et Isolé).Your function apps can also run on the same dedicated VMs as other App Service apps (Basic, Standard, Premium, and Isolated SKUs).

Envisagez un plan App Service dans les situations suivantes :Consider an App Service plan in the following situations:

  • Vous disposez de machines virtuelles existantes, sous-utilisées qui exécutent déjà d’autres instances App Service.You have existing, underutilized VMs that are already running other App Service instances.
  • Vous souhaitez fournir une image personnalisée sur laquelle vos fonctions s’exécuteront.You want to provide a custom image on which to run your functions.

Le coût des Function App dans un plan App Service est le même que pour d’autres ressources App Service, par exemple les applications web.You pay the same for function apps in an App Service Plan as you would for other App Service resources, like web apps. Pour plus d’informations sur le fonctionnement du plan App Service, consultez l’article Présentation détaillée des plans d’Azure App Service.For details about how the App Service plan works, see the Azure App Service plans in-depth overview.

Avec un plan App Service, vous pouvez effectuer un scale-out manuel en ajoutant des instances de machine virtuelle supplémentaires.With an App Service plan, you can manually scale out by adding more VM instances. Vous pouvez également activer la mise à l’échelle automatique.You can also enable autoscale. Pour plus d’informations, consultez Mettre à l’échelle le nombre d’instances manuellement ou automatiquement.For more information, see Scale instance count manually or automatically. Vous pouvez également effectuer une montée en puissance en choisissant un autre plan App Service.You can also scale up by choosing a different App Service plan. Pour plus d’informations, consultez Faire monter en puissance une application web dans Azure.For more information, see Scale up an app in Azure.

Lorsque vous exécutez des fonctions JavaScript dans un plan App Service, vous devez choisir un plan qui comporte moins de processeurs virtuels.When running JavaScript functions on an App Service plan, you should choose a plan that has fewer vCPUs. Pour plus d’informations, consultez Choisir des plans App Service à cœur unique.For more information, see Choose single-core App Service plans.

L’exécution dans un App Service Environment vous permet d’isoler entièrement vos fonctions et de tirer parti de la grande échelle.Running in an App Service Environment (ASE) lets you fully isolate your functions and take advantage of high scale.

Always OnAlways On

Si vous utilisez un plan App Service, vous devez activer le paramètre Always On afin que l’application de fonction s’exécute correctement.If you run on an App Service plan, you should enable the Always on setting so that your function app runs correctly. Dans un plan App Service, comme le runtime des fonctions devient inactif après quelques minutes d’inactivité, seuls des déclencheurs HTTP peuvent « relancer » vos fonctions.On an App Service plan, the functions runtime goes idle after a few minutes of inactivity, so only HTTP triggers will "wake up" your functions. Le paramètre Always On est disponible uniquement dans un plan App Service.Always on is available only on an App Service plan. Dans un plan Consommation, la plateforme active automatiquement les applications de fonction.On a Consumption plan, the platform activates function apps automatically.

Durée du délai d’expiration du conteneur de fonctionsFunction app timeout duration

La durée d’expiration d’une application de fonction est définie par la propriété functionTimeout dans le fichier projet host.json.The timeout duration of a function app is defined by the functionTimeout property in the host.json project file. Le tableau suivant présente les valeurs par défaut et les valeurs maximales en minutes pour les deux plans et dans les différentes versions du runtime :The following table shows the default and maximum values in minutes for both plans and the different runtime versions:

PlanPlan Version du runtimeRuntime Version DefaultDefault MaximaleMaximum
ConsommationConsumption 1.x1.x 55 1010
ConsommationConsumption 2.x2.x 55 1010
ConsommationConsumption 3.x3.x 55 1010
PremiumPremium 1.x1.x 3030 IllimitéUnlimited
PremiumPremium 2.x2.x 3030 IllimitéUnlimited
PremiumPremium 3.x3.x 3030 IllimitéUnlimited
App ServiceApp Service 1.x1.x IllimitéUnlimited IllimitéUnlimited
App ServiceApp Service 2.x2.x 3030 IllimitéUnlimited
App ServiceApp Service 3.x3.x 3030 IllimitéUnlimited

Notes

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.Regardless of the function app timeout setting, 230 seconds is the maximum amount of time that an HTTP triggered function can take to respond to a request. Cela est dû au délai d’inactivité par défaut d’Azure Load Balancer.This is because of the default idle timeout of Azure Load Balancer. Pour des temps de traitement plus longs, pensez à utiliser un modèle asynchrone Durable Functions ou différez le travail actuel et renvoyez une réponse immédiate.For longer processing times, consider using the Durable Functions async pattern or defer the actual work and return an immediate response.

Même lorsque le paramètre Always On est activé, le délai d’exécution des fonctions individuelles est contrôlé par le paramètre functionTimeout dans le fichier projet host.json.Even with Always On enabled, the execution timeout for individual functions is controlled by the functionTimeout setting in the host.json project file.

Déterminer le plan d’hébergement d’une application existanteDetermine the hosting plan of an existing application

Pour identifier le plan d’hébergement utilisé par votre application de fonction, consultez la section Plan App Service dans l’onglet Vue d’ensemble correspondant à l’application de fonction dans le portail Azure.To determine the hosting plan used by your function app, see App Service plan in the Overview tab for the function app in the Azure portal. Pour afficher le niveau tarifaire, sélectionnez le nom Plan App Service, puis sélectionnez Propriétés dans le volet de gauche.To see the pricing tier, select the name of the App Service Plan, and then select Properties from the left pane.

Afficher le plan de mise à l’échelle dans le portail

Vous pouvez également utiliser l’interface de ligne de commande Azure pour identifier le plan utilisé tel que suit :You can also use the Azure CLI to determine the plan, as follows:

appServicePlanId=$(az functionapp show --name <my_function_app_name> --resource-group <my_resource_group> --query appServicePlanId --output tsv)
az appservice plan list --query "[?id=='$appServicePlanId'].sku.tier" --output tsv

Lorsque la sortie de cette commande est dynamic, votre application de fonction utilise le plan Consommation.When the output from this command is dynamic, your function app is in the Consumption plan. Lorsque la sortie de cette commande est ElasticPremium, votre Function App utilise le plan Premium.When the output from this command is ElasticPremium, your function app is in the Premium plan. Les autres valeurs représentent un plan App Service avec des niveaux différents.All other values indicate different tiers of an App Service plan.

Conditions requises pour le compte de stockageStorage account requirements

Dans n’importe quel plan, une Function App nécessite un compte de stockage Azure général prenant en charge les stockages Blob, File d’attente, Fichiers et Table Azure.On any plan, a function app requires a general Azure Storage account, which supports Azure Blob, Queue, Files, and Table storage. Cela s’explique par le fait qu’Azure Functions utilise le stockage Azure pour des opérations, telles que la gestion des déclencheurs et la journalisation des exécutions de fonctions. Certains comptes de stockage ne prennent toutefois pas en charge les files d’attente et les tables.This is because Azure Functions relies on Azure Storage for operations such as managing triggers and logging function executions, but some storage accounts don't support queues and tables. Ces comptes, qui incluent les comptes de stockage Blob uniquement (notamment le stockage Premium) et les comptes de stockage à usage général avec la réplication de stockage redondant interzone (ZRS), ne sont pas inclus dans la liste de comptes de stockage existants que vous pouvez sélectionner lorsque vous créez une application de fonction.These accounts, which include blob-only storage accounts (including premium storage) and general-purpose storage accounts with zone-redundant storage replication, are filtered-out from your existing Storage Account selections when you create a function app.

Le même compte de stockage que celui utilisé par votre application de fonction peut également être utilisé par vos déclencheurs et liaisons pour stocker vos données d’application.The same storage account used by your function app can also be used by your triggers and bindings to store your application data. Toutefois, pour les opérations gourmandes en stockage, il est préférable d’utiliser un compte de stockage distinct.However, for storage-intensive operations, you should use a separate storage account.

Plusieurs applications de fonction peuvent partager le même compte de stockage sans aucun problème.It's possible for multiple function apps to share the same storage account without any issues. (Cela peut notamment être le cas lorsque vous développez plusieurs applications dans votre environnement local à l'aide de l'Émulateur de stockage Azure, qui agit comme un compte de stockage unique.)(A good example of this is when you develop multiple apps in your local environment using the Azure Storage Emulator, which acts like one storage account.)

Pour en savoir plus sur les types de compte de stockage, consultez Présentation des services Stockage Azure.To learn more about storage account types, see Introducing the Azure Storage services.

Fonctionnement des plans Consommation et PremiumHow the Consumption and Premium plans work

Dans les plans Consommation et Premium, l’infrastructure d’Azure Functions met à l’échelle les ressources processeur et mémoire en ajoutant des instances de l’hôte Functions selon le nombre d’événements sur lesquels ses fonctions sont déclenchées.In the Consumption and Premium plans, the Azure Functions infrastructure scales CPU and memory resources by adding additional instances of the Functions host, based on the number of events that its functions are triggered on. Chaque instance de l’hôte Functions dans le plan Consommation est limitée à 1,5 Go de mémoire et un seul processeur.Each instance of the Functions host in the Consumption plan is limited to 1.5 GB of memory and one CPU. Une instance de l’hôte constitue l’intégralité de la Function App, ce qui signifie que toutes les fonctions dans une Function App partagent des ressources au sein d’une instance et sont mises à l’échelle simultanément.An instance of the host is the entire function app, meaning all functions within a function app share resource within an instance and scale at the same time. Les applications de fonction qui partagent le même plan Consommation sont mises à l’échelle indépendamment.Function apps that share the same Consumption plan are scaled independently. Dans le plan Premium, la taille de votre plan détermine la mémoire et le processeur disponibles pour toutes les applications de ce plan, sur cette instance.In the Premium plan, your plan size will determine the available memory and CPU for all apps in that plan on that instance.

Les fichiers de code de fonction sont stockés dans des partages Azure Files du compte de stockage principal de la fonction.Function code files are stored on Azure Files shares on the function's main storage account. Lorsque vous supprimez le compte de stockage principal de l’application de fonction, les fichiers de code de fonction sont supprimés et ne peuvent pas être récupérés.When you delete the main storage account of the function app, the function code files are deleted and cannot be recovered.

Mise à l’échelle du runtimeRuntime scaling

Azure Functions utilise un composant appelé contrôleur de mise à l’échelle pour surveiller la fréquence des événements et déterminer s’il convient d’effectuer un scale-out ou un scale-in.Azure Functions uses a component called the scale controller to monitor the rate of events and determine whether to scale out or scale in. Le contrôleur de mise à l’échelle utilise une méthode heuristique pour chaque type de déclencheur.The scale controller uses heuristics for each trigger type. Par exemple, si vous utilisez un déclencheur de stockage File d’attente Azure, il est mis à l’échelle en fonction de la longueur de la file d’attente et de l’âge du plus ancien message en file d’attente.For example, when you're using an Azure Queue storage trigger, it scales based on the queue length and the age of the oldest queue message.

L’unité d’échelle pour Azure Functions est la Function App.The unit of scale for Azure Functions is the function app. Quand les instances de l’application de fonction font l’objet d’une augmentation de taille, des ressources supplémentaires sont allouées pour exécuter plusieurs instances de l’hôte Azure Functions.When the function app is scaled out, additional resources are allocated to run multiple instances of the Azure Functions host. À l’inverse, quand la demande de calcul est réduite, le contrôleur de mise à l’échelle supprime des instances de l’hôte de fonction.Conversely, as compute demand is reduced, the scale controller removes function host instances. Le nombre d’instances est finalement réduit à zéro si aucune fonction n’est exécutée dans une application de fonction.The number of instances is eventually scaled in to zero when no functions are running within a function app.

Contrôleur de mise à l’échelle surveillant les événements et créant des instances

Démarrage à froidCold Start

Une fois que votre application de fonction a été inactive pendant quelques minutes, la plateforme peut effectuer un scale-down à zéro du nombre d’instances sur lesquelles votre application s’exécute.After your function app has been idle for a number of minutes, the platform may scale the number of instances on which your app runs down to zero. La prochaine requête présente la latence supplémentaire de la mise à l’échelle de zéro à un.The next request has the added latency of scaling from zero to one. Cette latence est appelée démarrage à froid.This latency is referred to as a cold start. Le nombre de dépendances que votre application de fonction doit charger peut avoir un impact sur le temps de démarrage à froid.The number of dependencies that must be loaded by your function app can impact the cold start time. Le démarrage à froid est plus problématique pour les opérations synchrones, telles que les déclencheurs HTTP, qui doivent retourner une réponse.Cold start is more of an issue for synchronous operations, such as HTTP triggers that must return a response. Si les démarrages à froid ont un impact sur vos fonctions, envisagez l’exécution dans un plan Premium ou dans un plan dédié avec activation de l’option Always-on.If cold starts are impacting your functions, consider running in a Premium plan or in a Dedicated plan with Always on enabled.

Présentation des comportements de mise à l’échelleUnderstanding scaling behaviors

La mise à l’échelle peut varier en fonction de certains facteurs et selon le déclencheur et le langage sélectionnés.Scaling can vary on a number of factors, and scale differently based on the trigger and language selected. Il est nécessaire de connaître certaines subtilités relatives aux comportements de mise à l’échelle :There are a few intricacies of scaling behaviors to be aware of:

  • Une application de fonction peut faire l’objet d’un scale-out jusqu’à 200 instances au maximum.A single function app only scales out to a maximum of 200 instances. Une seule instance, par contre, peut traiter plusieurs messages ou requêtes à la fois, ainsi il n’y a pas de limite définie sur le nombre d’exécutions simultanées.A single instance may process more than one message or request at a time though, so there isn't a set limit on number of concurrent executions.
  • Pour les déclencheurs HTTP, de nouvelles instances sont allouées, au plus, une fois par seconde.For HTTP triggers, new instances are allocated, at most, once per second.
  • Pour les déclencheurs non HTTP, de nouvelles instances sont allouées, au plus, une fois toutes les 30 secondes.For non-HTTP triggers, new instances are allocated, at most, once every 30 seconds. La mise à l’échelle est plus rapide lors de l’exécution dans plan Premium.Scaling is faster when running in a Premium plan.
  • Pour les déclencheurs Service Bus, utilisez des Droits de gestion sur les ressources pour une mise à l’échelle d’une efficacité optimale.For Service Bus triggers, use Manage rights on resources for the most efficient scaling. Avec des Droits d’écoute, la mise à l’échelle n’est pas aussi précise parce que la longueur de la file d’attente ne peut pas être utilisée pour informer des décisions de mise à l’échelle.With Listen rights, scaling isn't as accurate because the queue length can't be used to inform scaling decisions. Pour en savoir plus sur la définition de droits dans les stratégies d’accès Service Bus, consultez Stratégie d’autorisation d’accès partagé.To learn more about setting rights in Service Bus access policies, see Shared Access Authorization Policy.
  • Pour les déclencheurs Event Hub, consultez les conseils de mise à l’échelle dans l’article de référence.For Event Hub triggers, see the scaling guidance in the reference article.

Bonnes pratiques et modèles pour les applications scalablesBest practices and patterns for scalable apps

Nombreux sont les aspects d’une application de fonction qui impactent sa bonne mise à l’échelle, notamment la configuration de l’hôte, l’encombrement du runtime et l’efficacité des ressources.There are many aspects of a function app that will impact how well it will scale, including host configuration, runtime footprint, and resource efficiency. Pour plus d’informations, consultez la section sur l’extensibilité dans l’article Considérations relatives aux performances.For more information, see the scalability section of the performance considerations article. Vous devez également savoir ce qu’il se passe au niveau des connexions lors de la mise à l’échelle de votre application de fonction.You should also be aware of how connections behave as your function app scales. Pour plus d’informations, consultez How to manage connections in Azure Functions (Comment gérer des connexions dans Azure Functions).For more information, see How to manage connections in Azure Functions.

Pour plus d’informations sur la mise à l’échelle en Python et Node.js, consultez le Guide des développeurs Python sur Azure Functions - Mise à l’échelle et concurrence et le Guide des développeurs Node.js sur Azure Functions - Mise à l’échelle et concurrence.For more information on scaling in Python and Node.js, see Azure Functions Python developer guide - Scaling and concurrency and Azure Functions Node.js developer guide - Scaling and concurrency.

Modèle de facturationBilling model

La facturation des différents plans est décrite en détail dans la page Tarification d’Azure Functions.Billing for the different plans is described in detail on the Azure Functions pricing page. L’utilisation est agrégée au niveau de l’application de fonction et compte uniquement la durée d’exécution du code de fonction.Usage is aggregated at the function app level and counts only the time that function code is executed. Les unités de facturation sont les suivantes :The following are units for billing:

  • Consommation des ressources en gigaoctet/seconde (Go/s) .Resource consumption in gigabyte-seconds (GB-s). Calcul effectué d’après une combinaison de la taille de la mémoire et de la durée d’exécution pour toutes les fonctions d’une application de fonction.Computed as a combination of memory size and execution time for all functions within a function app.
  • Exécutions.Executions. Comptées chaque fois qu’une fonction est exécutée en réponse à un déclencheur d’événements.Counted each time a function is executed in response to an event trigger.

Vous trouverez des requêtes et des informations utiles pour vous aider à comprendre votre facture de consommation dans la FAQ sur la facturation.Useful queries and information on how to understand your consumption bill can be found on the billing FAQ.

Comparaison des plans d’hébergementHosting plans comparison

Le tableau de comparaison suivant présente tous les aspects importants pour aider à déterminer le choix du plan d’hébergement de l’application Azure Functions :The following comparison table shows all important aspects to help the decision of Azure Functions App hosting plan choice:

Résumé du planPlan summary

Plan de consommationConsumption plan Mettez à l’échelle automatiquement et ne payez les ressources de calcul que lorsque vos fonctions sont en cours d’exécution.Scale automatically and only pay for compute resources when your functions are running. 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.On the Consumption plan, instances of the Functions host are dynamically added and removed based on the number of incoming events.
✔ Plan d’hébergement par défaut.✔ Default hosting plan.
✔ Paiement uniquement en cas d’exécution de vos fonctions.✔ Pay only when your functions are running.
✔ Scale-out automatique, même pendant les périodes de charge élevée.✔ scale-out automatically, even during periods of high load.
Plan PremiumPremium plan Alors que la mise à l’échelle automatique dépend de la demande, utilisez des rôles de travail préparés pour exécuter des applications sans délai après leur inactivité, procédez à l’exécution sur des instances plus puissantes et connectez-vous à des réseaux virtuels.While automatically scaling based on demand, use pre-warmed workers to run applications with no delay after being idle, run on more powerful instances, and connect to VNETs. Envisagez le plan Azure Functions Premium dans les cas suivants, en plus de toutes les fonctionnalités du plan App Service :Consider the Azure Functions Premium plan in the following situations, in addition to all features of the App Service plan:
✔Vos applications de fonction s’exécutent en continu ou presque.✔ Your function apps run continuously, or nearly continuously.
✔ Vous disposez d’un grand nombre d’exécutions de petite taille et avez une facture d’exécution élevée, mais également une facture de Go par seconde faible dans le plan de consommation.✔ You have a high number of small executions and have a high execution bill but low GB second bill in the Consumption plan.
✔Vous avez besoin de plus d’options de mémoire ou de processeur que celles qui sont proposées dans le plan de consommation.✔ You need more CPU or memory options than what is provided by the Consumption plan.
✔Votre code exige une durée d’exécution supérieure à celle qui est autorisée dans le plan de consommation.✔ Your code needs to run longer than the maximum execution time allowed on the Consumption plan.
✔ Vous avez besoin de fonctionnalités qui sont uniquement disponibles dans un plan Premium, notamment la connectivité de réseau virtuel.✔ You require features that are only available on a Premium plan, such as virtual network connectivity.
Plan dédié 1Dedicated plan1 Exécutez vos fonctions au sein d’un plan App Service aux tarifs habituels du plan App Service.Run your functions within an App Service plan at regular App Service plan rates. Adapté aux opérations de longue durée et en cas de nécessité de coûts et d’une mise à l’échelle plus prédictifs.Good fit for long running operations, as well as when more predictive scaling and costs are required. Envisagez un plan App Service dans les situations suivantes :Consider an App Service plan in the following situations:
✔ Vous disposez de machines virtuelles existantes sous-utilisées qui exécutent déjà d’autres instances App Service.✔ You have existing, underutilized VMs that are already running other App Service instances.
✔ Vous souhaitez fournir une image personnalisée sur laquelle exécuter vos fonctions.✔ You want to provide a custom image on which to run your functions.
ASE 1ASE1 App Service Environment(ASE) est une fonctionnalité d’App Service qui fournit un environnement totalement isolé et dédié pour l’exécution sécurisée de vos applications App Service à grande échelle.App Service Environment (ASE) is an App Service feature that provides a fully isolated and dedicated environment for securely running App Service apps at high scale. Les environnements ASE conviennent aux charges de travail d’application qui nécessitent :ASEs are appropriate for application workloads that require:
✔ Une très grande échelle.✔ Very high scale.
✔ Une isolation et un accès réseau sécurisé.✔ Isolation and secure network access.
✔ Une utilisation élevée de la mémoire.✔ High memory utilization.
KubernetesKubernetes Kubernetes offre un environnement totalement isolé et dédié qui s’exécute sur la plateforme Kubernetes.Kubernetes provides a fully isolated and dedicated environment running on top of the Kubernetes platform. Kubernetes convient aux charges de travail d’application qui nécessitent :Kubernetes is appropriate for application workloads that require:
✔ Des exigences matérielles personnalisées.✔ Custom hardware requirements.
✔ Une isolation et un accès réseau sécurisé.✔ Isolation and secure network access.
✔ Une possibilité d’exécution dans un environnement hybride ou multi-cloud.✔ Ability to run in hybrid or multi-cloud environment.
✔ Une exécution en parallèle de services et d’applications Kubernetes existants.✔ Run alongside existing Kubernetes applications and services.

1 Pour connaître les limites spécifiques des différentes options du plan App Service, consultez les limites du plan App Service.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Système d'exploitation/runtimeOperating system/runtime

Linux1Linux1
Code uniquementCode-only
Windows2Windows2
Code uniquementCode-only
Linux1,3Linux1,3
Conteneur DockerDocker container
Plan de consommationConsumption plan .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
Aucune prise en chargeNo support
Plan PremiumPremium plan .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython
Plan dédié 4Dedicated plan4 .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython
ASE 4ASE4 .NET Core.NET Core
Node.jsNode.js
JavaJava
PythonPython
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
.NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython
KubernetesKubernetes n/an/a n/an/a .NET Core.NET Core
Node.jsNode.js
JavaJava
PowerShell CorePowerShell Core
PythonPython

1Linux est le seul système d'exploitation pris en charge pour votre pile d'exécution Python.1Linux is the only supported operating system for the Python runtime stack.
2Windows est le seul système d'exploitation pris en charge pour votre pile d'exécution PowerShell.2Windows is the only supported operating system for the PowerShell runtime stack.
3Linux est le seul système d’exploitation pris en charge pour les conteneurs Docker.3Linux is the only supported operating system for Docker containers. 4 Pour connaître les limites spécifiques des différentes options du plan App Service, consultez les limites du plan App Service.4 For specific limits for the various App Service plan options, see the App Service plan limits.

ScaleScale

Scale-outScale out Nombre maximal d’instancesMax # instances
Plan de consommationConsumption plan Basé sur les événements.Event driven. Effectuer un scale-out automatique, même pendant les périodes de charge élevéeScale out automatically, even during periods of high load. L’infrastructure Azure Functions met automatiquement à l’échelle les ressources processeur et mémoire en ajoutant des instances de l’hôte Functions selon le nombre d’événements en fonction desquels ses fonctions sont déclenchées.Azure Functions infrastructure scales CPU and memory resources by adding additional instances of the Functions host, based on the number of events that its functions are triggered on. 200200
Plan PremiumPremium plan Basé sur les événements.Event driven. Effectuer un scale-out automatique, même pendant les périodes de charge élevéeScale out automatically, even during periods of high load. L’infrastructure Azure Functions met automatiquement à l’échelle les ressources processeur et mémoire en ajoutant des instances de l’hôte Functions selon le nombre d’événements en fonction desquels ses fonctions sont déclenchées.Azure Functions infrastructure scales CPU and memory resources by adding additional instances of the Functions host, based on the number of events that its functions are triggered on. 100100
Plan dédié 1Dedicated plan1 Manuel/Mise à l’échelle automatiqueManual/autoscale 10-2010-20
ASE 1ASE1 Manuel/Mise à l’échelle automatiqueManual/autoscale 100100
KubernetesKubernetes Mise à l’échelle automatique basée sur les événements pour les clusters Kubernetes qui utilisent KEDA.Event-driven autoscale for Kubernetes clusters using KEDA. Varie en fonction du cluster.  Varies by cluster.  

1 Pour connaître les limites spécifiques des différentes options du plan App Service, consultez les limites du plan App Service.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Comportement du démarrage à froidCold start behavior

Plan de consommationConsumption plan Les applications peuvent être mises à l’échelle jusqu’à zéro en cas d’inactivité pendant une certaine période, ce qui signifie que certaines requêtes peuvent présenter une latence supplémentaire au démarrage.Apps may scale to zero if idle for a period of time, meaning some requests may have additional latency at startup. Le plan de consommation offre des optimisations pour réduire le temps de démarrage à froid, notamment en extrayant à partir de fonctions d’espace réservé préparées qui exécutent déjà les processus de langage et d’hôte de fonction.The consumption plan does have some optimizations to help decrease cold start time, including pulling from pre-warmed placeholder functions that already have the function host and language processes running.
Plan PremiumPremium plan Les instances perpétuellement chaudes permettent d’éviter les démarrages à froid.Perpetually warm instances to avoid any cold start.
Plan dédié 1Dedicated plan1 En cas d’exécution dans un plan dédié, l’hôte Functions peut s’exécuter en continu, ce qui signifie que le démarrage à froid n’est pas vraiment un problème.When running in a Dedicated plan, the Functions host can run continuously, which means that cold start isn’t really an issue.
ASE 1ASE1 En cas d’exécution dans un plan dédié, l’hôte Functions peut s’exécuter en continu, ce qui signifie que le démarrage à froid n’est pas vraiment un problème.When running in a Dedicated plan, the Functions host can run continuously, which means that cold start isn’t really an issue.
KubernetesKubernetes Dépend de la configuration KEDA.Depends on KEDA configuration. Les applications peuvent être configurées de manière à toujours s’exécuter et à ne jamais présenter de démarrage à froid, ou de manière à être mises à l’échelle jusqu’à zéro, ce qui se traduit par un démarrage à froid lors de nouveaux événements.Apps can be configured to always run and never have cold start, or configured to scale to zero, which results in cold start on new events.

1 Pour connaître les limites spécifiques des différentes options du plan App Service, consultez les limites du plan App Service.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Limites du serviceService limits

RessourceResource Plan ConsommationConsumption plan Plan PremiumPremium plan Plan dédiéDedicated plan ASEASE KubernetesKubernetes
Durée du délai d’expiration (min) par défautDefault timeout duration (min) 55 3030 301301 3030 3030
Durée du délai d’expiration maximum (min)Max timeout duration (min) 1010 illimité7unbounded7 illimité2unbounded2 illimitéunbounded illimitéunbounded
Nbre max. de connexions sortantes (par instance)Max outbound connections (per instance) 600 actives (1 200 au total)600 active (1200 total) illimitéunbounded illimitéunbounded illimitéunbounded illimitéunbounded
Taille de requête max. (Mo)3Max request size (MB)3 100100 100100 100100 100100 Dépend du clusterDepends on cluster
Longueur de chaîne de requête max.3Max query string length3 40964096 40964096 40964096 40964096 Dépend du clusterDepends on cluster
Longueur d’URL de requête max.3Max request URL length3 8 1928192 8 1928192 8 1928192 8 1928192 Dépend du clusterDepends on cluster
ACU par instanceACU per instance 100100 210-840210-840 100-840100-840 210-2508210-2508 Tarification d’AKSAKS pricing
Mémoire max. (en Go par instance)Max memory (GB per instance) 1.51.5 3,5-143.5-14 1,75-141.75-14 3.5 - 143.5 - 14 Tous les nœuds sont pris en chargeAny node is supported
Applications de fonction par planFunction apps per plan 100100 100100 illimité4unbounded4 illimitéunbounded illimitéunbounded
Plans App ServiceApp Service plans 100 par région100 per region 100 par groupe de ressources100 per resource group 100 par groupe de ressources100 per resource group - -
Stockage5Storage5 5 To5 TB 250 Go250 GB 50-1 000 Go50-1000 GB 1 To1 TB n/an/a
Domaines personnalisés par applicationCustom domains per app 50065006 500500 500500 500500 n/an/a
domaines personnalisés Prise en charge SSLCustom domain SSL support connexion SNI SSL illimitée incluseunbounded SNI SSL connection included connexions 1 IP SSL et SNI SSL illimitées inclusesunbounded SNI SSL and 1 IP SSL connections included connexions 1 IP SSL et SNI SSL illimitées inclusesunbounded SNI SSL and 1 IP SSL connections included connexions 1 IP SSL et SNI SSL illimitées inclusesunbounded SNI SSL and 1 IP SSL connections included n/an/a

1 Par défaut, le délai d’attente du runtime de Functions 1.x dans un plan App Service est illimité.1 By default, the timeout for the Functions 1.x runtime in an App Service plan is unbounded.
2 Nécessite que le plan App Service soit défini sur Always On.2 Requires the App Service plan be set to Always On. Facturation aux tarifs standard.Pay at standard rates.
3 Ces limites sont définies dans l’hôte.3 These limits are set in the host.
4 Le nombre réel d’applications de fonction qui peuvent être hébergées dépend de l’activité des applications, de la taille des instances de machine et de l’utilisation de ressources correspondante.4 The actual number of function apps that you can host depends on the activity of the apps, the size of the machine instances, and the corresponding resource utilization.
5 La limite de stockage est la taille totale du contenu dans le stockage temporaire de toutes les applications du même plan App Service.5 The storage limit is the total content size in temporary storage across all apps in the same App Service plan. Le plan Consommation utilise Azure Files pour le stockage temporaire.Consumption plan uses Azure Files for temporary storage.
6 Lorsque votre application de fonction est hébergée dans un Plan Consommation, seule l’option CNAME est prise en charge.6 When your function app is hosted in a Consumption plan, only the CNAME option is supported. Pour les applications de fonction présentes dans un plan Premium ou un plan App Service, vous pouvez mapper un domaine personnalisé en utilisant l’un ou l’autre des enregistrements : CNAME ou A.For function apps in a Premium plan or an App Service plan, you can map a custom domain using either a CNAME or an A record.
7 Garanti pour une durée maximale de 60 minutes.7 Guaranteed for up to 60 minutes.
8Les workers sont des rôles qui hébergent des applications clientes.8 Workers are roles that host customer apps. Ils sont disponibles dans trois tailles fixes : Un processeur virtuel/3,5 Go de RAM ; Deux processeurs virtuels/7 Go de RAM ; Quatre processeurs virtuels/14 Go de RAM.Workers are available in three fixed sizes: One vCPU/3.5 GB RAM; Two vCPU/7 GB RAM; Four vCPU/14 GB RAM.

Fonctionnalités réseauNetworking features

FonctionnalitéFeature Plan ConsommationConsumption plan Plan PremiumPremium plan Plan dédiéDedicated plan ASEASE KubernetesKubernetes
Restrictions d’adresses IP entrantes et accès aux sites privésInbound IP restrictions and private site access ✅Oui✅Yes ✅Oui✅Yes ✅Oui✅Yes ✅Oui✅Yes ✅Oui✅Yes
Intégration du réseau virtuelVirtual network integration ❌Non❌No ✅Oui (Zones géographiques)✅Yes (Regional) ✅Oui (Zones géographiques et Passerelle)✅Yes (Regional and Gateway) ✅Oui✅Yes ✅Oui✅Yes
Déclencheurs de réseau virtuel (non HTTP)Virtual network triggers (non-HTTP) ❌Non❌No ✅Oui✅Yes ✅Oui✅Yes ✅Oui✅Yes ✅Oui✅Yes
Connexions hybrides (Windows uniquement)Hybrid connections (Windows only) ❌Non❌No ✅Oui✅Yes ✅Oui✅Yes ✅Oui✅Yes ✅Oui✅Yes
Restrictions d’adresse IP sortantesOutbound IP restrictions ❌Non❌No ✅Oui✅Yes ✅Oui✅Yes ✅Oui✅Yes ✅Oui✅Yes

FacturationBilling

Plan de consommationConsumption plan Ne payez que la durée d’exécution de vos fonctions.Pay only for the time your functions run. La facturation est basée sur le nombre d’exécutions, la durée d’exécution et la mémoire utilisée.Billing is based on number of executions, execution time, and memory used.
Plan PremiumPremium plan Le plan Premium se base sur le nombre de cœurs-seconde et la mémoire utilisée sur les instances nécessaires et préparées.Premium plan is based on the number of core seconds and memory used across needed and pre-warmed instances. Au moins une instance par plan doit être chaude en permanence.At least one instance per plan must be kept warm at all times. Ce plan offre une tarification plus prévisible.This plan provides more predictable pricing.
Plan dédié 1Dedicated plan1 Le coût des Function App dans un plan App Service est le même que pour d’autres ressources App Service, par exemple les applications web.You pay the same for function apps in an App Service Plan as you would for other App Service resources, like web apps.
ASE 1ASE1 Un tarif fixe mensuel couvre l’infrastructure d’un ASE et ne change pas avec la taille de l’ASE.there's a flat monthly rate for an ASE that pays for the infrastructure and doesn't change with the size of the ASE. Chaque processeur virtuel de plan App Service présente aussi un coût.In addition, there's a cost per App Service plan vCPU. Toutes les applications hébergées dans un environnement App Service sont dans la référence (SKU) de prix Isolée.All apps hosted in an ASE are in the Isolated pricing SKU.
KubernetesKubernetes Vous ne payez que le coût de votre cluster Kubernetes et aucune facturation supplémentaire pour Functions.You pay only the costs of your Kubernetes cluster; no additional billing for Functions. Votre application de fonction s’exécute comme une charge de travail d’application sur votre cluster, tout comme une application normale.Your function app runs as an application workload on top of your cluster, just like a regular app.

1 Pour connaître les limites spécifiques des différentes options du plan App Service, consultez les limites du plan App Service.1 For specific limits for the various App Service plan options, see the App Service plan limits.

Étapes suivantesNext steps