Compartilhar via


Como depurar contêineres do Windows no Azure Service Fabric usando o Visual Studio 2019

Com o Visual Studio 2019, você pode depurar aplicativos .NET em contêineres como serviços do Service Fabric. Este artigo mostra como configurar seu ambiente e, em seguida, depurar um aplicativo .NET em um contêiner em execução em um cluster local do Service Fabric.

Pré-requisitos

Configurar seu ambiente de desenvolvedor para depurar contêineres

  1. Verifique se o serviço Docker for Window está em execução antes de prosseguir com a próxima etapa.

  2. Para dar suporte à resolução de DNS entre contêineres, você terá que configurar seu cluster de desenvolvimento local, usando o nome da máquina. Essas etapas também são necessárias se você quiser endereçar serviços por meio do proxy reverso.

    1. Abra o PowerShell como administrador

    2. Navegue até a pasta de configuração do SDK Cluster, normalmente C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup.

    3. Executar o script DevClusterSetup.ps1

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

      Nota

      Você pode usar o -CreateOneNodeCluster para configurar um cluster de um nó. O padrão criará um cluster local de cinco nós.

      Para saber mais sobre o Serviço DNS no Service Fabric, consulte Serviço DNS no Azure Service Fabric. Para saber mais sobre como usar o proxy reverso do Service Fabric a partir de serviços executados em um contêiner, consulte Tratamento especial de proxy reverso para serviços executados em contêineres.

Limitações conhecidas ao depurar contêineres no Service Fabric

Abaixo está uma lista de limitações conhecidas com contêineres de depuração no Service Fabric e possíveis resoluções:

  • O uso de localhost para ClusterFQDNorIP não suportará a resolução DNS em contêineres.
    • Resolução: configure o cluster local usando o nome da máquina (veja acima)
  • A execução do Windows10 em uma máquina virtual não obterá a resposta DNS de volta ao contêiner.
  • A resolução de serviços no mesmo aplicativo usando o nome do serviço DNS não funciona no Windows10, se o aplicativo tiver sido implantado usando o Docker Compose
  • Se estiver usando o endereço IP para ClusterFQDNorIP, alterar o IP primário no host interromperá a funcionalidade do DNS.
    • Resolução: recrie o cluster usando o novo IP primário no host ou use o nome da máquina. Esta quebra é por design.
  • Se o FQDN com o qual o cluster foi criado não puder ser resolvido na rede, o DNS falhará.
    • Resolução: recrie o cluster local usando o IP primário do host. Esta falha é por design.
  • Ao depurar um contêiner, os logs do docker só estarão disponíveis na janela de saída do Visual Studio, não por meio de APIs do Service Fabric, incluindo o Service Fabric Explorer

Depurar um aplicativo .NET em execução em contêineres do docker no Service Fabric

  1. Execute o Visual Studio como administrador.

  2. Abra um aplicativo .NET existente ou crie um novo.

  3. Clique com o botão direito do mouse no projeto e selecione Adicionar -> Suporte ao Container Orchestrator -> Service Fabric

  4. Pressione F5 para iniciar a depuração do aplicativo.

    O Visual Studio oferece suporte aos tipos de projeto de console e ASP.NET para .NET e .NET Core.

Próximos passos

Para saber mais sobre os recursos do Service Fabric e dos contêineres, consulte Visão geral dos contêineres do Service Fabric.