Migrer de Functions on Azure Container Apps V1 vers Functions on Azure Container Apps V2

Utilisez ce guide pour passer du modèle d’hébergement Functions sur Azure Container Apps V1 vers le modèle recommandé Functions on Azure Container Apps V2. Vous découvrez pourquoi migrer, quels changements et comment exécuter la transition avec un risque minimal.

Note

Utilisez l’assistant de migration Azure Functions sur Azure Container Apps v1 pour vous aider à migrer vos applications de fonction du modèle v1 vers le modèle v2.

Vous pouvez héberger Azure Functions dans Azure Container Apps à l’aide de deux modèles de déploiement :

  • Fonctions sur Azure Container Apps V1 : Modèle proxy hérité utilisant une application de fonctions (Microsoft.Webfournisseur de ressources) ainsi qu’une application conteneur en coulisses.

  • Fonctions sur Azure Container Apps V2 : Modèle natif qui crée une seule ressource Azure Container App (Microsoft.App) avec kind=functionapp.

Lorsque vous passez à Functions sur Azure Container Apps V2, vous simplifiez la gestion, débloquez des fonctionnalités natives et vous alignez sur la feuille de route future d’Azure Functions.

Comparaison des modèles

Area Fonctions sur Azure Container Apps V1 (hérité) Fonctions sur Azure Container Apps V2 (recommandé)
Modèle de ressource Application de fonctions proxy jumelée à une application conteneur masquée Application conteneur natif seul (kind=functionapp)
Fonctionnalités natives

(révisions, secrets, sondes d’intégrité, domaines personnalisés, sidecars)
Non prise en charge Soutenu
Contrôles de mise à l’échelle

(refroidissement, intervalle d’interrogation)
Limité Options complètes de mise à l’échelle des applications conteneur
Journalisation et résolution des problèmes Indirect. Aucune console active Direct. Inclut les journaux en direct et les diagnostics
Intégration de Dapr Problématique dans certains scénarios .NET isolés Pris en charge par des schémas standard
Authentification (Authentification facile) Non disponible Disponible
Certificats et domaines personnalisés Non disponible Disponible
Métriques et alertes Élémentaire Métriques et alertes natives complètes
Feuille de route future

(liste de fonctions, clés, nombre d’appels)
Non planifiée Planifié
Complexité opérationnelle Gestion à deux ressources Ressource unique
Recommandé pour les nouveaux déploiements Non Oui

Limitations des fonctions sur Azure Container Apps v1

Les fonctions sur Azure Container Apps V1 présentent plusieurs limitations qui affectent la scalabilité, la gestion et la disponibilité des fonctionnalités. Comprendre ces contraintes aide à clarifier les avantages de migrer vers les fonctions sur Azure Container Apps V2.

Lacunes de fonctionnalités

Les fonctionnalités suivantes ne sont pas disponibles pour les fonctions sur les applications Azure Container Apps V1 :

  • Authentification facile
  • Sondes d’intégrité
  • Domaines personnalisés
  • Conteneurs side-car
  • Certificats managés
  • Secrets d’application conteneur
  • Paramètres de mise à l’échelle granulaires
  • Fractionnement du trafic multi-version

Résolution des contraintes

Avec Functions sur Azure Container Apps V1, vous n'avez pas d'accès direct aux conteneurs ni de sortie console en temps réel. Utilisez plutôt Log Analytics pour le diagnostic de l’infrastructure et Application Insights pour les journaux d’application.

Problèmes d’intégration Dapr

Les fonctions isolées de Dapr et .NET peuvent entrer en conflit pendant la génération ou l’exécution en raison de contraintes d'ordre des dépendances et de l’initialisation.

Avantages des fonctions sur Azure Container Apps v2

Functions on Azure Container Apps V2 crée directement une ressource native d’application conteneur. Cette approche supprime l’indirection de proxy et active les fonctionnalités complètes d’Azure Container Apps.

Principaux avantages :

  • Activez "Easy Auth" pour le délestage d’identité.
  • Configurez les sondes de santé pour améliorer la résilience.
  • Définissez des domaines personnalisés et utilisez des certificats managés.
  • Réduisez la surcharge opérationnelle avec une seule ressource.
  • Stockez les secrets en mode natif et montez des conteneurs sidecar.
  • Bénéficiez de métriques plus claires, d’alertes et d'un streaming de journaux en direct.
  • Utilisez des déploiements multiversions et fractionnez le trafic en toute sécurité.
  • Appliquez des règles de mise à l’échelle granulaires (intervalle d’interrogation, refroidissement).

Note

Le code n’a pas besoin d’être modifié. Vous pouvez réutiliser votre image conteneur existante.

Déploiement d’images directes héritées (non pris en charge)

Certains déploiements utilisent une application conteneur standard sans kind=functionapp et exécutent manuellement une image Functions.

Important

Cette approche n’est pas prise en charge. Il ne dispose pas de règles d'échelle automatique et ne reçoit pas de fonctionnalités à venir de la plateforme Azure Container Apps V2 comme la liste des fonctions, les clés et le nombre d'invocations.

Recommandation : Migrer vers les fonctions sur Azure Container Apps v2.

Prerequisites

Avant de migrer :

  • Abonnement Azure et autorisation de créer des ressources.
  • [Azure CLI](/cli/azure/install-azure-cli-windows ?view=azure-cli-latest (dernier) installé.
  • Extensions requises : az extension add --name containerapp, az extension add --name functionapp (le cas échéant).
  • Accès à l’image conteneur utilisée par vos fonctions sur le déploiement Azure Container Apps V1.
  • Inventaire des variables d’environnement, des secrets, des liaisons de stockage et des paramètres réseau.

Procédure de migration

1. Préparer

  1. Identifiez que votre déploiement actuel est une application Functions on Azure Container Apps V1.
  2. Exportez toutes les données de configuration, notamment les variables d’environnement, les secrets, les chaînes de connexion et les liaisons personnalisées.
  3. Passez en revue les quotas d’environnement (processeur, mémoire, instances maximales) et ajustez si nécessaire.
  4. Vérifiez la disponibilité de l’image dans votre Registre.

2. Créer une fonction sur Azure Container Apps v2

  1. Créez ou réutilisez un environnement Azure Container Apps.

  2. Déploie une nouvelle fonction sur l’application Azure Container Apps V2 avec la même image.

    az containerapp create \
      --name my-func-v2 \
      --resource-group <RESOURCE_GROUP_NAME> \
      --environment <ENVRONMENT_NAME> \
      --image myregistry.azurecr.io/<IMAGE_NAME>:<TAG_NAME> \
      --kind functionapp \
      --ingress external --target-port <TARGET_PORT>
    
  3. Réappliquez les détails de configuration, notamment les secrets, les variables d’environnement, l’identité, la mise en réseau.

  4. Activez l’authentification ou le domaine personnalisé si nécessaire.

  5. Définissez les règles de mise à l’échelle (HTTP, PROCESSEUR, corrélation des déclencheurs de file d’attente selon les besoins).

3. Valider

  1. Appeler des fonctions déclenchées par HTTP (curl ou browser).

  2. Testez chaque type de déclencheur (Event Hubs, Service Bus, minuteur).

  3. Vérifiez les données de télémétrie d'Application Insights et les journaux de Log Analytics.

  4. Vérifiez le comportement de mise à l’échelle sous charge (déclenchement de règles de mise à l’échelle automatique).

  5. Vérifiez que les secrets et les chaînes de connexion sont résolus correctement.

  6. Vérifiez la vérification de l'état de santé et les détails de la révision du conteneur.

4. Mettre à jour dns ou des domaines personnalisés (facultatif)

  1. Si vous utilisez un domaine personnalisé, mappez-le au nouveau nom d'hôte Functions on Azure Container Apps V2 (CNAME ou enregistrement A).

  2. Relier des certificats SSL/TLS (gérés ou téléchargés).

  3. Testez la résolution de domaine et le handshake TLS.

  4. Communiquer les modifications de point de terminaison en interne.

5. Migrer

  1. Déplacer le trafic de production (mettre à jour la durée de vie DNS ou les règles de routage).

  2. Surveillez la latence, les erreurs et les nombres d’appels.

  3. Ajustez les paramètres de mise à l’échelle si nécessaire (refroidissement, instances min/max).

  4. Surveillez les journaux pour détecter des anomalies pendant les premières heures.

6. Nettoyer

  1. Désactivez les anciennes fonctions sur l’application Azure Container Apps V1 et les ressources associées.

    Caution

    Vérifiez qu’aucun trafic de production n’est toujours dirigé vers le point de terminaison V1 de Functions sur Azure Container Apps avant de le supprimer.

  2. Supprimez les secrets inutilisés ou les références de stockage.

  3. Mettez à jour la documentation interne et les runbooks opérationnels.

Liste de vérification de validation

Élément Critères de réussite
Les déclencheurs s'activent Tous les déclencheurs configurés s’exécutent correctement
Journaux de logs et télémétrie Application Insights affiche des invocations et un flux de journaux en direct
Croissance Le nombre d’instances s’ajuste par configuration de règle
Authentification (si activée) Les points de terminaison protégés retournent les codes d’état attendus
Domaines Domaine personnalisé résolu avec un certificat valide
Secrets Chargement de valeurs sensibles sans erreurs

Améliorations opérationnelles (facultatives)

Améliorez la fiabilité après la migration :