Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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 sur une application de fonction Linux, votre code s’exécute dans un conteneur qui est créé pour vous automatiquement et s’intègre en toute transparence aux outils de gestion 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
Lors de la création de 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. Pour plus d’informations, consultez Gestion des conteneurs personnalisés.
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. Cette intégration 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 votre conteneur d’applications de fonction dans le même environnement que d’autres microservices, API, sites web, flux de travail ou autres programmes hébergés 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 les applications de fonction conteneurisées n 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. Pour plus d’informations, consultez Utilisation des conteneurs et d’Azure Functions. |
Azure Functions | Vous pouvez héberger vos applications de fonction conteneurisées dans Azure Functions en exécutant le conteneur dans un plan Elastic Premium ou App Service (dédié). Utilisez l’hébergement Container Apps pour bénéficier d’une prise en charge enrichie des conteneurs à partir de Container Apps. 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. Important: L’hébergement Kubernetes de vos applications de fonction conteneurisées, à l’aide de KEDA ou par déploiement direct, est un effort open source que vous pouvez utiliser gratuitement. La prise en charge optimale de ce scénario d’hébergement est fournie uniquement par les contributeurs et par 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 | Non | 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 | Non | 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 |
Diagnostiques | 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 | Non | 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 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 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 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.
Gestion des conteneurs personnalisés
Lors de la création de 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.
Lorsque l’image de base est gérée par Functions, par exemple dans un déploiement standard sur Linux, votre application est mise à jour automatiquement par les mises à jour régulières de l’image de base publiées par l’équipe Functions. Pour ces conteneurs non personnalisés, votre application est mise à jour pour s’exécuter sur l’image de base qui a la nouvelle version mineure ou la version corrigée du runtime hôte.
Quand vous créez ou que vous déployez votre propre application conteneurisée en utilisant une image personnalisée, vous devez vous assurer que votre image personnalisée reste à jour avec nos images de base publiées. Outre les nouvelles fonctionnalités et améliorations, ces mises à jour d’images de base peuvent également inclure des mises à jour de sécurité critiques pour votre application. Pour vous assurer que votre application est protégée, vérifiez que vous restez à jour.
Dans certains cas, nous devons apporter des modifications au niveau de la plateforme, ce qui peut signifier qu’une application dans un conteneur personnalisé à l’aide d’une ancienne image de base peut cesser de fonctionner correctement. Pour ces changements majeurs, nous déployons des images mises à jour bien à l’avance afin que les applications qui prennent des mises à jour régulières ne soient pas affectées négativement. Pour éviter les problèmes potentiels liés à vos applications s’exécutant dans des conteneurs personnalisés, veillez à ne pas tomber trop loin derrière la dernière version mineure publiée. Dans un cas de support, si nous déterminons que votre application rencontre des problèmes, car elle se trouve sur une version antérieure ou non prise en charge, nous vous demandons de mettre à jour votre conteneur vers la dernière version de l’image de base avant de poursuivre la prise en charge.
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 |