Fehler in einem lokal ausgeführten Dienst in Cloud Code for IntelliJ beheben

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:

  1. Rufen Sie in der Navigationsleiste die Konfigurationsauswahl Run/Debug auf und klicken Sie auf Edit Configurations.
  2. Wählen Sie Cloud Run: Run Locally unter Cloud Code: Cloud Run.
  3. Klicken Sie auf OK.

Fehler in Ihrem Dienst beheben

So beheben Sie Fehler in Ihrer Dienst:

  1. Klicken Sie bei Cloud Run: Locally (Cloud Run: Lokal ausführen) auf Aktionssymbol "Fehlerbehebung" Debug (Fehlerbehebung), um den Entwicklungszyklus im Debug-Modus zu starten.

    Klicken Sie auf Cloud Run: Run locally im Fehlerbehebungs-Modus

  2. 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").

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

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

    Ereignisprotokoll mit erfolgreicher Bereitstellungsbenachrichtigung und URL, um eine Vorschau Ihres Service anzuzeigen

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

    Quellort im Bereich "Quellzuordnung" auf dem Tab "Fehlerbehebung" auswählen

    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.

    Remote-Pfadzuordnungsdialog für jedes Artefakt, das den verwendeten Remote-Pfad angibt

    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.

Support kontaktieren

So senden Sie Feedback oder melden ein Problem in Ihrer IntelliJ-IDE: Tools > Cloud Code > Hilfe / Info > Feedback geben oder Problem melden, um ein Problem auf GitHub zu melden oder stellen Sie eine Frage zu Stack Overflow.