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. |
- 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.
- 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.
- Pour connaître les limites spécifiques des différentes options du plan App Service, consultez Limites du plan App Service.
- La parité des fonctionnalités est un objectif d’hébergement intégré sur Azure Container Apps.
- 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.
- 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.
- 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.
- 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) |