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
- No Windows 10, siga este início rápido para Configurar o Windows 10 para executar contêineres do Windows
- No Windows Server 2016, siga este início rápido para Configurar o Windows 2016 para executar contêineres do Windows
- Configure seu ambiente local do Service Fabric seguindo Preparar seu ambiente de desenvolvimento no Windows
Configurar seu ambiente de desenvolvedor para depurar contêineres
Verifique se o serviço Docker for Window está em execução antes de prosseguir com a próxima etapa.
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.
Abra o PowerShell como administrador
Navegue até a pasta de configuração do SDK Cluster, normalmente
C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup
.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.
- Resolução: desative o descarregamento da soma de verificação UDP para IPv4 na NIC de máquinas virtuais
- A execução do Windows10 degradará o desempenho de rede na máquina.
- https://github.com/Azure/service-fabric-issues/issues/1061
- 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
- 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 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
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 ao Container Orchestrator -> Service Fabric
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.