Cloud Debugger für Ruby einrichten

Überblick

Auf dieser Seite wird gezeigt, wie Sie Ihre Umgebung und Ihre Ruby-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 Cloud Identity and Access Management einzuschränken. Geben Sie den Zugriffsbereich entsprechend dieser Best Practice für alle Cloud APIs mit der Option cloud-platform an.

Sprachversionen und Rechenumgebung

Cloud Debugger ist ab Ruby-Version 2.2 verfügbar.

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

Cloud Debugger einrichten

So richten Sie Cloud Debugger ein:

  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 Ihren 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

Flexible App Engine-Umgebung

  1. Fügen Sie das stackdriver-Gem Gemfile hinzu:

    gem "stackdriver"
    
  2. Aktivieren Sie den Agent.

Rails

Bundler lädt die Bibliothek beim Start automatisch in Ihre App. Es ist keine Konfiguration erforderlich.

Rack

Verwenden Sie die Rack Middleware, die von der Bibliothek bereitgestellt wird:

require "google/cloud/debugger"

use Google::Cloud::Debugger::Middleware

Weitere

Starten Sie den Agent für reine Ruby-Anwendungen explizit am Einstiegspunkt:

require "google/cloud/debugger"

Google::Cloud::Debugger.new.start

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

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 das stackdriver-Gem Gemfile hinzu:

    gem "stackdriver"
    
  3. Fügen Sie die folgende Zeile Ihrem Dockerfile hinzu, um den Debugger-Agent hinzuzufügen:

    Run bundle install
    
  4. Aktivieren Sie den Debugger-Agent:

    Rails

    Bundler lädt die Bibliothek beim Start automatisch in Ihre App.

    Sie können optional einen Dienst und eine Version über die Konfigurationsoberfläche von Ruby on Rails zur Verfügung stellen:

    # Add this to config/environments/*.rb
    Rails.application.configure do |config|
      config.google_cloud.debugger.service_name = "SERVICE-NAME"
      config.google_cloud.debugger.service_version = "SERVICE-VERSION"
    end
    

    Dabei gilt:

    • SERVICE-NAME ist ein Name für Ihre Anwendung, z. B. MyApp, Backend oder Frontend.
    • SERVICE-VERSION ist eine Version, z. B. v1.0, build_147 oder v20170714.

    Wir empfehlen, diese über Umgebungsvariablen festzulegen, damit Sie den Quellcode nicht bei jeder Bereitstellung ändern müssen.

    Der Debugger ist standardmäßig aktiviert, wenn Rails im Produktionsmodus ausgeführt wird. Fügen Sie Folgendes hinzu, um den Debugger im Entwicklungsmodus zu aktivieren:

    # Add this to config/environments/development.rb
    Rails.application.configure do |config|
      config.google_cloud.use_debugger = true
    end

    Rack

    Verwenden Sie die Rack Middleware, die von der Bibliothek bereitgestellt wird:

     require "google/cloud/debugger"
    
     Google::Cloud::Debugger.configure do |config|
       config.service_name = "SERVICE-NAME"
       config.service_version = "SERVICE-VERSION"
      end
    
     use Google::Cloud::Debugger::Middleware
    

    Dabei gilt:

    • SERVICE-NAME ist ein Name für Ihre Anwendung, z. B. MyApp, Backend oder Frontend.
    • SERVICE-VERSION ist eine Version, z. B. v1.0, build_147 oder v20170714.

    Wir empfehlen, diese über Umgebungsvariablen festzulegen, damit Sie den Quellcode nicht bei jeder Bereitstellung ändern müssen.

    Weitere

    Starten Sie den Agent für reine Ruby-Anwendungen explizit am Einstiegspunkt:

    require "google/cloud/debugger"
    
    Google::Cloud::Debugger.new(service_name: "SERVICE-NAME",
                        service_version: "SERVICE-VERSION").start
    

    Dabei gilt:

    • SERVICE-NAME ist ein Name für Ihre Anwendung, z. B. MyApp, Backend oder Frontend.
    • SERVICE-VERSION ist eine Version, z. B. v1.0, build_147 oder v20170714.

    Wir empfehlen, diese über Umgebungsvariablen festzulegen, damit Sie den Quellcode nicht bei jeder Bereitstellung ändern müssen.

    Debugger ist jetzt für Ihre Anwendung aktiviert.

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):

    Optionen für Knotenpools

  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. Achten Sie darauf, 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
  2. Fügen Sie das stackdriver-Gem Gemfile hinzu:

    gem "stackdriver"
    
  3. Installieren Sie das Gem mit Bundler:

    bundle install
    
  4. Aktivieren Sie den Agent.

Rails

Bundler lädt die Bibliothek beim Start automatisch in Ihre App.

Sie können optional einen Dienst und eine Version über die Konfigurationsoberfläche von Ruby on Rails zur Verfügung stellen:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  config.google_cloud.debugger.service_name = "SERVICE-NAME"
  config.google_cloud.debugger.service_version = "SERVICE-VERSION"
end

Dabei gilt:

  • SERVICE-NAME ist ein Name für Ihre Anwendung, z. B. MyApp, Backend oder Frontend.
  • SERVICE-VERSION ist eine Version, z. B. v1.0, build_147 oder v20170714.

Wir empfehlen, diese über Umgebungsvariablen festzulegen, damit Sie den Quellcode nicht bei jeder Bereitstellung ändern müssen.

Der Debugger ist standardmäßig aktiviert, wenn Rails im Produktionsmodus ausgeführt wird. Fügen Sie Folgendes hinzu, um den Debugger im Entwicklungsmodus zu aktivieren:

# Add this to config/environments/development.rb
Rails.application.configure do |config|
  config.google_cloud.use_debugger = true
end

Rack

Verwenden Sie die Rack Middleware, die von der Bibliothek bereitgestellt wird:

require "google/cloud/debugger"

Google::Cloud::Debugger.configure do |config|
  config.service_name = "SERVICE-NAME"
  config.service_version = "SERVICE-VERSION"
end

use Google::Cloud::Debugger::Middleware

Dabei gilt:

  • SERVICE-NAME ist ein Name für Ihre Anwendung, z. B. MyApp, Backend oder Frontend.
  • SERVICE-VERSION ist eine Version, z. B. v1.0, build_147 oder v20170714.

Wir empfehlen, diese über Umgebungsvariablen festzulegen, damit Sie den Quellcode nicht bei jeder Bereitstellung ändern müssen.

Weitere

Starten Sie den Agent für reine Ruby-Anwendungen explizit am Einstiegspunkt:

require "google/cloud/debugger"

Google::Cloud::Debugger.new(service_name: "SERVICE-NAME",
                            service_version: "SERVICE-VERSION").start

Dabei gilt:

  • SERVICE-NAME ist ein Name für Ihre Anwendung, z. B. MyApp, Backend oder Frontend.
  • SERVICE-VERSION ist eine Version, z. B. v1.0, build_147 oder v20170714.

Wir empfehlen, diese über Umgebungsvariablen festzulegen, damit Sie den Quellcode nicht bei jeder Bereitstellung ändern müssen.

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

Lokal und an anderer Stelle

  1. Fügen Sie das stackdriver-Gem Gemfile hinzu:

    gem "stackdriver"
    
  2. Installieren Sie das Gem mit Bundler:

    bundle install
    
  3. Laden Sie Anmeldedaten für das Dienstkonto herunter.

    Wenn Sie den Cloud Debugger-Agent für Ruby auf einer Maschine verwenden möchten, die nicht von Google Cloud gehostet wird, muss sich der Agent mithilfe der Anmeldedaten eines Google Cloud-Dienstkontos beim Cloud Debugger-Dienst authentifizieren.

    Verwenden Sie die Cloud Console-Seite "Dienstkonten", um eine Datei mit Anmeldedaten für ein bestehendes oder neues Dienstkonto zu erstellen. Das Dienstkonto muss mindestens die Rolle Cloud Debugger Agent haben.

  4. Konfigurieren und aktivieren Sie den Agent mit den heruntergeladenen Anmeldedaten.

Rails

Geben Sie die Parameter in der Konfigurationsoberfläche von Ruby on Rails an:

# Add this to config/environments/*.rb
Rails.application.configure do |config|
  config.google_cloud.project_id = "YOUR-PROJECT-ID"
  config.google_cloud.keyfile    = "/path/to/service-account.json"
  config.google_cloud.debugger.service_name = "SERVICE-NAME"
  config.google_cloud.debugger.service_version = "SERVICE-VERSION"
end

Dabei gilt:

  • SERVICE-NAME ist ein Name für Ihre Anwendung, z. B. MyApp, Backend oder Frontend.
  • SERVICE-VERSION ist eine Version, z. B. v1.0, build_147 oder v20170714.

Wir empfehlen, diese über Umgebungsvariablen festzulegen, damit Sie den Quellcode nicht bei jeder Bereitstellung ändern müssen.

Der Debugger ist standardmäßig aktiviert, wenn Rails im Produktionsmodus ausgeführt wird. Fügen Sie Folgendes hinzu, um den Debugger im Entwicklungsmodus zu aktivieren:

# Add this to config/environments/development.rb
Rails.application.configure do |config|
  config.google_cloud.use_debugger = true
end

Rack

Verwenden Sie die Rack Middleware, die von der Bibliothek bereitgestellt wird:

require "stackdriver"
require "google/cloud/debugger"

Google::Cloud.configure do |config|
  config.project_id = "YOUR-PROJECT-ID"
  config.keyfile    = "/path/to/service-account.json"
  config.service_name = "SERVICE-NAME"
  config.service_version = "SERVICE-VERSION"
end

use Google::Cloud::Debugger::Middleware

Dabei gilt:

  • SERVICE-NAME ist ein Name für Ihre Anwendung, z. B. MyApp, Backend oder Frontend.
  • SERVICE-VERSION ist eine Version, z. B. v1.0, build_147 oder v20170714.

Wir empfehlen, diese über Umgebungsvariablen festzulegen, damit Sie den Quellcode nicht bei jeder Bereitstellung ändern müssen.

Weitere

Starten Sie den Agent für reine Ruby-Anwendungen explizit am Einstiegspunkt:

require "google/cloud/debugger"

Google::Cloud::Debugger.new(project: "YOUR-PROJECT-ID",
                            keyfile: "/path/to/service-account.json",
                            service_name: "SERVICE-NAME",
                            service_version: "SERVICE-VERSION").start

Dabei gilt:

  • SERVICE-NAME ist ein Name für Ihre Anwendung, z. B. MyApp, Backend oder Frontend.
  • SERVICE-VERSION ist eine Version, z. B. v1.0, build_147 oder v20170714.

Wir empfehlen, diese über Umgebungsvariablen festzulegen, damit Sie den Quellcode nicht bei jeder Bereitstellung ändern müssen.

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

Auf der Seite "Debugging" der Cloud Console können die lokalen Quelldateien ohne Hochladen für die lokale Entwicklung angezeigt werden. Weitere Informationen finden Sie unter Quellcode manuell auswählen.