Mit Cloud Code können Sie Fehler in Cloud Run-Service lokal in einer Cloud Run-ähnlichen Umgebung beheben. Sie können Haltepunkte festlegen, Ihren Code durcharbeiten und Fehler in Remote-Services beheben, die in Containern ausgeführt werden.
Mit Cloud Code können Sie auch Fehler in einer Anwendung beheben, während Sie Änderungen am Quellcode vornehmen und iterieren.
Debugging-Konfiguration definieren
Bevor Sie Ihren Service debuggen, müssen Sie Ihre Fehlerbehebungskonfiguration erstellen:
- Rufen Sie in der Navigationsleiste die Konfigurationsauswahl Run/Debug auf und klicken Sie auf Edit Configurations.
- Wählen Sie Cloud Run: Run Locally unter Cloud Code: Cloud Run.
- Klicken Sie auf OK.
Fehler in Ihrem Dienst beheben
So beheben Sie Fehler in Ihrer Dienst:
Klicken Sie bei Cloud Run: Locally (Cloud Run: Lokal ausführen) auf Debug (Fehlerbehebung), um den Entwicklungszyklus im Debug-Modus zu starten.
Cloud Code hängt dann eine Debug-Sitzung an. Nach Abschluss des Vorgangs wird das Fenster mit dem Debugging-Tool geöffnet und die Verbindung bestätigt (auf dem Tab "Console").
Klicken Sie auf den Bundsteg bei der ausführbaren Zeile des Codes, bei der Sie einen Haltepunkt hinzufügen möchten.
Rot ausgefüllte Kreise kennzeichnen aktive Haltepunkte, während rot umrandete Kreise deaktivierte Haltepunkte angeben.
Klicken Sie auf die URL, die im Steuerfeld "Ereignisprotokoll" angezeigt wird, um auf den ausgeführten Service zuzugreifen.
In diesem Fall wird eine neue Anfrage an Ihren Service gesendet und an der als Ausfall markierten Zeile angehalten.
Zum Beenden der Fehlerbehebungssitzung klicken Sie auf das Stoppsymbol in der Cloud Run: Konfiguration lokal ausführen.
Unterstützte IDEs
In der folgenden Tabelle sind die Sprachen und IDEs aufgeführt, die Cloud Code für das Debugging unterstützt. In der Tabelle sind gegebenenfalls auch die erforderlichen Plug-ins aufgeführt:
Sprache | Unterstützte IDEs und Versionen | Erforderliches Plug-in |
---|---|---|
Java | IntelliJ IDEA Ultimate | – |
IntelliJ IDEA-Community | – | |
Einfach loslegen (Go) | IntelliJ IDEA Ultimate | Go-Plug-in |
GoLand | – | |
Node.js | IntelliJ IDEA Ultimate | Node.js-Plug-in |
WebStorm | – | |
Python | IntelliJ IDEA Ultimate | Python-Plug-in |
PyCharm Professional | – |
Weitere Informationen zur IDE-Unterstützung finden Sie unter Unterstützte JetBrains-IDEs.
Mit Cloud Code können Sie Haltepunkte festlegen und Fehler in Remote-Anwendungen beheben, die in Containern für die folgenden Sprachen ausgeführt werden:
Java
Cloud Code fügt automatisch die Umgebungsvariable JAVA_TOOL_OPTIONS
mit der entsprechenden JDWP-Konfiguration hinzu, um die Fehlerbehebung zu aktivieren. Wenn JAVA_TOOL_OPTIONS
bereits vorhanden ist, verwendet Cloud Code die in JAVA_TOOL_OPTIONS
angegebenen Einstellungen.
Node.js
Je nach Struktur Ihrer Anwendung und ihrer Image-Build-Konfiguration müssen Sie möglicherweise helfen, dass der Debugger Ihre lokalen Quellen den Remotequellen im Container zuordnet. Dadurch kann der Node.txt-Debugger Ihre Haltepunkte ordnungsgemäß verarbeiten.
Dies kann auf eine der folgenden Arten geschehen:
Manuelle Konfiguration
Wählen Sie im Drop-down-Menü Cloud Run: Run locally die Konfiguration aus und klicken Sie dann auf Konfigurationen bearbeiten. Konfigurieren Sie im Tab Debugging die Quellzuordnung von Ihrer lokalen Anwendungsquelle zum Quellspeicherort im Remote-Container.
Konfigurationsoptionen:
- Datei/Verzeichnis: die lokale Datei oder das lokale Verzeichnis Ihrer Anwendung, die in Cloud Run ausgeführt wird.
- Remote Path: der Pfad zur Datei oder dem Verzeichnis, die im Container in Cloud Run ausgeführt wird.
Automatische Konfiguration
Sie können diese Zuordnung zu Cloud Code aufheben. Wenn Sie die Fehlerbehebungssitzung starten, versucht Cloud Code, diese Zuordnung automatisch abzuleiten. Die abgeleitete Zuordnung wird Ihnen in einem Dialogfeld angezeigt. Ein Dialogfeld für jedes Artefakt, das Sie debuggen.
Konfigurationsoptionen:
- Lokaler Pfad: der lokale Pfad zum Stammverzeichnis des Artefakts, für das Sie eine Fehlerbehebung durchführen
- Remote Path: der Pfad zur Datei oder dem Verzeichnis, die im Container in Cloud Run ausgeführt wird. Sie können diese Einstellung mit einem eigenen Wert überschreiben. Wenn Sie auf Abbrechen klicken, wird keine Zuordnung angewendet.
Einfach loslegen (Go)
Um Ihre Anwendung für die Fehlerbehebung zu konfigurieren, muss Ihre Anwendung eine auf dem Go-Modul basierende Anwendung sein und als Go-basiert identifiziert werden, indem Sie eine der Standard-Umgebungsvariablen der Go-Laufzeit im Container einstellen, z. B. GODEBUG
, GOGC
, GOMAXPROCS
oder GOTRACEBACK
. GOTRACEBACK=single
ist die Standardeinstellung für Go und GOTRACEBACK=all
eine allgemeine nützliche Konfiguration.
Optional (aber empfohlen) sollte Ihre Anwendung mit den -gcflags='all=-N -l'
-Optionen erstellt werden, um Optimierungen zu deaktivieren. Skaffold-Profile sind für diesen Zweck nützlich und können in Ihrer Ausführungskonfiguration auf dem Tab Build/Bereitstellen mit dem Feld Bereitstellungsprofil festgelegt werden.
Python
Um Ihre Anwendung für das Debugging zu konfigurieren, müssen die folgenden Voraussetzungen erfüllt sein:
IDE, Edition und Plug-in sind kompatibel
Kompatible IDEs, Versionen und Plug-ins finden Sie unter Unterstützte IDEs.
Skaffold-Version ist 1.25.0 oder höher
Sie können Cloud Code die Verwaltung Ihrer Abhängigkeiten erlauben oder auf eine lokale Skaffold-Installation verweisen. Weitere Informationen finden Sie unter Einstellungen > Tools > Cloud Code > Abhängigkeiten.
Python-Interpreter ist konfiguriert
Ohne einen in Ihrem Projekt konfigurierten Python-Interpreter funktioniert das Debugging nicht, da es keine Möglichkeit gibt,
pydevd
, den zugrunde liegenden Python-Debugger, auszuführen.IDE Konfiguration IntelliJ IDEA Für die Python-Fehlerbehebung mit Cloud Code muss ein Python-SDK für Ihr Projekt konfiguriert sein.
Rufen Sie Datei > Projektstruktur auf und fügen Sie auf dem Tab Projekt ein Python SDK hinzu. Falls keine vorhanden sind, fügen Sie auf dem Tab SDK eines hinzu.PyCharm Wählen Sie unter Datei > Einstellungen > Projekt > Python-Interpreter oder für Mac OS X PyCharm > Einstellungen > Projekt > Python-Interpreter einen Python-Interpreter aus.
Weitere Informationen finden Sie in der Skaffold-Debugging-Dokumentation.