Plan Premium Azure Functions
Le plan Élastique Premium Azure Functions est une option d’hébergement à échelle dynamique pour les applications de fonction. Pour d’autres options de plan d’hébergement, consultez l’article sur le plan d’hébergement.
Important
Azure Functions peut s’exécuter sur la plateforme Azure App Service. Dans la plateforme App Service, les plans qui hébergent les applications de fonction du plan Premium sont appelés des plans Élastique Premium, avec des noms de référence SKU tels que EP1
. Si vous choisissez d’exécuter votre application de fonction sur un plan Premium, veillez à créer un plan avec un nom de référence SKU qui commence par « E », par exemple EP1
. Les noms des références SKU du plan App Service qui commencent par « P », par exemple P1V2
(plan Premium V2 Small), sont en fait des P1V2
. Comme ils sont Dédiés et non Élastique Premium, les plans avec des noms de références SKU commençant par « P » ne sont pas mis à l’échelle de façon dynamique et peuvent augmenter vos coûts.
L’hébergement du plan Premium offre les avantages suivants à vos fonctions :
- Éviter les démarrages à froid grâce à des instances chaudes.
- Connectivité de réseau virtuel.
- Prend en charge des durées d’exécution plus longues.
- Choix des tailles d’instance Premium.
- Tarification plus prévisible, comparée au plan de consommation.
- Allocation d’application à haute densité pour les plans avec plusieurs Function App.
- Prend en charge les déploiements de conteneurs Linux.
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. Plusieurs applications de fonction peuvent être déployées sur le même plan Premium, et celui-ci vous permet de configurer la taille d’instance de calcul, la taille du plan de base et taille maximale de plan.
Facturation
La facturation du plan Premium se base sur le nombre de cœurs-seconde et la mémoire utilisée sur toutes les instances. Cette facturation diffère du plan Consommation, qui est facturé en fonction de la consommation de ressources et des exécutions par seconde. Il n’y a pas de frais d’exécution avec le plan Premium. Il en résulte un coût mensuel minimum par plan actif, que la fonction soit active ou inactive. Gardez à l’esprit que toutes les applications de fonction d’un plan Premium partagent les instances allouées. Pour en savoir plus, consultez la page de tarification Azure Functions.
Notes
Chaque plan Premium dispose en permanence d’au moins une instance active (facturée).
Créer un plan Premium
Lorsque vous créez une application de fonction dans le portail Azure, le plan de consommation est sélectionné par défaut. Pour créer une application de fonction qui s’exécute dans un plan Premium, vous devez créer explicitement un plan d’hébergement Premium Azure Functions à l’aide de l’une des références SKU Premium élastiques. L’application de fonction que vous créez est ensuite hébergée dans ce plan. Le portail Azure permet de créer facilement à la fois le plan Premium et l’application de fonction. Vous pouvez exécuter plusieurs applications de fonction dans le même plan Premium, mais elles s’exécutent toutes les deux sur le même système d’exploitation (Windows ou Linux).
Les articles suivants vous montrent comment créer par programmation une application de fonction avec un plan Premium :
Éliminer les démarrages à froid
Lorsque des événements ou des exécutions ne se produisent pas dans le plan Consommation, il se peut que votre application effectue une mise à l'échelle jusqu’à zéro instance. Quand de nouveaux événements se produisent, une nouvelle instance doit être spécialisée avec votre application s’exécutant sur celle-ci. La spécialisation de nouvelles instances prend du temps, en fonction de l’application. Cette latence supplémentaire du premier appel est souvent appelée démarrage à froid d’application.
Le plan Premium fournit deux fonctionnalités qui opèrent ensemble pour éliminer efficacement les démarrages à froid dans vos fonctions : les instances toujours prêtes et les instances préchauffées. Les instances toujours prêtes sont une catégorie d’instances pré-allouées non affectées par la mise à l’échelle et les instances préchauffées constituent une mémoire tampon à mesure que vous effectuez une mise à l’échelle en raison d’événements HTTP.
Quand des événements commencent à déclencher l’application, ceux-ci sont d’abord routés vers les instances toujours prêtes. Lorsque la fonction devient active en raison d’événements HTTP, d’autres instances sont réchauffées en tant que mémoire tampon. Ces instances mises en mémoire tampon s’appellent des instances préchauffées. Cette mémoire tampon réduit le démarrage à froid des nouvelles instances nécessaires pendant la mise à l’échelle.
Instances toujours prêtes
Dans le plan Premium, vous pouvez faire en sorte que votre application soit toujours prête sur un nombre spécifié d’instances. Votre application s’exécute en continu sur ces instances, quelle que soit la charge. Si la charge dépasse ce que vos instances toujours prêtes peuvent gérer, des instances supplémentaires sont ajoutées si nécessaire, jusqu’à votre maximum spécifié.
Ce paramètre au niveau de l’application contrôle également les instances minimales de votre plan. Par exemple, envisagez d’avoir trois applications de fonction dans le même plan Premium. Lorsque le nombre d'instances prêtes est fixé à un pour deux de vos applications et à cinq pour une troisième, le nombre minimum pour l'ensemble de votre plan est de cinq. Cela reflète également le nombre minimal d’instances pour lesquelles votre plan est facturé. Le nombre maximal d’instances toujours prêtes prises en charge par application est de 20.
Vous pouvez configurer le nombre d’instances toujours prêtes sur le portail Azure en sélectionnant votre application de fonction, en accédant à l’onglet Fonctionnalités de la plateforme, puis en sélectionnant les options Monter en charge. Dans la fenêtre de modification de l’application de fonction, les instances toujours prêtes sont propres à cette application.
Instances préchauffées
Le paramètre de nombre d’instances préchauffées fournit des instances chauffées en tant que mémoire tampon pendant les événements d’activation et de mise à l’échelle HTTP. Les instances préchauffées continuent d’être mises en mémoire tampon tant que la limite maximale de scale-out n’est pas atteinte. Le nombre d’instances préchauffées par défaut est de 1, et dans la plupart des scénarios, cette valeur reste à 1.
Envisagez un scénario moins courant, tel qu’une application s’exécutant dans un conteneur personnalisé. Étant donné que les conteneurs personnalisés ont un temps de préchauffage, vous pouvez envisager d’augmenter cette mémoire tampon d’instances préchauffées. Une instance préchauffée ne devient active qu’une fois toutes les instances actives en cours d’utilisation.
Vous pouvez également définir un déclencheur de préchauffage qui est exécuté pendant le processus de préchauffage. Vous pouvez utiliser un déclencheur de préchauffage pour précharger des dépendances personnalisées pendant le processus de préchauffage afin que vos fonctions soient prêtes à commencer le traitement des requêtes immédiatement. Pour en savoir plus, consultez Déclencheur de préchauffage Azure Functions.
Pour illustrer la façon dont les instances toujours prêtes et les instances préchauffées fonctionnent ensemble, prenons l’exemple suivant. Une application de fonction Premium compte deux instances toujours prêtes configurées et une instance préchauffée par défaut.
- Quand l’application est inactive et qu’aucun événement n’est déclenché, l’application est provisionnée et s’exécute sur deux instances. À ce stade, vous êtes facturé pour les deux instances toujours prêtes, mais n’êtes pas facturé pour une instance préchauffée car aucune instance préchauffée n’est encore allouée.
- Lorsque votre application commencera à recevoir du trafic HTTP, la charge des requêtes devient équilibrée entre les deux instances toujours prêtes. Dès que ces deux instances démarrent le traitement des événements, une instance est ajoutée pour remplir la mémoire tampon préchauffée. L’application s’exécute maintenant avec trois instances provisionnées : les deux instances toujours prêtes et la troisième instance en tant que mémoire tampon préchauffée et inactive. Vous êtes facturé pour les trois instances.
- À mesure que la charge augmente et que votre application a besoin d’autres instances pour gérer le trafic HTTP, cette instance préchauffée est échangée par une instance active. La charge HTTP est désormais routée vers les trois instances, et une quatrième instance est provisionnée instantanément pour remplir la mémoire tampon préchauffée.
- Cette séquence de mise à l’échelle et de préchauffage se poursuit jusqu’à ce que le nombre maximal d’instances de l’application soit atteint ou que la charge diminue, ce qui entraîne la mise à l’échelle de la plateforme après une période. Aucune instance n’est préchauffée ou activée au-delà de la valeur maximale.
Vous ne pouvez pas modifier le paramètre de nombre d’instances préchauffées dans le portail, vous devez utiliser Azure CLI ou Azure PowerShell.
Instances d’applications de fonction maximales
En plus du nombre maximal de rafales du plan, vous pouvez configurer un maximum par application. La valeur maximale d’une application peut être configurée en utilisant la limite d’échelle de l’application. La limite maximale du scale-out de l’application ne peut pas dépasser le nombre maximal d’instances en rafale du plan.
Connectivité de réseau privé
Les applications de fonction déployées sur un plan Premium peuvent tirer parti de l’intégration de réseau virtuel pour les applications web. Une fois configurée, votre application peut communiquer avec des ressources de votre réseau virtuel ou sécurisées via des points de terminaison de service. Des restrictions d’adresse IP sont également disponibles sur l’application pour limiter le trafic entrant.
Lors de l’attribution d’un sous-réseau à votre Function App dans un plan Premium, vous avez besoin d’un sous-réseau avec suffisamment d’adresses IP pour chaque instance potentielle. Nous imposons un bloc d’au moins 100 adresses IP disponibles.
Pour plus d’informations, consultez Intégrer votre application de fonction à un réseau virtuel.
Mise à l’échelle élastique rapide
Des instances de calcul supplémentaires sont automatiquement ajoutées pour votre application en utilisant la même logique de mise à l’échelle rapide que le Plan Consommation. Les applications du même plan App Service sont mises à l’échelle indépendamment les unes des autres en fonction des besoins d’une application individuelle. Toutefois, les applications Functions dans le même plan App Service partagent des ressources de machine virtuelle pour aider à réduire les coûts, lorsque cela est possible. Le nombre d’applications associées à une machine virtuelle dépend de l’encombrement de chaque application et de la taille de la machine virtuelle.
Pour en savoir plus sur le fonctionnement de la mise à l’échelle, consultez Mise à l’échelle basée sur les événements dans Azure Functions.
Durée d’exécution plus longue
Les fonctions Azure Functions dans un Plan Consommation sont limitées à 10 minutes par exécution. Dans le plan Premium, la durée d’exécution par défaut est de 30 minutes pour éviter toute perte de contrôle. Cependant, vous pouvez modifier la configuration de host.json pour faire en sorte que la durée soit illimitée pour les applications du plan Premium, avec les limitations suivantes :
- Les mises à niveau de plateforme peuvent déclencher un arrêt géré et arrêter l’exécution de la fonction.
- Les pannes de plateforme peuvent entraîner un arrêt non géré et arrêter l’exécution de la fonction.
- Il existe un minuteur inactif qui arrête le Worker après 60 minutes sans nouvelles exécutions.
- Le comportement de scale-in peut entraîner l’arrêt du Worker après 60 minutes.
- Les échanges d’emplacements peuvent mettre fin aux exécutions sur les emplacements source et cible pendant l’échange.
Migration
Si vous possédez une application de fonction existante, vous pouvez utiliser des commandes d’Azure CLI pour migrer une application entre un plan Consommation et un plan Premium sur Windows. Les commandes spécifiques dépendent de la direction de la migration. Pour en savoir plus, consultez Planifier la migration.
La migration n'est pas prise en charge sur Linux.
Paramètres du plan Premium
Pendant la création du plan, deux paramètres de taille de plan sont proposés : le nombre minimal d’instances (ou taille du plan) et la limite maximale en rafale.
Si votre application exige un nombre d’instances supérieur au nombre d’instances toujours prêtes, elle peut continuer d’effectuer un scale-out tant que le nombre d’instances n’a pas atteint la limite maximale en rafale du plan ou la limite maximale de scale-out de l’application si elle est configurée. Vous serez facturé pour des instances uniquement quand elles sont en cours d’exécution et vous sont allouées à la seconde. La plateforme s’efforce d’assurer la mise à l’échelle de votre application jusqu’à la limite maximale définie.
Vous pouvez configurer la taille du plan et le nombre maximal d’instances dans le portail Azure en sélectionnant les options Effectuer un scale-out sous Paramètres ou une application de fonction déployée sur ce plan.
La valeur minimale pour chaque plan Premium est d’au moins une instance. Le nombre minimal effectif d’instances est déterminé pour vous en fonction du nombre d’instances toujours prêtes demandées par les applications du plan. Par exemple, si l’application A demande cinq instances toujours prêtes et que l’application B en demande deux dans le même plan, la taille minimale du plan calculée est fixée à cinq. L’application A s’exécute sur les cinq, et l’application B ne s’exécute que sur 2.
Important
Vous êtes facturé pour chaque instance allouée en lien avec le nombre minimal d’instances, que les fonctions s’exécutent ou non.
Dans la plupart des cas, ce minimum calculé automatiquement est suffisant. Cependant, si nécessaire, nous ferons de notre mieux pour assurer une mise à l’échelle au-delà du nombre minimal. Même si cela est peu probable, il est possible qu’à un moment donné, le scale-out soit retardé si d’autres instances sont indisponibles. En définissant un minimum supérieur au minimum calculé automatiquement, vous réservez des instances préalablement au scale-out.
Vous pouvez configurer le nombre minimal d’instances dans le portail Azure en sélectionnant les options Effectuer un scale-out sous Paramètres d’une application de fonction déployée sur ce plan.
Références SKU d’instance disponibles
Pendant la création ou la mise à l’échelle de votre plan, vous pouvez choisir entre trois tailles d’instance. Vous serez facturé pour le nombre total de cœurs et de mémoire approvisionnés, pour chaque seconde où chaque instance vous est allouée. Votre application peut automatiquement effectuer un scale-out sur plusieurs instances en fonction des besoins.
SKU | Cœurs | Mémoire | Stockage |
---|---|---|---|
EP1 | 1 | 3,5 GO | 250 Go |
EP2 | 2 | 7 GO | 250 Go |
EP3 | 4 | 14 GO | 250 Go |
Considérations liées à l’utilisation de la mémoire
L’exécution sur une machine avec davantage de mémoire ne signifie pas toujours que votre application de fonction utilise toute la mémoire disponible.
Par exemple, une application de fonction JavaScript est contrainte par la limite de mémoire par défaut dans Node.js. Pour augmenter cette limite de mémoire fixe, ajoutez le paramètre d’application languageWorkers:node:arguments
avec la valeur --max-old-space-size=<max memory in MB>
.
De plus, pour les plans avec plus de 4 Go de mémoire, vérifiez que le paramètre de nombre de bits de la plateforme est défini sur 64 Bit
sous Paramètres généraux.
Scale-out maximal par région
Voici les valeurs maximales de scale-out actuellement prises en charge pour un même plan dans chaque région et configuration de système d’exploitation :
Région | Windows | Linux |
---|---|---|
Centre de l’Australie | 100 | 20 |
Centre de l’Australie 2 | 100 | Non disponible |
Australie Est | 100 | 40 |
Sud-Australie Est | 100 | 20 |
Brésil Sud | 100 | 20 |
Centre du Canada | 100 | 100 |
Inde centrale | 100 | 20 |
USA Centre | 100 | 100 |
Chine orientale 2 | 20 | 20 |
Chine Nord 2 | 20 | 20 |
Chine Nord 3 | 20 | 20 |
Asie Est | 100 | 20 |
USA Est | 100 | 100 |
USA Est 2 | 80 | 100 |
France Centre | 100 | 60 |
Allemagne Centre-Ouest | 100 | 20 |
Israël Central | 100 | 20 |
Italie Nord | 100 | 20 |
Japon Est | 100 | 20 |
OuJapon Est | 100 | 20 |
JIO Inde Ouest | 100 | 20 |
Centre de la Corée | 100 | 20 |
Corée du Sud | 40 | 20 |
Mexique Centre | 20 | 20 |
Centre-Nord des États-Unis | 100 | 20 |
Europe Nord | 100 | 100 |
Norvège Est | 100 | 20 |
Afrique du Sud Nord | 100 | 20 |
Afrique du Sud Ouest | 20 | 20 |
États-Unis - partie centrale méridionale | 100 | 100 |
Inde Sud | 100 | Non disponible |
Asie Sud-Est | 100 | 20 |
Espagne Centre | 20 | 20 |
Suisse Nord | 100 | 20 |
Suisse Ouest | 100 | 20 |
Émirats arabes unis Nord | 100 | 20 |
Sud du Royaume-Uni | 100 | 100 |
Ouest du Royaume-Uni | 100 | 20 |
Gouvernement des États-Unis - Arizona | 20 | 20 |
Gouvernement des États-Unis - Texas | 20 | Non disponible |
USGov Virginia | 80 | 20 |
Centre-USA Ouest | 100 | 20 |
Europe Ouest | 100 | 100 |
Inde Ouest | 100 | 20 |
USA Ouest | 100 | 100 |
USA Ouest 2 | 100 | 20 |
USA Ouest 3 | 100 | 20 |
Pour en savoir plus, consultez la disponibilité régionale complète d’Azure Functions.