Fehler in Anwendung beheben

Mit Cloud Code for IntelliJ lassen sich mühelos Fehler in ihren auf einem Kubernetes-Cluster bereitgestellten Anwendungen beheben. Sie können Fehler in einer Anwendung in einem lokalen Cluster (z. B. Minikube oder Docker Desktop), in GKE oder bei einem anderen Cloud-Anbieter beheben.

Außerdem müssen Sie sich beim Cloud Code-Debugging-Support keine Gedanken über eine manuelle Einrichtung machen, z. B. Portweiterleitung einrichten, Debugging-Back-End installieren oder sprachspezifische Debugging-Argumente rechts einfügen, um die Option zu aktivieren. Sie benötigen lediglich eine Cloud Code-fähige Kubernetes-Anwendung mit einer skaffold.yaml-Konfigurationsdatei.

Unterstützte IDEs

Unterstützte IDEs, Versionen und Plug-ins finden Sie in der folgenden Tabelle:

Sprache IDE Edition Erforderliches Plug-in
Java IntelliJ IDEA Gemeinschaft oder Ultimativ
Go IntelliJ IDEA Ultimativ Go-Plug-in
GoLand
Node.js IntelliJ IDEA Ultimativ Node.js-Plug-in
WebStorm
Python IntelliJ IDEA Ultimativ Python-Plug-in
PyCharm Professionell

Mit Cloud Code können Sie für die folgenden Sprachen Haltepunkte festlegen und Fehler bei Remote-Anwendungen beheben, die in Containern ausgeführt werden:

Java

Cloud Code fügt automatisch die Umgebungsvariable JAVA_TOOL_OPTIONS mit der entsprechenden JDWP-Konfiguration hinzu, um das Debugging zu aktivieren. Wenn JAVA_TOOL_OPTIONS bereits vorhanden ist, verwendet Cloud Code die in JAVA_TOOL_OPTIONS angegebenen Einstellungen.

Node.js

Je nach Struktur der Anwendung und ihrer Image-Build-Konfiguration müssen Sie möglicherweise dazu beitragen, dass der Debugger Ihre lokalen Quellen den Remote-Quellen im Container zuordnen kann. Dadurch kann der Node.txt-Debugger Ihre Haltepunkte ordnungsgemäß verarbeiten.

Dazu haben Sie folgende Möglichkeiten:

  • Manuelle Konfiguration

    Wählen Sie die Run on Kubernetes-Ausführungskonfiguration aus der Drop-down-Liste aus und klicken Sie auf Edit Configurations. Konfigurieren Sie auf dem Tab Fehlerbehebung 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 der in Kubernetes ausgeführten Anwendung.
    • Remote-Pfad: Der Pfad zur Datei oder dem Verzeichnis, das im Container in Kubernetes ausgeführt wird.
  • Automatische Konfiguration

    Sie können diese Zuordnung zu Cloud Code aufheben. Wenn Sie Ihre Debug-Sitzung starten, versucht Cloud Code diese Zuordnung automatisch abzuleiten. Die abgeleitete Zuordnung wird 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-Pfad: Der Pfad zur Datei oder dem Verzeichnis, das im Container in Kubernetes ausgeführt wird. Sie können dies mit Ihrem eigenen Wert überschreiben. Wenn Sie auf Abbrechen klicken, wird keine Zuordnung angewendet.

Go

Wenn Sie Ihre Anwendung für die Fehlerbehebung konfigurieren möchten, muss Ihre Anwendung eine auf Go-Modul basierende Anwendung sein und als Go-basiert gekennzeichnet sein. Legen Sie dazu einen der Standardoptionen Go-Umgebungsvariablen im Container, z. B. GODEBUG, GOGC, GOMAXPROCS oder GOTRACEBACK. GOTRACEBACK=single ist die Standardeinstellung für Go und GOTRACEBACK=all ist eine allgemein 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 eine nützliche Option für diesen Zweck und können mit dem Feld Bereitstellungsprofil in Ihrer Ausführungskonfiguration im Erstellen/Bereitstellen.

Python

Damit Sie die Anwendung für das Debugging konfigurieren können, müssen die folgenden Voraussetzungen erfüllt sein:

  • IDE, Edition und Plug-in sind kompatibel

    Informationen zu kompatiblen IDEs, Editionen und Plug-ins finden Sie unter Unterstützte IDEs.

  • Skaffold-Version 1.25.0 oder höher

    Sie können Cloud Code erlauben, Ihre Abhängigkeiten zu verwalten, oder auf eine lokale Skaffold-Installation verweisen. Weitere Informationen finden Sie unter Einstellungen > Tools > Cloud Code > Abhängigkeiten.

  • Python-Interpreter ist konfiguriert

    Ohne einen Python-Interpreter in Ihrem Projekt funktioniert die Fehlerbehebung 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 werden.

    Geh zu Datei > Projektstruktur und füge auf dem Tab Projekt ein Python SDK hinzu. Sollte keine vorhanden sein, fügen Sie sie auf dem Tab SDK hinzu.
    PyCharm Gehen Sie zu File > Settings > Project > Python Interpreter (Datei > Einstellungen > Projekt > Python-Interpreter) bzw. für Mac OS X, PyCharm > Einstellungen > Projekt > Python-Interpreter und fügen Sie einen Python-Interpreter hinzu. aus.

Weitere Informationen finden Sie in der Dokumentation zu Skaffold-Fehlerbehebung.

Debugging

  1. Klicken Sie zum Starten des Entwicklungszyklus im Debug-Modus auf Ihrem Kubernetes-Cluster auf die Debug-Aktion für Develop on Kubernetes Symbol für Ausführungsaktion.

    Kubernetes-Cluster-Entwicklungszyklus im Debug-Modus starten

    Der kontinuierliche Entwicklungszyklus wird im Fehlerbehebungsmodus gestartet.

    Cloud Code hängt eine Debugging-Sitzung an:

    Kubernetes Debugger hinzugefügt

  2. Sie können nun die Aufgaben ausführen, die Sie normalerweise beim Debuggen von lokalem Code ausführen, z. B. das Festlegen von Haltepunkten und das Aufrufen von Code für einen Live-Kubernetes-Cluster.

    Kubernetes Debugger-Sitzung

  3. Klicken Sie zum Beenden der Debugging-Sitzung auf das Stopp-Symbol in der Ausführungskonfiguration für Develop on Kubernetes.

Support

Wenn Sie Feedback geben oder ein Problem in Ihrer IntelliJ-IDE melden möchten, gehen Sie zu Tools > Cloud Code > Help / About > . Senden Sie Feedback oder melden Sie ein Problem, um ein Problem auf GitHub zu melden, oder stellen Sie eine Frage in Stack Overflow.

Sie können auch dem Kanal #cloud-code beitreten, der Teil der Google Cloud-Slack-Community ist.