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
- No Windows 10, siga este início rápido para Configurar Windows 10 para executar contentores do Windows
- No Windows Server 2016, siga este início rápido para Configurar o Windows 2016 para executar contentores do Windows
- Configure o seu ambiente local do Service Fabric ao seguir Preparar o seu ambiente de desenvolvimento no Windows
Configurar o ambiente de programador para depurar contentores
Certifique-se de que o serviço Docker for Window está em execução antes de prosseguir com o passo seguinte.
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.
Abrir o PowerShell como administrador
Navegue para a pasta de configuração do Cluster do SDK, 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
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.
- Resolução: Desativar a descarga da soma de verificação UDP para IPv4 na NIC do Máquinas Virtuais
- A execução do Windows10 irá degradar o desempenho da rede no computador.
- https://github.com/Azure/service-fabric-issues/issues/1061
- 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
- Resolução: Utilizar servicename.applicationname para resolver pontos finais de serviço
- https://github.com/Azure/service-fabric-issues/issues/1062
- 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
Execute o Visual Studio como administrador.
Abra uma aplicação .NET existente ou crie uma nova.
Clique com o botão direito do rato no projeto e selecione Adicionar –> Suporte do Container Orchestrator –> Service Fabric
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.