Cloud Debugger für .NET Core einrichten

Überblick

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

Sprachversionen und Computing-Umgebungen

Cloud Debugger ist für .NET Core 1.0 und höher in den folgenden Rechenumgebungen verfügbar:

App Engine-Standardumgebung Flexible App Engine-Umgebung Compute Engine Google Kubernetes Engine Cloud Run Cloud Run for Anthos auf Google Cloud Andernorts ausgeführte VMs und Container Cloud Functions

Cloud Debugger einrichten

Führen Sie die folgenden Aufgaben aus, um Cloud Debugger einzurichten:

  1. Prüfen Sie, ob die Cloud Debugger API für Ihr Projekt aktiviert ist.

  2. Installieren und konfigurieren Sie den Debugger in der von Ihnen verwendeten Rechenumgebung.

  3. Wählen Sie den Quellcode aus.

Prüfen, ob die Cloud Debugger API aktiviert ist

Wenn Sie Cloud Debugger verwenden möchten, muss die Cloud Debugger API aktiviert sein. Cloud Debugger ist für die meisten Projekte standardmäßig aktiviert.
Cloud Debugger API aktivieren

App Engine-Standardumgebung

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

    Wobei:

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

Die Operations-Suite von Google Cloud kann jetzt mit Ihrer Anwendung verwendet werden.

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

    Wobei:

    • 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.

KONSOLE

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 Cloud Debugger-Agent für .NET Core wird in der Compute Engine-Umgebung nicht unterstützt.

Lokal

So verwenden Sie die Operations-Suite von Google Cloud beim Ausführen Ihrer Anwendung:

  • 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 die Umgebungsvariable STACKDRIVER_DEBUGGER_DEBUGGER so fest, dass sie auf einen Speicherort der Binärdatei der Operations-Suite von Google Cloud verweist.
  • Bei Ausführung unter Linux legen Sie für die Umgebungsvariable LD_LIBRARY_PATH fest, dass das Verzeichnis der Operations-Suite von Google Cloud eingebunden ist.

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.