Fehler in einem Cloud Run-Dienst in Cloud Code for VS Code beheben

Mit Cloud Code for VS Code können Sie mithilfe von skaffold debug ganz einfach Fehler in einer Anwendung beheben, die in Cloud Run bereitgestellt wurde. Ausführliche Informationen zum Skaffold-Debugging finden Sie unter Debugging mit Skaffold.

Sie müssen keine manuelle Einrichtung wie das Einrichten der Portweiterleitung oder das Einfügen von sprachspezifischen Debug-Argumenten vornehmen. Für die Fehlerbehebung ist ein Cloud Code-fähige Cloud Run-Anwendung die eine skaffold.yaml-Konfigurationsdatei und eine launch.json-Datei mit Geben Sie cloudcode.cloudrun ein.

Fehler im Cloud Run-Dienst beheben

So beheben Sie Fehler in Ihrer Dienst:

  1. Öffnen Sie das Befehlspalette (drücken Sie Ctrl/Cmd+Shift+P oder klicken Sie auf Ansicht > Befehlspalette) und führen Sie dann den Befehl Debug on Cloud Run Emulator aus.

  2. 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) So geben Sie ein Dockerfile-Ziel oder Build-Argumente an: klicken Sie auf Erweiterte Build-Einstellungen anzeigen und geben Sie das Ziel oder Argumente.
    • Optional: Wenn Sie einen benutzerdefinierten Dienstnamen, eine Container-Image-URL, einen Containerport, die Identität des zu verwendenden Dienstes, die Anzahl der dedizierten CPUs oder die Größe des Arbeitsspeichers angeben möchten, der jeder Containerinstanz zugewiesen werden soll, klicken Sie auf Erweiterte Diensteinstellungen anzeigen und geben Sie die Werte an.
    • Optional: Hier können Sie Umgebungsvariablen Klicken Sie auf Erweiterte Diensteinstellungen anzeigen und dann auf Umgebungsvariablen. und geben dann die Werte an.
    • Optional: Wenn Sie Cloud SQL-Verbindungen angeben möchten, 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 Ihren Code ändern, überprüfen Sie die Automatisch neu erstellen und bei Änderungen ausführen.

    Wenn Sie die Ausführung Ihres Diensts weiter anpassen möchten, können Sie die Datei launch.json direkt bearbeiten.

  3. Klicken Sie auf Fehlerbehebung, um mit der Fehlerbehebung Ihres Dienstes zu beginnen.

  4. Wenn Sie dazu aufgefordert werden, authentifizieren Sie Ihre Anmeldedaten, um eine Anwendung lokal.

  5. 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 die Fehlerbehebung für einen Container zu überspringen.

    Remote-Root-Aufforderung

    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.

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

    Abschnitt "Breakpoints" im linken Bereich der Fehlerbehebungsansicht, über die Haltepunkte hinzugefügt, entfernt und deaktiviert werden können

    Wenn Sie eine neue Anfrage an Ihren Dienst senden, wird er in der von Ihnen angegebenen Zeile pausiert.

  7. Klicken Sie nach Abschluss der Sitzung mit der rechten Maustaste, um folgende Befehle auszuführen:

    • Logs ansehen: Öffnen Sie die Anwendungslogs einer bestimmten Bereitstellung mit dem Cloud Code Log-Explorer.
    • URL öffnen: Öffnen Sie die Anwendungsdienst-URL eines bestimmten Dienstes in einem Webbrowser.
  8. Wenn Sie den Überwachungsmodus in der Startkonfiguration deaktiviert haben und Sie Änderungen an Ihrer Anwendung vornehmen und die Anwendung neu erstellen und noch einmal bereitstellen möchten, klicken Sie auf die Cloud Code-Statusleiste und dann auf Überwachungsmodus aktivieren.

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

  10. Klicken Sie in der Aktionsleiste Ihrer aktuellen Bereitstellung auf die Schaltfläche Beenden, um die Bereitstellung zu beenden.

    Aktionsleiste für die Cloud Run-Bereitstellung

Probleme bei der Containererstellung beheben

Wenn Sie den Fehlercode BUILD_DOCKER_UNKNOWN erhalten, weist dies auf ein Probleme mit Docker auftreten. Führen Sie einen oder mehrere der folgenden Schritte aus, um dieses Problem zu beheben:

  • Starten Sie Docker neu und versuchen Sie noch einmal, den Container zu erstellen.

  • Wenn der Fehler nach dem Neustart weiterhin auftritt, ist möglicherweise der Speicherplatz von Docker aufgebraucht. 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 folgende sprachspezifische Konfiguration Details:

Node.js

Neuschreiben des Einstiegspunkts, der aufgerufen werden soll:

node --inspect=localhost:9229

Python

Modul ptvsd mit einem Init-Container installieren und den aufzurufender Einstiegspunkt:

python -m ptvsd --host localhost --port 5678

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 für VS Code so konfiguriert, dass sie zusammen mit vsdbg bereitgestellt werden.

Informationen zu Problemen mit der automatischen Konfiguration finden Sie unter Detaillierte Debugger-Konfiguration und -Einrichtung .

Support anfragen

Wenn Sie uns Feedback geben möchten, können Sie Probleme auf GitHub melden oder eine Frage in Stack Overflow stellen.