Saiba como: depurar contêineres do Windows no Azure Service Fabric com 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 do Service Fabric local.
Pré-requisitos
- No Windows 10, siga este guia de início rápido para Configurar o Windows 10 para executar contêineres do Windows
- No Windows Server 2016, siga este guia de início rápido para Configurar o Windows 2016 para executar contêineres do Windows
- Configurar seu ambiente do Service Fabric local seguindo Preparar seu ambiente de desenvolvimento no Windows
Configurar seu ambiente de desenvolvedor para depurar contêineres
Verifique se que o serviço Docker for Windows está em execução antes de prosseguir com a próxima etapa.
Para dar suporte à resolução DNS entre contêineres, você precisará configurar o cluster de desenvolvimento local usando o nome do computador. Essas etapas também são necessárias para serviços de endereço por meio do proxy reverso.
Abra o PowerShell como administrador
Navegue até a pasta de instalação do Cluster do SDK, normalmente
C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup
.Execute o script
DevClusterSetup.ps1
C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup\DevClusterSetup.ps1
Observação
Você pode usar o
-CreateOneNodeCluster
para configurar um cluster de um nó. O padrão irá criar um cluster de cinco nós local.Para saber mais sobre o Serviço DNS no Service Fabric, consulte Serviço DNS no Azure Service Fabric. Para saber mais sobre o uso do Service Fabric proxy reverso de serviços em execução em um contêiner, consulte Tratamento especial de proxy reverso para serviços em execução em contêineres.
Limitações conhecidas durante a depuração de Service Fabric
Abaixo está uma lista de limitações conhecidas com contêineres de depuração no Service Fabric e as possíveis resoluções:
- Usar localhost para ClusterFQDNorIP não será compatível com a resolução DNS em contêineres.
- Resolução: configurar o cluster local usando o nome do computador (veja acima)
- Executar Windows10 em uma Máquina Virtual não enviará a resposta DNS de volta para o contêiner.
- Resolução: desabilitar o descarregamento de soma de verificação de UDP para IPv4 no NIC de Máquinas Virtuais
- Observe que isso prejudicará o desempenho da rede no computador.
- https://github.com/Azure/service-fabric-issues/issues/1061
- Resolver serviços no mesmo aplicativo usando o nome de serviço DNS não funcionará no Windows10 se o aplicativo tiver sido implantado com o Docker Compose
- Resolução: use servicename.applicationname para resolver pontos de extremidade de serviço
- https://github.com/Azure/service-fabric-issues/issues/1062
- Se estiver usando o endereço IP para ClusterFQDNorIP, alterar o IP primário no host interromperá a funcionalidade DNS.
- Resolução: recrie o cluster usando o novo IP primário no host ou use o nome do computador. Essa interrupção é padrão.
- 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. Essa falha é padrão.
- Durante a depuração de um contêiner, os logs de 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
Execute o Visual Studio como administrador.
Abra um aplicativo .NET existente ou crie um novo.
Clique com o botão direito do mouse no projeto e selecione Adicionar –> Suporte de Orquestrador de Contêineres –> Service Fabric
Pressione F5 para iniciar a depuração do aplicativo.
O Visual Studio oferece suporte ao console e aos tipos de projeto de ASP.NET para .NET e .NET Core.
Próximas etapas
Para saber mais sobre as funcionalidades do Service Fabric e dos contêineres, confira Visão geral dos contêineres do Service Fabric.