Guide pratique pour déboguer des conteneurs Windows dans Azure Service Fabric à l’aide de Visual Studio 2019

Avec Visual Studio 2019, vous pouvez déboguer des applications .NET dans les conteneurs en tant que services Service Fabric. Cet article explique comment configurer votre environnement, puis déboguer une application .NET dans un conteneur exécuté dans un cluster Service Fabric local.

Prérequis

Configurer votre environnement de développement pour déboguer des conteneurs

  1. Vérifiez que le Docker pour le service Windows est en cours d’exécution avant de procéder à l’étape suivante.

  2. Pour prendre en charge la résolution DNS entre les conteneurs, vous devez configurer votre cluster de développement local avec le nom de la machine. Ces étapes sont également nécessaires si vous voulez adresser des services via le proxy inverse.

    1. Ouvrez PowerShell en tant qu’administrateur

    2. Accédez au dossier d’installation Cluster du SDK, qui est en général C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup.

    3. Exécuter le script DevClusterSetup.ps1

        C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1
      

      Notes

      Vous pouvez utiliser -CreateOneNodeCluster pour configurer un cluster à un nœud. La configuration par défaut crée un cluster local à cinq nœuds.

      Pour en savoir plus sur le service DNS dans Service Fabric, consultez Service DNS dans Azure Service Fabric. Pour plus d’informations sur l’utilisation du proxy inverse Service Fabric à partir de services s’exécutant dans un conteneur, consultez Gestion spéciale du proxy inverse pour les services s’exécutant dans des conteneurs.

Limitations connues lors du débogage de conteneurs dans Service Fabric

Voici une liste des limitations connues du débogage de conteneurs dans Service Fabric et des résolutions possibles :

  • L’utilisation de localhost pour ClusterFQDNorIP ne prend pas en charge la résolution DNS dans les conteneurs.
    • Résolution : Configurer le cluster local avec le nom de la machine (voir ci-dessus)
  • L’exécution de Windows 10 sur une machine virtuelle n’obtient aucune réponse DNS en retour dans le conteneur.
  • La résolution des services dans la même application en utilisant le nom du service DNS ne fonctionne pas sur Windows 10, si l’application a été déployée à l’aide de Docker Compose
  • Si vous utilisez IP-address pour ClusterFQDNorIP, le changement de l’adresse IP principale sur l’hôte entraîne l’arrêt de la fonctionnalité DNS.
    • Résolution : Recréez le cluster avec la nouvelle adresse IP principale sur l’hôte ou utilisez le nom de la machine. Cette rupture est intentionnelle.
  • Si le FQDN avec lequel le cluster a été créé ne peut pas être résolu sur le réseau, DNS échoue.
    • Résolution : Recréez le cluster local avec l’adresse IP principale de l’hôte. Cette défaillance est intentionnelle.
  • Lors du débogage d’un conteneur, les journaux d’activité de docker sont disponibles uniquement dans la fenêtre de sortie de Visual Studio, ils ne le sont pas via les API Service Fabric, ni non plus dans Service Fabric Explorer.

Déboguer une application .NET exécutée dans des conteneurs docker sur Service Fabric

  1. Exécutez Visual Studio en tant qu’administrateur.

  2. Ouvrez une application .NET existante ou créez-en une.

  3. Cliquez avec le bouton droit sur le projet et sélectionnez Ajouter -> Prise en charge des orchestrateurs de conteneurs -> Service Fabric.

  4. Appuyez sur F5 pour lancer le débogage de l’application.

    Visual Studio prend en charge la console et les types de projets ASP.NET pour .NET et .NET Core.

Étapes suivantes

Pour en savoir plus sur les fonctionnalités de Service Fabric et des conteneurs, consultez Vue d’ensemble des conteneurs Service Fabric.