Como configurar o Stackdriver Debugger para .NET Core

Esta página descreve como configurar seu ambiente e seu aplicativo .NET Core para usar o Stackdriver Debugger. Para alguns ambientes, é preciso especificar explicitamente o escopo de acesso para permitir que o agente do Stackdriver Debugger envie dados. Recomendamos definir o escopo de acesso da forma mais ampla possível e, em seguida, usar o Cloud Identity and Access Management para restringir o acesso. Para manter essa prática recomendada, defina o escopo de acesso para todas as APIs Cloud com a opção cloud-platform.

Antes de começar

  • Para usar o Stackdriver Debugger ao executar seu aplicativo localmente:

    • Defina a variável de ambiente GOOGLE_APPLICATION_CREDENTIALS com as credenciais adequadas.
    • Adicione a variável de ambiente STACKDRIVER_DEBUGGER_PROJECT ao projeto em que você gostaria que o Stackdriver Debugger fosse executado.
  • Ao criar o aplicativo .NET Core, certifique-se de adicionar e implantar arquivos PDB com seu código. Exemplo:

    ...
    <PropertyGroup>
      <TargetFramework>netcoreapp2.0</TargetFramework>
      <DebugType>portable</DebugType>
    </PropertyGroup>
    ...
    
  • Observe que, ao depurar uma versão Release, as variáveis podem ser nomeadas incorretamente ou estar ausentes.

Ambiente padrão do App Engine

O agente do Stackdriver Debugger para .NET Core não é aceito no ambiente padrão do App Engine.

Ambiente flexível do App Engine

  1. Altere o runtime no seu app.yaml para custom:

    runtime: custom
    env: flex
    
  2. Use um Dockerfile personalizado:

    FROM gcr.io/dotnet-debugger/aspnetcore:2.0
    COPY . /app
    WORKDIR /app
    # If you don't have source context delete the below line.
    # See 'Selecting Source Code Automatically' below for more information.
    COPY ./source-context.json /usr/share/dotnet-debugger/agent/
    ENTRYPOINT ["/usr/share/dotnet-debugger/start-debugger.sh", "dotnet", "APPLICATION.dll"]
    

    Em que:

    • APPLICATION é o aplicativo que você quer executar e depurar.

Agora, o depurador está pronto para ser usado com o aplicativo.

Para que a página "Depuração" no Console do GCP mostre automaticamente o código-fonte correspondente ao aplicativo implantado, consulte Como selecionar o código-fonte automaticamente.

Google Kubernetes Engine

  1. Crie seu cluster com um dos seguintes escopos de acesso:
    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger

    Para criar um cluster usando o gcloud, faça o seguinte:

    1. Atualize o gcloud para a versão mais recente (opcional):
      gcloud components update
    2. Defina o código do projeto padrão:
      gcloud config set project [PROJECT_ID]
    3. Se você estiver trabalhando com clusters zonais, defina a zona de computação padrão:
      gcloud config set compute/zone [COMPUTE_ZONE]
    4. Se você estiver trabalhando com clusters regionais, defina a região de computação padrão:
      gcloud config set compute/region [COMPUTE_REGION]
    5. Execute o comando de criação:
      gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform

    Para informações mais detalhadas, consulte Como criar um cluster.

  2. Use um Dockerfile personalizado:
    FROM gcr.io/dotnet-debugger/aspnetcore:2.0
    COPY . /app
    WORKDIR /app
    # If you don't have source context delete the below line.
    # See running locally below for more information.
    COPY ./source-context.json /usr/share/dotnet-debugger/agent/
    ENV STACKDRIVER_DEBUGGER_MODULE=MODULE
    ENV STACKDRIVER_DEBUGGER_VERSION=VERSION
    # If running locally uncomment and set the following:
    # ENV STACKDRIVER_DEBUGGER_PROJECT=PROJECT_ID
    # ENV GOOGLE_APPLICATION_CREDENTIALS=CREDENTIALS_FILE
    ENTRYPOINT ["/usr/share/dotnet-debugger/start-debugger.sh", "dotnet", "APPLICATION.dll"]
    

    Em que:

    • MODULE é o nome do aplicativo. Juntamente com a versão, identifica o aplicativo no Console do GCP. Exemplos: MyApp, Backend ou Frontend;
    • VERSION é a versão do aplicativo (como o código da versão). O Console do GCP mostra o aplicativo em execução como MODULE - VERSION. Exemplos: v1.0, build_147 ou v20160520;
    • PROJECT_ID é o código do projeto do Console do GCP;
    • CREDENTIALS_FILE é o caminho para a conta de serviço ou o arquivo JSON da credencial;
    • APPLICATION é o ponto de entrada para o aplicativo.

Agora, o depurador está pronto para ser usado com o aplicativo.

Para que a página "Depuração" no Console do GCP mostre automaticamente o código-fonte correspondente ao aplicativo implantado, consulte Como selecionar o código-fonte automaticamente.

Compute Engine

O agente do Stackdriver Debugger para .NET Core não é aceito no ambiente do Compute Engine.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Stackdriver Debugger