Mit Cloud Code for VS Code können Sie mit skaffold debug
auf einfache Weise Fehler in Anwendungen beheben, die in Cloud Run bereitgestellt werden. Ausführliche Informationen zum Skaffold-Debugging finden Sie unter Fehlerbehebung mit Skaffold.
Sie müssen keine manuelle Einrichtung wie die Portweiterleitung einrichten oder sprachspezifische Debugging-Argumente einfügen. Für die Fehlerbehebung ist eine Cloud Code-fähige Cloud Run-Anwendung erforderlich, die eine skaffold.yaml
-Konfigurationsdatei und eine launch.json
-Datei vom Typ cloudcode.cloudrun
enthält.
Fehler im Cloud Run-Dienst beheben
So beheben Sie Fehler in Ihrer Dienst:
Öffnen Sie die Befehlspalette, um den Dienst auszuführen und eine Debugger-Sitzung hinzuzufügen. Drücken Sie dazu
Ctrl
/Cmd
+Shift
+P
oder klicken Sie auf Ansicht > Befehlspalette. Führen Sie dann den Befehl Debug on Cloud Run Emulator aus.Legen Sie im Dialogfeld „Ausführen/Debuggen im Cloud Run-Emulator“ die Spezifikationen für Ihre Konfiguration fest:
- Wählen Sie Docker oder Buildpacks als Builder aus und geben Sie dann das Dockerfile oder Buildpack an.
- (Optional) Um ein Dockerfile-Ziel oder Build-Argumente anzugeben, klicken Sie auf Erweiterte Build-Einstellungen anzeigen und geben Sie dann das Ziel oder die Argumente an.
- (Optional) Klicken Sie auf Erweiterte Diensteinstellungen anzeigen und geben Sie die Werte an, um einen benutzerdefinierten Dienstnamen, eine Container-Image-URL, einen Containerport, eine Identität für den zu verwendenden Dienst, die Anzahl der dedizierten CPUs oder die Speichermenge anzugeben, die jeder Containerinstanz zugewiesen werden soll.
- Optional: Wenn Sie Umgebungsvariablen angeben möchten, klicken Sie auf Erweiterte Diensteinstellungen anzeigen, dann auf Umgebungsvariablen und geben Sie dann die Werte an.
- (Optional) Um Cloud SQL-Verbindungen anzugeben, klicken Sie auf Verbindungen und geben Sie dann eine Verbindung pro Zeile an.
- (Optional) Wenn Sie möchten, dass VS Code eine Debugging-Sitzung neu startet, nachdem Sie eine Änderung am Code gespeichert haben, klicken Sie das Kästchen Automatisch neu erstellen und bei Änderungen wieder ausführen an.
Wenn Sie die Ausführung des Dienstes weiter anpassen möchten, können Sie die Datei
launch.json
direkt bearbeiten.Klicken Sie auf Fehlerbehebung, um mit der Fehlerbehebung Ihres Dienstes zu beginnen.
Wenn Sie dazu aufgefordert werden, authentifizieren Sie Ihre Anmeldedaten, um eine Anwendung lokal auszuführen und Fehler zu beheben.
Bestätigen oder geben Sie für jeden debugfähigen Container in Ihrem Dienst das Verzeichnis im Remote-Container ein, in dem sich das Programm befindet, für das das Debugging durchgeführt werden soll.
Alternativ können Sie
ESC
drücken, um das Debugging für einen Container zu überspringen.Cloud Code fügt für jeden debugfähigen Container in dem Dienst eine Debug-Sitzung hinzu.
Wenn Sie eine Änderung an Ihrer Anwendung speichern, stellt Cloud Code Ihre Anwendung standardmäßig noch einmal bereit und richtet eine neue Debug-Sitzung ein. Sie können dieses Feature in der Startkonfiguration Ihres Projekts mit dem Flag
watch
ein- oder ausschalten.Klicken Sie zum Hinzufügen eines Haltepunkts in den Editorrand der Datei, für die das Debugging ausgeführt wird.
Rot ausgefüllte Kreise kennzeichnen aktive Haltepunkte, während graue leere Kreise deaktivierte Haltepunkte angeben.
Für eine genauere Steuerung der Haltepunkte können Sie den Abschnitt „Haltepunkte“ in der Fehlerbehebungsansicht von VS Code verwenden.
Wenn Sie eine neue Anfrage an Ihren Dienst senden, wird er in der von Ihnen angegebenen Zeile pausiert.
Klicken Sie nach Abschluss der Sitzung mit der rechten Maustaste, um folgende Befehle auszuführen:
- View Logs (Logs ansehen): Die Anwendungslogs einer bestimmten Bereitstellung mit dem Cloud Code-Log-Explorer öffnen
- Open URL (URL öffnen): Die Anwendungsdienst-URL eines bestimmten Dienstes in einem Webbrowser öffnen.
Wenn Sie den Watch-Modus in der Startkonfiguration deaktiviert haben und Änderungen an Ihrer Anwendung vornehmen und die Anwendung neu erstellen und neu bereitstellen möchten, klicken Sie auf die Cloud Code-Statusleiste und dann auf Watch-Modus aktivieren.
In der Debugging-Seitenleiste können Sie Variablen und Stack-Informationen prüfen. Verwenden Sie die Debug Console im Debugger im unteren Bereich, um mit der Debugging-Sitzung zu interagieren.
Klicken Sie in der Aktionsleiste Ihrer aktuellen Bereitstellung auf die Schaltfläche Beenden, um die Bereitstellung zu beenden.
Probleme bei der Containererstellung beheben
Wenn Sie den Fehlercode BUILD_DOCKER_UNKNOWN
erhalten, weist dies auf ein Problem mit Docker hin. Führen Sie eine oder mehrere der folgenden Aufgaben aus, um dieses Problem zu beheben:
Starten Sie Docker neu und versuchen Sie noch einmal, den Container zu erstellen.
Wenn Sie nach dem Neustart immer noch den gleichen Fehler erhalten, könnte der Speicherplatz von Docker ausgehen. Weitere Informationen zum Bereinigen nicht verwendeter Objekte in Docker finden Sie unter Nicht verwendete Docker-Objekte bereinigen.
Mit der Docker-Erweiterung Laufwerknutzung können Sie Speicherplatz freigeben.
Konfigurationsdetails
Cloud Code verarbeitet die folgenden sprachspezifischen Konfigurationsdetails:
Node.js
Neuschreiben des Einstiegspunkts, der aufgerufen werden soll:
node --inspect=localhost:9229
Python
Installieren des Moduls ptvsd
mithilfe eines Init-Containers und Umschreiben des aufzurufenden Einstiegspunkts:
python -m ptvsd --host localhost --port 5678
Einfach loslegen (Go)
Installieren des dlv
-Debuggers mit einem Init-Container und Umschreiben des Einstiegspunkts, sodass die gestartete Fehlerbehebungssitzung nur mit einem Fehlerbehebungsserver (im monitorlosen Modus) den Debug-Prozess beim Start fortsetzt, mehrere Client-Verbindungen akzeptiert und unter localhost:56268
empfängt:
dlv exec --headless --continue --accept-multiclient --listen=localhost:56268 --api-version=2, <app> --
Java
Hinzufügen einer Umgebung JAVA_TOOLS_OPTIONS
mit der entsprechenden Java Debug Wire Protocol (JDWP)-Konfiguration, sodass der JDWP-Debugging-Agent eine Socket-Verbindung auf Port 5005 überwacht und die VM mit der Ausführung beginnen kann, bevor der Debugger angehängt wird:
jdwp=transport=dt_socket,server=y,suspend=n,address=5005,quiet=y
.NET
.NET Core-Anwendungen sind so konfiguriert, dass sie zusammen mit vsdbg
für VS Code bereitgestellt werden.
Falls bei der automatischen Konfiguration Probleme auftreten, finden Sie unter Detaillierte Debugger-Konfiguration und -Einrichtung Hilfe bei der Fehlerbehebung.