Configurazione di Cloud Debugger per Ruby

Panoramica

In questa pagina viene descritto come configurare il tuo ambiente e la tua applicazione Ruby per l'utilizzo di Cloud Debugger. Per alcuni ambienti devi specificare esplicitamente l'ambito di accesso per consentire all'agente Cloud Debugger di inviare i dati. Ti consigliamo di impostare l'ambito di accesso più ampio possibile e quindi utilizzare Identity and Access Management per limitare l'accesso. In base a questa best practice, imposta l'ambito di accesso su tutte le API Cloud con l'opzione cloud-platform.

Versioni del linguaggio e ambiente di calcolo

Cloud Debugger è disponibile per Ruby 2.2 e versioni successive.

Ambiente standard di App Engine Ambiente flessibile di App Engine Compute Engine Google Kubernetes Engine Cloud Run Cloud Run for Anthos VM e container in esecuzione altrove Cloud Functions

Configurazione di Cloud Debugger

Per configurare Cloud Debugger, completa le seguenti attività:

  1. Verifica che l'API Cloud Debugger sia abilitata per il tuo progetto.

  2. Installa e configura il debugger nell'ambiente di calcolo che stai utilizzando.

  3. Seleziona il codice sorgente.

La verifica dell'API Cloud Debugger è abilitata

Per iniziare a utilizzare Cloud Debugger, assicurati che l'API Cloud Debugger sia abilitata. Cloud Debugger è abilitato per impostazione predefinita per la maggior parte dei progetti.
Abilita l'API Cloud Debugger

Ambiente flessibile di App Engine

  1. Aggiungi la gemma stackdriver a Gemfile:

    gem "stackdriver"
    
  2. Attiva l'agente.

Linee ferroviarie

All'avvio del bundler, la libreria viene caricata automaticamente nella tua app. Non è richiesta alcuna configurazione.

Rack

Usa il Rack Middleware fornito dalla libreria:

require "google/cloud/debugger"

use Google::Cloud::Debugger::Middleware

Altro

Per le app Ruby pure, avvia l'agente in modo esplicito nel punto di accesso:

require "google/cloud/debugger"

Google::Cloud::Debugger.new.start

Il debugger è ora pronto per essere utilizzato con la tua app.

Google Kubernetes Engine

GCLOUD

Per attivare Debugger utilizzando gcloud, completa i seguenti passaggi:

  1. Crea il cluster con uno dei seguenti ambiti di accesso:

    • https://www.googleapis.com/auth/cloud-platform concede al cluster l'accesso a tutte le API Google Cloud.

    • https://www.googleapis.com/auth/cloud_debugger concede al cluster l'accesso solo all'API Debugger. Utilizza questo ambito di accesso per proteggere la sicurezza del tuo cluster.

    gcloud container clusters create example-cluster-name \
           --scopes=https://www.googleapis.com/auth/cloud_debugger
    
  2. Aggiungi la gemma stackdriver a Gemfile:

    gem "stackdriver"
    
  3. Aggiungi la seguente riga al tuo Dockerfile per aggiungere l'agente Debugger:

    Run bundle install
    
  4. Abilita l'agente Debugger:

    Linee ferroviarie

    All'avvio del bundler, la libreria viene caricata automaticamente nella tua app.

    Facoltativamente, puoi fornire un servizio e una versione tramite l'interfaccia di configurazione di Ruby on Rails:

    # 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
    

    Dove:

    • SERVICE-NAME è un nome per la tua app, ad esempio MyApp, Backend o Frontend.
    • SERVICE-VERSION è una versione, ad esempio v1.0, build_147 o v20170714.

    Ti consigliamo di impostarle dalle variabili di ambiente, in modo da non dover cambiare il codice sorgente con ogni deployment.

    Debugger è attivato per impostazione predefinita quando la funzionalità Rails è in esecuzione in modalità produzione. Per abilitare Debugger in modalità sviluppo, aggiungi quanto segue:

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

    Rack

    Usa il Rack Middleware fornito dalla libreria:

     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
    

    Dove:

    • SERVICE-NAME è un nome per la tua app, ad esempio MyApp, Backend o Frontend.
    • SERVICE-VERSION è una versione, ad esempio v1.0, build_147 o v20170714.

    Ti consigliamo di impostarle dalle variabili di ambiente, in modo da non dover cambiare il codice sorgente con ogni deployment.

    Altro

    Per le app Ruby pure, avvia l'agente in modo esplicito nel punto di accesso:

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

    Dove:

    • SERVICE-NAME è un nome per la tua app, ad esempio MyApp, Backend o Frontend.
    • SERVICE-VERSION è una versione, ad esempio v1.0, build_147 o v20170714.

    Ti consigliamo di impostarle dalle variabili di ambiente, in modo da non dover cambiare il codice sorgente con ogni deployment.

    Debugger è ora attivato per la tua app.

CONSOLE

Per attivare Debugger utilizzando Google Cloud Console, completa i seguenti passaggi:

  1. Nella sezione Pool di nodi, seleziona Sicurezza, quindi seleziona Imposta l'accesso per ogni API.

  2. Abilita Debugger.

    L'API Debugger è abilitata per il cluster.

  3. (Facoltativo) Seleziona Consenti l'accesso completo a tutte le API di Cloud.

Compute Engine

  1. Assicurati che le istanze di Compute Engine vengano create con l'opzione dell'ambito di accesso Consenti l'accesso completo a tutte le API di Cloud o hanno uno dei seguenti ambiti di accesso:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  2. Aggiungi la gemma stackdriver a Gemfile:

    gem "stackdriver"
    
  3. Utilizza Bundler per installare la gemma:

    bundle install
    
  4. Attiva l'agente.

Linee ferroviarie

All'avvio del bundler, la libreria viene caricata automaticamente nella tua app.

Facoltativamente, puoi fornire un servizio e una versione tramite l'interfaccia di configurazione di Ruby on Rails:

# 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

Dove:

  • SERVICE-NAME è un nome per la tua app, ad esempio MyApp, Backend o Frontend.
  • SERVICE-VERSION è una versione, ad esempio v1.0, build_147 o v20170714.

Ti consigliamo di impostarle dalle variabili di ambiente, in modo da non dover cambiare il codice sorgente con ogni deployment.

Debugger è attivato per impostazione predefinita quando la funzionalità Rails è in esecuzione in modalità produzione. Per abilitare Debugger in modalità sviluppo, aggiungi quanto segue:

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

Rack

Usa il Rack Middleware fornito dalla libreria:

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

Dove:

  • SERVICE-NAME è un nome per la tua app, ad esempio MyApp, Backend o Frontend.
  • SERVICE-VERSION è una versione, ad esempio v1.0, build_147 o v20170714.

Ti consigliamo di impostarle dalle variabili di ambiente, in modo da non dover cambiare il codice sorgente con ogni deployment.

Altro

Per le app Ruby pure, avvia l'agente in modo esplicito nel punto di accesso:

require "google/cloud/debugger"

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

Dove:

  • SERVICE-NAME è un nome per la tua app, ad esempio MyApp, Backend o Frontend.
  • SERVICE-VERSION è una versione, ad esempio v1.0, build_147 o v20170714.

Ti consigliamo di impostarle dalle variabili di ambiente, in modo da non dover cambiare il codice sorgente con ogni deployment.

Il debugger è ora pronto per essere utilizzato con la tua app.

Locale e altrove

  1. Aggiungi la gemma stackdriver a Gemfile.

    gem "stackdriver"
    
  2. Utilizza Bundler per installare la gemma:

    bundle install
    
  3. Scarica le credenziali dell'account di servizio.

    Per utilizzare l'agente Cloud Debugger per Ruby su macchine non ospitate da Google Cloud, l'agente deve utilizzare le credenziali di un account di servizio Google Cloud per eseguire l'autenticazione con il servizio Cloud Debugger.

    Utilizza la pagina Account di servizio di Google Cloud Console per creare un file delle credenziali per un account di servizio esistente o nuovo. L'account di servizio deve avere almeno il ruolo Cloud Debugger Agent.

  4. Configura e abilita l'agente con le credenziali scaricate.

Linee ferroviarie

Fornisci i parametri tramite l'interfaccia di configurazione di Ruby on Rails:

# 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

Dove:

  • SERVICE-NAME è un nome per la tua app, ad esempio MyApp, Backend o Frontend.
  • SERVICE-VERSION è una versione, ad esempio v1.0, build_147 o v20170714.

Ti consigliamo di impostarle dalle variabili di ambiente, in modo da non dover cambiare il codice sorgente con ogni deployment.

Debugger è attivato per impostazione predefinita quando la funzionalità Rails è in esecuzione in modalità produzione. Per abilitare Debugger in modalità sviluppo, aggiungi quanto segue:

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

Rack

Usa il Rack Middleware fornito dalla libreria:

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

Dove:

  • SERVICE-NAME è un nome per la tua app, ad esempio MyApp, Backend o Frontend.
  • SERVICE-VERSION è una versione, ad esempio v1.0, build_147 o v20170714.

Ti consigliamo di impostarle dalle variabili di ambiente, in modo da non dover cambiare il codice sorgente con ogni deployment.

Altro

Per le app Ruby pure, avvia l'agente in modo esplicito nel punto di accesso:

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

Dove:

  • SERVICE-NAME è un nome per la tua app, ad esempio MyApp, Backend o Frontend.
  • SERVICE-VERSION è una versione, ad esempio v1.0, build_147 o v20170714.

Ti consigliamo di impostarle dalle variabili di ambiente, in modo da non dover cambiare il codice sorgente con ogni deployment.

Il debugger è ora pronto per essere utilizzato con la tua app.

Nella pagina Debug nella console Google Cloud puoi visualizzare i file di origine locali, senza caricamento, per lo sviluppo locale. Consulta Selezionare il codice sorgente manualmente.