Como: Depurar contentores do Windows no Azure Service Fabric com o Visual Studio 2019

Com o Visual Studio 2019, pode depurar aplicações .NET em contentores como serviços do Service Fabric. Este artigo mostra-lhe como configurar o seu ambiente e, em seguida, depurar uma aplicação .NET num contentor em execução num cluster do Service Fabric local.

Pré-requisitos

Configurar o ambiente de programador para depurar contentores

  1. Certifique-se de que o serviço Docker for Window está em execução antes de prosseguir com o passo seguinte.

  2. Para suportar a resolução de DNS entre contentores, terá de configurar o cluster de desenvolvimento local com o nome do computador. Estes passos também são necessários se quiser abordar os serviços através do proxy inverso.

    1. Abrir o PowerShell como administrador

    2. Navegue para a pasta de configuração do Cluster do SDK, 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

      Pode utilizar o -CreateOneNodeCluster para configurar um cluster de um nó. A predefinição irá criar um cluster local de cinco nós.

      Para saber mais sobre o Serviço DNS no Service Fabric, veja Serviço DNS no Azure Service Fabric. Para saber mais sobre como utilizar o proxy inverso do Service Fabric a partir de serviços em execução num contentor, veja Processamento especial de proxy inverso para serviços em execução em contentores.

Limitações conhecidas ao depurar contentores no Service Fabric

Segue-se uma lista de limitações conhecidas com a depuração de contentores no Service Fabric e possíveis resoluções:

  • A utilização do localhost para ClusterFQDNorIP não suporta a resolução de DNS em contentores.
    • Resolução: configurar o cluster local com o nome do computador (veja acima)
  • Executar o Windows10 numa Máquina Virtual não receberá resposta DNS de volta ao contentor.
  • Resolver serviços na mesma aplicação com o nome do serviço DNS não funciona no Windows10, se a aplicação tiver sido implementada com o Docker Compose
  • Se utilizar o endereço IP para ClusterFQDNorIP, alterar o IP primário no anfitrião irá interromper a funcionalidade DNS.
    • Resolução: recrie o cluster com o novo IP primário no anfitrião ou utilize o nome do computador. Esta quebra é por predefinição.
  • Se o FQDN com o qual o cluster foi criado não for resolvível na rede, o DNS falhará.
    • Resolução: recrie o cluster local com o IP primário do anfitrião. Esta falha é por predefinição.
  • Ao depurar um contentor, os registos do Docker só estarão disponíveis na janela de saída do Visual Studio, não através de APIs do Service Fabric, incluindo Service Fabric Explorer

Depurar uma aplicação .NET em execução em contentores docker no Service Fabric

  1. Execute o Visual Studio como administrador.

  2. Abra uma aplicação .NET existente ou crie uma nova.

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

  4. Prima F5 para iniciar a depuração da aplicação.

    O Visual Studio suporta tipos de consola e ASP.NET projetos para .NET e .NET Core.

Passos seguintes

Para saber mais sobre as capacidades do Service Fabric e dos contentores, veja Descrição geral dos contentores do Service Fabric.