Cloud Debugger für Go einrichten

Übersicht

Auf dieser Seite wird gezeigt, wie Sie Ihre Umgebung und Ihre Go-Anwendung für die Verwendung von Cloud Debugger konfigurieren. In einigen Umgebungen müssen Sie, damit der Cloud Debugger-Agent Daten senden kann, den Zugriffsbereich explizit angeben. Es wird empfohlen, den größtmöglichen Zugriffsbereich festzulegen und anschließend den Zugriff mit der Identitäts- und Zugriffsverwaltung einzuschränken. Geben Sie den Zugriffsbereich entsprechend dieser Best Practice für alle Cloud APIs mit der Option cloud-platform an.

Sprachversionen und Computing-Umgebungen

Cloud Debugger ist für Go 1.9 und höher in den folgenden Rechenumgebungen verfügbar:

App Engine-Standardumgebung Flexible App Engine-Umgebung Compute Engine Google Kubernetes Engine Cloud Run Cloud Run for Anthos auf Google Cloud Andernorts ausgeführte VMs und Container Cloud Functions

Cloud Debugger einrichten

Führen Sie die folgenden Aufgaben aus, um Cloud Debugger einzurichten:

  1. Prüfen Sie, ob die Cloud Debugger API für Ihr Projekt aktiviert ist.

  2. Installieren und konfigurieren Sie den Debugger in der von Ihnen verwendeten Rechenumgebung.

  3. Wählen Sie den Quellcode aus.

Prüfen, ob die Cloud Debugger API aktiviert ist

Wenn Sie Cloud Debugger verwenden möchten, muss die Cloud Debugger API aktiviert sein. Cloud Debugger ist für die meisten Projekte standardmäßig aktiviert.
Cloud Debugger API aktivieren

Google Kubernetes Engine

GCLOUD

Mit den folgenden Schritten aktivieren Sie Debugger mit gcloud:

  1. Erstellen Sie Ihren Cluster mit einem der folgenden Zugriffsbereiche:

    • https://www.googleapis.com/auth/cloud-platform gewährt Ihrem Cluster Zugriff auf alle Google Cloud APIs.

    • https://www.googleapis.com/auth/cloud_debugger gewährt Ihrem Cluster nur Zugriff auf die Debugger API. Verwenden Sie diesen Zugriffsbereich, um die Sicherheit Ihres Clusters zu härten.

    gcloud container clusters create example-cluster-name \
           --scopes=https://www.googleapis.com/auth/cloud_debugger
    
  2. Fügen Sie die folgenden Zeilen dem Dockerfile hinzu, um den Debugger-Agent zu Ihrer containerisierten Anwendung hinzuzufügen:

    RUN go get -u cloud.google.com/go/cmd/go-cloud-debug-agent \
        go-cloud-debug-agent -sourcecontext=[PATH_TO_FILE] -appmodule=[APP_NAME] \
        -appversion=[APP_VERSION] -- [PATH_TO_BINARY] [ARG1] [ARG2]
    

    Wobei:

    • PATH_TO_FILE gibt den relativen Pfad zur JSON-formatierten Datei an, der Ihre Quellkontext-Konfiguration enthält.

    • APP_NAME ist der Name Ihrer Anwendung oder Ihres Dienstes. Zusammen mit der Version wird dadurch die Anwendung in der Cloud Console identifiziert.

    • APP_VERSION ist eine von der Anwendung bereitgestellte Versionsmarkierung. Sie könnten beispielsweise eine Build-Nummer verwenden. In der Cloud Console wird die ausgeführte Version als module - version angezeigt. Beispiel: main - 1.0

    • PATH_TO_BINARY gibt den relativen Pfad zum Binärprogramm Ihrer Anwendung an.

    • ARG1 und ARG2 sind Platzhalter für beliebige zusätzliche Argumente, die Ihre Anwendung erfordert.

Der Debugger ist jetzt einsatzbereit, wenn Sie Ihre containerisierte Anwendung bereitstellen.

Ausführliche Informationen zum Erstellen eines Clusters finden Sie unter Cluster erstellen.

KONSOLE

Führen Sie die folgenden Schritte aus, um Debugger mithilfe der Console zu aktivieren:

  1. Klicken Sie nach der Auswahl des Clustertyps im Bereich Node pools (Knotenpools) auf More options (Weitere Optionen):

    Das Feld

  2. Wählen Sie im Bereich Sicherheit eine der folgenden Optionen aus:

    • Uneingeschränkten Zugriff auf alle Cloud APIs zulassen.

    • Zugriff für jede API festlegen. Wählen Sie anschließend Aktiviert für Cloud Debugger aus.

Compute Engine

  1. Überprüfen Sie, ob Ihre Compute Engine-VM-Instanzen ein 64-Bit-Debian-Linux-Image ausführen.

  2. Stellen Sie sicher, dass Ihre Compute Engine-VM-Instanzen mit der Zugriffsbereichsoption Vollen Zugriff auf alle Cloud-APIs zulassen eingerichtet sind oder einen der folgenden Zugriffsbereiche haben:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  3. Die aktuellen Optimierungen des Go-Compilers beeinträchtigen das genaue Debugging. Daher zeigt Cloud Debugger falsche Informationen zu Ihrer Anwendung an, wenn sie mit den standardmäßigen Go-Compiler-Optimierungen erstellt wird.

    Erstellen Sie Ihre Anwendung ohne die Standardoptimierungen, um die richtigen Debuginformationen zu erhalten. Die folgenden Beispielbefehle zeigen, wie Sie Optimierungen bei Verwendung von Go ab Version 1.10 deaktivieren können:

    go build -gcflags=all='-N -l'
    

    Der vorangehende Wert gcflags enthält -N, um Optimierungen zu deaktivieren, und -l, um das Einfügen zu deaktivieren.

  4. Laden Sie den Debugger-Agent herunter.

    Der Cloud Debugger-Agent ist ein kompaktes Binärprogramm, das Sie beim Start Ihrer Anwendung aktivieren. Der Agent wird gemeinsam mit Ihrer Anwendung gestartet und kommuniziert während ihrer Ausführung mit dem Back-End von Cloud Debugger.

    Nachdem Sie Ihre Compute Engine-Anwendung erstellt und bereitgestellt haben, laden Sie den Debugger-Agent herunter und installieren ihn:

    go get -u cloud.google.com/go/cmd/go-cloud-debug-agent
    
  5. Starten Sie den Agent und Ihr Programm:

    go-cloud-debug-agent -sourcecontext=[PATH_TO_FILE] -appmodule=[APP_NAME] \
                     -appversion=[APP_VERSION] -- [PATH_TO_BINARY] [ARG1] [ARG2]
    

    Wobei:

    • PATH_TO_FILE gibt den relativen Pfad zur JSON-formatierten Datei an, der Ihre Quellkontext-Konfiguration enthält.

    • APP_NAME ist der Name Ihrer Anwendung oder Ihres Dienstes. Zusammen mit der Version wird dadurch die Anwendung in der Cloud Console identifiziert.

    • APP_VERSION ist eine von der Anwendung bereitgestellte Versionsmarkierung. Sie könnten beispielsweise eine Build-Nummer verwenden. In der Cloud Console wird die ausgeführte Version als module - version angezeigt. Beispiel: main - 1.0

    • PATH_TO_BINARY gibt den relativen Pfad zum Binärprogramm Ihrer Anwendung an.

    • ARG1 und ARG2 sind Platzhalter für beliebige zusätzliche Argumente, die Ihre Anwendung erfordert.

    Beispiel:

    go-cloud-debug-agent -appmodule=main -appversion=1.0 -- bin/my-app my-arg
    

Der Debugger ist jetzt bereit für die Verwendung mit Ihrer App.

Lokal und an anderer Stelle

Der Cloud Debugger-Agent für Go wird für lokale oder andere Umgebungen unterstützt, in denen Go 1.9 und frühere Versionen verwendet werden.