Stackdriver Debugger für .NET Core einrichten

Auf dieser Seite wird gezeigt, wie Sie Ihre Umgebung und Ihre .NET Core-Anwendung für die Verwendung von Stackdriver Debugger konfigurieren. In einigen Umgebungen müssen Sie, damit der Stackdriver Debugger-Agent Daten senden kann, den Zugriffsbereich explizit angeben. Es wird empfohlen, den größtmöglichen Zugriffsbereich festzulegen und anschließend den Zugriff mit Cloud Identity and Access Management einzuschränken. Geben Sie den Zugriffsbereich entsprechend dieser Best Practice für alle Cloud APIs mit der Option cloud-platform an.

Vorbereitung

Sorgen Sie zur Verwendung von Debugger dafür, dass die Debugger API aktiviert ist.
Debugger API aktivieren

So verwenden Sie den Stackdriver Debugger, während Sie Ihre Anwendung lokal ausführen:

  • Legen Sie fest, dass die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS auf den vollen JSON-Dateipfad des Dienstkontos verweist.
  • Legen Sie für die Umgebungsvariable STACKDRIVER_DEBUGGER_MODULE den Namen der Komponente fest, für die das Debugging ausgeführt wird. Dieser Modulname erscheint in der Cloud Console auf der Liste der Module, für die das Debugging erlaubt ist.
  • Legen Sie für die Umgebungsvariable STACKDRIVER_DEBUGGER_VERSION die logische Version des Moduls fest, für das das Debugging ausgeführt wird. Dadurch wird das Debuggen mehrerer logischer Versionen des Moduls in der Cloud Console ermöglicht.
  • Legen Sie fest, dass die Umgebungsvariable STACKDRIVER_DEBUGGER_DEBUGGER auf einen Speicherort des Stackdriver Debugger-Binärprogramms verweist.
  • Bei Ausführung unter Linux legen Sie für die Umgebungsvariable LD_LIBRARY_PATH fest, dass das Stackdriver Debugger-Verzeichnis eingebunden wird.

Beim Erstellen der .NET Core-Anwendung sollten Sie PDB-Dateien mit Ihrem Code einbinden und bereitstellen. Fügen Sie in jede PDB-Datei die folgenden Zeilen ein:

    <PropertyGroup>
      <TargetFramework>netcoreapp2.1</TargetFramework>
      <DebugType>portable</DebugType>
    </PropertyGroup>

Beachten Sie, dass beim Debuggen für einen Release-Build Variablen möglicherweise falsch benannt werden oder fehlen.

App Engine-Standardumgebung

Der Stackdriver Debugger-Agent für .NET Core wird in der App Engine-Standardumgebung nicht unterstützt.

Flexible App Engine-Umgebung

  1. Ändern Sie die runtime in Ihrer Datei "app.yaml" in custom:

    runtime: custom
    env: flex
    
  2. Verwenden Sie ein benutzerdefiniertes Dockerfile:

    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"]
    

    Dabei gilt:

    • APPLICATION ist das Binärprogramm, das Sie ausführen und debuggen möchten.

Der Stackdriver Debugger ist jetzt bereit für die Verwendung mit Ihrer Anwendung.

Wenn die Seite "Debugging" in der Cloud Console automatisch Quellcode anzeigen soll, der mit der bereitgestellten Anwendung übereinstimmt, beachten Sie die Hinweise unter Quellcode automatisch auswählen.

Google Kubernetes Engine

GCLOUD

Mit den folgenden Schritten aktivieren Sie Debugger mit gcloud:

  1. Erstellen Sie Ihren Cluster mit einem der folgenden Zugriffsbereiche:

    • https://www.googleapis.com/auth/cloud-platform gewährt Ihrem Cluster Zugriff auf alle Google Cloud APIs.

    • https://www.googleapis.com/auth/cloud_debugger gewährt Ihrem Cluster nur Zugriff auf die Debugger API. Verwenden Sie diesen Zugriffsbereich, um die Sicherheit Ihres Clusters zu härten.

    gcloud container clusters create example-cluster-name \
           --scopes=https://www.googleapis.com/auth/cloud_debugger
    
  2. Fügen Sie die folgenden Zeilen dem Dockerfile hinzu, um den Debugger-Agent zu Ihrer containerisierten Anwendung hinzuzufügen:

    FROM gcr.io/dotnet-debugger/aspnetcore:2.0
    COPY . /app
    WORKDIR /app
    # If you don't have the source-context.json file, delete the `COPY` line below.
    # 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 not running on Google Cloud, uncomment and set the following:
    # ENV GOOGLE_APPLICATION_CREDENTIALS=CREDENTIALS_FILE
    ENTRYPOINT ["/usr/share/dotnet-debugger/start-debugger.sh", "dotnet", "APPLICATION.dll"]
    

    Dabei gilt:

    • source-context.json ist die JSON-formatierte Datei, die Ihre Quellkontext-Konfiguration enthält. Informationen zum Erstellen dieser Datei finden Sie unter Quellcode automatisch auswählen.

    • MODULE ist der Name der Anwendung. Zusammen mit der Version wird dadurch die Anwendung in der Cloud Console identifiziert. Beispiele: MyApp, Backend oder Frontend.

    • VERSION ist die Version der Anwendung, z. B. die Build-ID. In der Cloud Console wird die ausgeführte Anwendung in der Form MODULE - VERSION angezeigt. Beispiele: v1.0, build_147 oder v20160520.

    • CREDENTIALS_FILE ist der Pfad zur JSON-Datei mit den Anmeldedaten des Dienstkontos.

    • APPLICATION ist der Einstiegspunkt zur .NET Core-Anwendung, die mit dem angehängten Debugger ausgeführt wird.

Der Debugger ist jetzt einsatzbereit, wenn Sie Ihre containerisierte Anwendung bereitstellen.

Ausführliche Informationen zum Erstellen eines Clusters finden Sie unter Cluster erstellen.

CONSOLE

Führen Sie die folgenden Schritte aus, um Debugger mithilfe der Console zu aktivieren:

  1. Klicken Sie nach der Auswahl des Clustertyps im Bereich Node pools (Knotenpools) auf More options (Weitere Optionen):

    Optionen für Knotenpools

  2. Wählen Sie im Bereich Sicherheit eine der folgenden Optionen aus:

    • Uneingeschränkten Zugriff auf alle Cloud APIs zulassen.

    • Zugriff für jede API festlegen. Wählen Sie anschließend Aktiviert für Cloud Debugger aus.

Der Debugger ist jetzt bereit für die Verwendung mit Ihrer Anwendung.

Wenn die Seite "Debugging" in der Cloud Console automatisch Quellcode anzeigen soll, der mit der bereitgestellten Anwendung übereinstimmt, beachten Sie die Hinweise unter Quellcode automatisch auswählen.

Compute Engine

Der Stackdriver Debugger-Agent für .NET Core wird in der Compute Engine-Umgebung nicht unterstützt.