Partager via


Prise en charge des conteneurs Linux dans Azure Functions

Lorsque vous planifiez et développez vos fonctions individuelles pour qu’elles s’exécutent dans Azure Functions, vous êtes généralement concentré sur le code lui-même. Azure Functions facilite le déploiement de votre projet de code dans une application de fonction dans Azure. Lorsque vous déployez votre projet de code sur une application de fonction qui s’exécute sur Linux, le projet s’exécute dans un conteneur créé automatiquement. Ce conteneur est géré par Functions.

Functions prend également en charge les déploiements d’applications de fonction conteneurisées. Dans un déploiement conteneurisé, vous créez votre propre instance d’application de fonction dans un conteneur Docker local à partir d’une image basée sur prise en charge. Vous pouvez ensuite déployer cette application de fonction conteneurisée dans un environnement d’hébergement dans Azure. La création de votre propre conteneur d’application de fonction vous permet de personnaliser ou de contrôler l’environnement d’exécution immédiat de votre code de fonction.

Important

Quand vous créez vos propres conteneurs, vous devez conserver l’image de base de votre conteneur mise à jour vers la dernière image de base prise en charge. Les images de base prises en charge pour Azure Functions sont spécifiques au langage et se trouvent dans le référentiel d’images de base Azure Functions.

L’équipe Functions s’engage à publier des mises à jour mensuelles pour ces images de base. Les mises à jour régulières incluent les dernières mises à jour de version mineure et les correctifs de sécurité pour le runtime et les langages Functions. Vous devez régulièrement mettre à jour votre conteneur à partir de la dernière image de base et redéployer la version mise à jour de votre conteneur.

Options d’hébergement de conteneur

Il existe plusieurs options pour héberger vos applications de fonction conteneurisées dans Azure :

Option d’hébergement Avantages
Azure Container Apps Azure Functions fournit une prise en charge intégrée pour le développement, le déploiement et la gestion d’applications de fonction conteneurisées sur Azure Container Apps. Cela vous permet de gérer vos applications à l’aide des mêmes outils et pages Functions dans le portail Azure. Utilisez Azure Container Apps pour héberger vos conteneurs d’application de fonction lorsque vous devez exécuter vos fonctions pilotées par les événements dans Azure dans le même environnement que d’autres microservices, API, sites web, workflows ou tout programme hébergé par conteneur. L’hébergement Container Apps vous permet d’exécuter vos fonctions dans un environnement Kubernetes avec prise en charge intégrée de la surveillance open source, mTLS, Dapr et KEDA. Prend en charge la mise à l’échelle à zéro et fournit un modèle d’hébergement payant serverless. Vous pouvez également demander du matériel dédié, même des GPU, à l’aide de profils de charge de travail. Option d’hébergement recommandée pour l’exécution d’applications de fonction conteneurisées sur Azure.
Clusters Kubernetes avec Azure Arc, utilisez (préversion). Vous pouvez héberger vos applications de fonction sur des clusters Kubernetes avec Azure Arc en tant que déploiement en code uniquement ou dans un conteneur Linux personnalisé. Azure Arc vous permet d’attacher des clusters Kubernetes afin de pouvoir les gérer et les configurer dans Azure. L’hébergement de conteneurs Azure Functions sur des clusters Kubernetes avec Azure Arc est actuellement en préversion.
Azure Functions Vous pouvez héberger vos applications de fonctions conteneurisées dans Azure Functions en exécutant le conteneur dans un plan Elastic Premium ou un plan Dedicated. L’hébergement de plan Premium vous offre les avantages de la mise à l’échelle dynamique. Vous pouvez utiliser l’hébergement de plan dédié pour tirer parti des ressources existantes du plan App Service inutilisées.
Kubernetes Étant donné que le runtime Azure Functions offre une flexibilité en matière d’hébergement où et comment vous le souhaitez, vous pouvez héberger et gérer vos conteneurs d’applications de fonction directement dans des clusters Kubernetes. KEDA (Kubernetes-based Event Driven Autoscaling, ou mise à l’échelle automatique pilotée par événement basée sur Kubernetes) fonctionne parfaitement avec le runtime et les outils Azure Functions pour fournir une échelle pilotée par événement dans Kubernetes. N’oubliez pas que l’exécution de vos applications de fonction conteneurisées sur Kubernetes, à l’aide de KEDA ou par déploiement direct, est un effort open source que vous pouvez utiliser gratuitement, avec une prise en charge optimale fournie par les contributeurs et de la communauté. Vous êtes responsable de la maintenance de vos propres conteneurs d’applications de fonction dans un cluster, même lors du déploiement sur Azure Kubernetes Service (AKS).

Comparaison des fonctionnalités

Le degré auquel différentes fonctionnalités et comportements d’Azure Functions sont pris en charge lors de l’exécution de votre application de fonction dans un conteneur dépend de l’option d’hébergement de conteneur que vous choisissez.

Fonctionnalité/Comportement Container Apps (intégré) Container Apps (direct) Plan Premium Plan dédié Kubernetes
Prise en charge du produit Oui No Oui Oui Non
Intégration du portail des fonctions Oui Aucune Oui Oui Aucune
Mise à l’échelle pilotée par les événements Oui5 Oui (mettre à l'échelle les règles) Oui No Non
Échelle maximale (instances) 10001  10001  1002  10-303  Varie selon le cluster
Instances de mise à l’échelle à zéro Oui Oui Non Non KEDA
Délai d'exécution Illimité6 Illimité6 Illimité7 illimité8 Aucun
Déploiement de Core Tools func azurecontainerapps Non Non Non func kubernetes 
Révisions Aucune Oui Aucune Aucune Aucune
Emplacements de déploiement  Aucune Aucune Oui Oui Aucune
Diffusion des journaux  Oui Oui  Oui Oui Aucune
Accès à la console  Non disponible actuellement4  Oui Oui (utilisation de Kudu) Oui (utilisation de Kudu) Oui (dans les pods à l’aide de kubectl)
Atténuation du démarrage à froid Réplicas minimaux Mettre à l'échelle les règles  Instances toujours prêtes/préchauffées  n/a n/a
Authentification App Service  Non disponible actuellement4  Oui Oui Oui Aucune
Noms de domaine personnalisés  Non disponible actuellement4  Oui Oui Oui Aucune
Certificats de clé privée  Non disponible actuellement4  Oui Oui Oui Aucune
Réseaux virtuels Oui Oui Oui Oui Oui
Zones de disponibilité Oui Oui Oui Oui Oui
Diagnostics Non disponible actuellement4  Oui Oui  Oui  Aucune
Matériel dédié Oui (profils de charge de travail) Oui (profils de charge de travail) Aucune Oui Oui
GPU dédiés Oui (profils de charge de travail) Oui (profils de charge de travail) Aucune Non Oui
Nombre de mémoire/processeur configurables Oui Oui Non Aucune Oui
Option « octroi gratuit » Oui Oui No Non Non
Détails de la tarification Facturation Container Apps Facturation Container Apps Facturation du plan Premium Facturation d’un plan dédié Tarification d’AKS
Configuration requise du nom du service 2-32 caractères : limités aux lettres minuscules, aux chiffres et aux traits d'union. Doit commencer par une lettre et terminiez par un caractère alphanumérique. 2-32 caractères : limités aux lettres minuscules, aux chiffres et aux traits d'union. Doit commencer par une lettre et terminiez par un caractère alphanumérique. Moins de 64 caractères : limité aux caractères alphanumériques et aux traits d’union. Ne peut pas commencer par ou se terminer par un trait d’union. Moins de 64 caractères : limité aux caractères alphanumériques et aux traits d’union. Ne peut pas commencer par ou se terminer par un trait d’union. Moins de 253 caractères : limité aux caractères alphanumériques et aux traits d’union. Doit commencer et se terminer avec un caractère alphanumérique.
  1. Sur Container Apps, la valeur par défaut est de 10 instances, mais vous pouvez définir le nombre maximal de réplicas, qui a un maximum global de 1 000. Ce paramètre est respecté tant qu’il y a suffisamment de quota de cœurs disponibles. Quand vous créez votre application de fonction depuis le portail Azure, vous êtes limité à 300 instances.
  2. Dans certaines régions, les applications Linux sur un plan Premium peuvent être mises à l’échelle vers 100 instances. Pour plus d’informations, consultez l’article sur le plan Premium.
  3. Pour connaître les limites spécifiques des différentes options du plan App Service, consultez Limites du plan App Service.
  4. La parité des fonctionnalités est un objectif d’hébergement intégré sur Azure Container Apps.
  5. Nécessite KEDA; pris en charge par la plupart des déclencheurs. Pour savoir quels déclencheurs prennent en charge la mise à l’échelle pilotée par les événements, consultez Considérations relatives à l’hébergement de Container Apps.
  6. 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.
  7. Il n’existe aucun délai maximal d’expiration d’exécution appliqué. Toutefois, le délai de grâce accordé à l'exécution d'une fonction est de 60 minutes lors de la mise à l'échelle, et un délai de grâce de 10 minutes est accordé lors des mises à jour de la plateforme.
  8. Nécessite que le plan App Service soit défini sur Always On. Une période de grâce de 10 minutes est donnée pendant les mises à jour de la plateforme.

Mise en route

Utilisez ces liens pour commencer à utiliser Azure Functions dans des conteneurs Linux :

Je souhaite... Consultez l’article :
Créer mes premières fonctions conteneurisées Créer une application de fonction dans un conteneur Linux local
Créer et déployer des fonctions sur Azure Container Apps Créer vos premières fonctions conteneurisée sur Azure Container Apps
Créer et déployer des fonctions conteneurisées sur Azure Functions Créer votre première fonction Azure Functions conteneurisée
Créer et déployer des fonctions sur Kubernetes avec Azure Arc Créer votre première fonction Azure Functions conteneurisée sur Azure Arc (préversion)