Como: Depurar contêineres do Windows no Azure Service Fabric usando o Visual Studio 2019How to: Debug Windows containers in Azure Service Fabric using Visual Studio 2019

Com o Visual Studio 2019, você pode depurar aplicativos .NET em contêineres como Service Fabric Services.With Visual Studio 2019, you can debug .NET applications in containers as Service Fabric services. Este artigo mostra como configurar seu ambiente e depurar um aplicativo .NET em um contêiner em execução em um cluster de Service Fabric local.This article shows you how to configure your environment and then debug a .NET application in a container running in a local Service Fabric cluster.

Pré-requisitosPrerequisites

Configurar seu ambiente de desenvolvedor para depurar contêineresConfigure your developer environment to debug containers

  1. Verifique se o Docker para o serviço Window está em execução antes de prosseguir com a próxima etapa.Make sure the Docker for Window service is running before proceeding with the next step.

  2. Para dar suporte à resolução de DNS entre contêineres, você precisará configurar seu cluster de desenvolvimento local usando o nome do computador.To support DNS resolution between containers, you'll have to set up your local development cluster, using the machine name. Essas etapas também serão necessárias se você quiser endereçar serviços por meio do proxy reverso.These steps are also necessary if you want to address services through the reverse proxy.

    1. Abrir o PowerShell como administradorOpen PowerShell as administrator

    2. Navegue até a pasta de instalação do cluster do C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetupSDK, normalmente.Navigate to the SDK Cluster setup folder, typically C:\Program Files\Microsoft SDKs\Service Fabric\ClusterSetup.

    3. Executar o scriptDevClusterSetup.ps1Run the 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ó.You can use the -CreateOneNodeCluster to setup a one-node cluster. O padrão criará um cluster local de cinco nós.The default will create a local five-node cluster.

      Para saber mais sobre o serviço DNS no Service Fabric, consulte serviço DNS no Azure Service Fabric.To learn more about the DNS Service in Service Fabric, see DNS Service in Azure Service Fabric. Para saber mais sobre como usar 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.To learn more about using Service Fabric reverse proxy from services running in a container, see Reverse proxy special handling for services running in containers.

Limitações conhecidas ao depurar contêineres no Service FabricKnown limitations when debugging containers in Service Fabric

Abaixo está uma lista de limitações conhecidas com contêineres de depuração em Service Fabric e possíveis resoluções:Below is a list of known limitations with debugging containers in Service Fabric and possible resolutions:

  • Usar localhost para ClusterFQDNorIP não dará suporte à resolução de DNS em contêineres.Using localhost for ClusterFQDNorIP won't support DNS resolution in containers.
    • Resolução: Configurar o cluster local usando o nome do computador (veja acima)Resolution: Set up the local cluster using machine name (see above)
  • Executar o Windows10 em uma máquina virtual não fará a resposta DNS de volta para o contêiner.Running Windows10 in a Virtual Machine won't get DNS reply back to the container.
    • Resolução: Desabilitar o descarregamento de soma de verificação UDP para IPv4 na NIC de máquinas virtuaisResolution: Disable UDP checksum offload for IPv4 on the Virtual Machines NIC
    • A execução de Windows10 diminuirá o desempenho da rede no computador.Running Windows10 will degrade networking performance on the machine.
    • https://github.com/Azure/service-fabric-issues/issues/1061
  • Resolver serviços no mesmo aplicativo usando o nome do serviço DNS não funciona em Windows10, se o aplicativo tiver sido implantado usando Docker ComposeResolving services in same application using DNS service name doesn't work on Windows10, if the application was deployed using Docker Compose
  • Se você estiver usando o endereço IP para ClusterFQDNorIP, a alteração do IP primário no host interromperá a funcionalidade do DNS.If using IP-address for ClusterFQDNorIP, changing primary IP on the host will break DNS functionality.
    • Resolução: Recrie o cluster usando o novo IP primário no host ou use o nome do computador.Resolution: Recreate the cluster using the new primary IP on the host or use machine name. Essa quebra é por design.This breakage is by design.
  • Se o FQDN no qual o cluster foi criado não puder ser resolvido na rede, o DNS falhará.If the FQDN the cluster was created with isn't resolvable on the network, DNS will fail.
    • Resolução: Recrie o cluster local usando o IP primário do host.Resolution: Recreate the local cluster using the primary IP of the host. Essa falha é por design.This failure is by 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 de Service Fabric, incluindo Service Fabric ExplorerWhen debugging a container, docker logs will only be available in the Visual Studio output window, not through Service Fabric APIs, including Service Fabric Explorer

Depurar um aplicativo .NET em execução em contêineres do Docker no Service FabricDebug a .NET application running in docker containers on Service Fabric

  1. Execute o Visual Studio como administrador.Run Visual Studio as an administrator.

  2. Abra um aplicativo .NET existente ou crie um novo.Open an existing .NET application or create a new one.

  3. Clique com o botão direito do mouse no projeto e selecione adicionar > contêiner de suporte do Orchestrator-> Service FabricRight-click the project and select Add -> Container Orchestrator Support -> Service Fabric

  4. Pressione F5 para iniciar a depuração do aplicativo.Press F5 to start debugging the application.

    O Visual Studio dá suporte a tipos de projeto de console e ASP.NET para .NET e .NET Core.Visual Studio supports console and ASP.NET project types for .NET and .NET Core.

Passos seguintesNext steps

Para saber mais sobre os recursos de Service Fabric e contêineres, consulte visão geralde contêineres de Service Fabric.To learn more about the capabilities of Service Fabric and containers, see Service Fabric containers overview.