Übersicht
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 bis 2.1 in den folgenden Rechenumgebungen verfügbar:
App Engine-Standardumgebung | Flexible App Engine-Umgebung | Compute Engine | Google Kubernetes Engine | Cloud Run | Cloud Run for Anthos | Andernorts ausgeführte VMs und Container | Cloud Functions |
---|---|---|---|---|---|---|---|
Cloud Debugger einrichten
Führen Sie die folgenden Aufgaben aus, um Cloud Debugger einzurichten:
Prüfen Sie, ob die Cloud Debugger API für Ihr Projekt aktiviert ist.
Installieren und konfigurieren Sie den Debugger in der von Ihnen verwendeten Rechenumgebung.
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 standardmäßig für die meisten Projekte 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
Ändern Sie die
runtime
in Ihrer Datei "app.yaml" incustom
:runtime: custom env: flex
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.
Unter Quellcode automatisch auswählen erfahren Sie, wie in der Google Cloud Console auf der Seite „Fehlerbehebung“ automatisch Quellcode angezeigt wird, der mit der bereitgestellten Anwendung übereinstimmt.
Google Kubernetes Engine
GCLOUD
Mit den folgenden Schritten aktivieren Sie Debugger mit gcloud
:
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
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 identifiziert er die Anwendung in der Google Cloud Console. Beispiele:MyApp
,Backend
oderFrontend
.VERSION
ist die Version der Anwendung, z. B. die Build-ID. In der Google Cloud Console wird die ausgeführte Anwendung alsMODULE - VERSION
angezeigt. Beispiele:v1.0
,build_147
oderv20160520
.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
So aktivieren Sie Debugger mit der Google Cloud Console:
Wählen Sie im Abschnitt Knotenpools die Option Sicherheit und dann Zugriff für jede API festlegen aus.
Debugger aktivieren
Optional: Wählen Sie Uneingeschränkten Zugriff auf alle Cloud-APIs zulassen aus.
Der Debugger ist jetzt bereit für die Verwendung mit Ihrer Anwendung.
Unter Quellcode automatisch auswählen erfahren Sie, wie in der Google Cloud Console auf der Seite „Fehlerbehebung“ automatisch Quellcode angezeigt wird, der mit der bereitgestellten Anwendung übereinstimmt.
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 wird in der Google Cloud Console-Liste der Module angezeigt, die zur Fehlerbehebung zulässig sind. - Legen Sie für die Umgebungsvariable
STACKDRIVER_DEBUGGER_VERSION
die logische Version des Moduls fest, für das das Debugging ausgeführt wird. Dies ermöglicht die Fehlerbehebung für mehrere logische Versionen des Moduls in der Google Cloud Console. - 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.