Configurer Cloud Debugger pour Ruby

Aperçu

Cette page explique comment configurer l'environnement et l'application Ruby pour qu'ils utilisent Cloud Debugger. Pour certains environnements, vous devez spécifier explicitement le champ d'application d'accès pour permettre à l'agent Cloud Debugger d'envoyer des données. Nous vous recommandons de définir le niveau d'accès le plus large possible, puis d'utiliser Identity and Access Management pour limiter l'accès. Conformément à cette bonne pratique, définissez le niveau d'accès sur toutes les API Cloud avec l'option cloud-platform.

Versions de langage et environnement de calcul

Cloud Debugger est disponible pour Ruby versions 2.2 et ultérieures.

Environnement standard App Engine Environnement flexible App Engine Compute Engine Google Kubernetes Engine Cloud Run Cloud Run for Anthos sur Google Cloud VM et conteneurs s'exécutant ailleurs Cloud Functions

Configurer Cloud Debugger

Pour configurer Cloud Debugger, procédez comme suit :

  1. Vérifiez que l'API Cloud Debugger est activée pour votre projet.

  2. Installez et configurez le Debugger sur l'environnement de calcul que vous utilisez.

  3. Sélectionnez votre code source.

Vérifier que l'API Cloud Debugger est activée

Pour commencer à utiliser Cloud Debugger, assurez-vous que l'API Cloud Debugger est activée. Cloud Debugger est activé par défaut pour la plupart des projets.
Activer l'API Cloud Debugger

Environnement flexible App Engine

  1. Ajoutez le gem stackdriver à votre fichier Gemfile :

    gem "stackdriver"
    
  2. Activez l'agent.

Rails

Bundler charge automatiquement la bibliothèque dans votre application quand elle démarre. Aucune configuration n'est requise.

Rack

Utilisez l'intergiciel Rack fourni par la bibliothèque :

require "google/cloud/debugger"

use Google::Cloud::Debugger::Middleware

Autre

Pour les applications purement Ruby, démarrez l'agent explicitement au point d'entrée :

require "google/cloud/debugger"

Google::Cloud::Debugger.new.start

Le débogueur est maintenant prêt à être utilisé avec l'application.

Google Kubernetes Engine

GCLOUD

Pour activer Debugger à l'aide de gcloud, procédez comme suit :

  1. Créez votre cluster avec l'un des niveaux d'accès suivants :

    • https://www.googleapis.com/auth/cloud-platform permet à votre cluster d'accéder à toutes les API Google Cloud.

    • https://www.googleapis.com/auth/cloud_debugger ne permet à votre cluster d'accéder qu'à l'API Debugger. Utilisez ce niveau d'accès pour renforcer la sécurité de votre cluster.

    gcloud container clusters create example-cluster-name \
           --scopes=https://www.googleapis.com/auth/cloud_debugger
    
  2. Ajoutez le gem stackdriver à votre fichier Gemfile :

    gem "stackdriver"
    
  3. Incluez la ligne suivante dans le fichier Dockerfile pour ajouter l'agent Debugger :

    Run bundle install
    
  4. Activez l'agent Debugger :

    Rails

    Bundler charge automatiquement la bibliothèque dans votre application quand elle démarre.

    Vous pouvez éventuellement fournir un nom de service et un identifiant de version via l'interface de configuration de 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
    

    Où :

    • SERVICE-NAME est le nom de votre application, tel que MyApp, Backend ou Frontend.
    • SERVICE-VERSION est une version, telle que v1.0, build_147 ou v20170714.

    Nous vous recommandons de définir ces éléments à partir de variables d'environnement. Ainsi, vous n'aurez pas à modifier le code source à chaque déploiement.

    Le débogueur est activé par défaut lorsque Rails est exécuté en mode de production. Pour activer le débogueur en mode de développement, ajoutez les éléments suivants :

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

    Rack

    Utilisez l'intergiciel Rack fourni par la bibliothèque :

     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
    

    Où :

    • SERVICE-NAME est le nom de votre application, tel que MyApp, Backend ou Frontend.
    • SERVICE-VERSION est une version, telle que v1.0, build_147 ou v20170714.

    Nous vous recommandons de définir ces éléments à partir de variables d'environnement. Ainsi, vous n'aurez pas à modifier le code source à chaque déploiement.

    Autre

    Pour les applications purement Ruby, démarrez l'agent explicitement au point d'entrée :

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

    Où :

    • SERVICE-NAME est le nom de votre application, tel que MyApp, Backend ou Frontend.
    • SERVICE-VERSION est une version, telle que v1.0, build_147 ou v20170714.

    Nous vous recommandons de définir ces éléments à partir de variables d'environnement. Ainsi, vous n'aurez pas à modifier le code source à chaque déploiement.

    Debugger est désormais activé pour votre application.

CONSOLE

Pour activer Debugger à l'aide de la console, procédez comme suit :

  1. Après avoir sélectionné le type de cluster, cliquez sur More options (Plus d'options) dans le volet Node pools (Pools de nœuds) :

    Options des pools de nœuds

  2. Sélectionnez l'une des options suivantes dans le volet Sécurité :

    • Autoriser l'accès complet à l'ensemble des API Cloud

    • Définir l'accès pour chaque API, puis sélectionner Activé pour Cloud Debugger

Compute Engine

  1. Assurez-vous que vos instances Compute Engine sont créées avec l'option de niveau d'accès Autoriser l'accès complet à toutes les API Cloud ou que leur niveau d'accès correspond à l'une des options suivantes :

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  2. Ajoutez le gem stackdriver à votre fichier Gemfile :

    gem "stackdriver"
    
  3. Utilisez Bundler pour installer le gem :

    bundle install
    
  4. Activez l'agent.

Rails

Bundler charge automatiquement la bibliothèque dans votre application quand elle démarre.

Vous pouvez éventuellement fournir un nom de service et un identifiant de version via l'interface de configuration de 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

Où :

  • SERVICE-NAME est le nom de votre application, tel que MyApp, Backend ou Frontend.
  • SERVICE-VERSION est une version, telle que v1.0, build_147 ou v20170714.

Nous vous recommandons de définir ces éléments à partir de variables d'environnement. Ainsi, vous n'aurez pas à modifier le code source à chaque déploiement.

Le débogueur est activé par défaut lorsque Rails est exécuté en mode de production. Pour activer le débogueur en mode de développement, ajoutez les éléments suivants :

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

Rack

Utilisez l'intergiciel Rack fourni par la bibliothèque :

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

Où :

  • SERVICE-NAME est le nom de votre application, tel que MyApp, Backend ou Frontend.
  • SERVICE-VERSION est une version, telle que v1.0, build_147 ou v20170714.

Nous vous recommandons de définir ces éléments à partir de variables d'environnement. Ainsi, vous n'aurez pas à modifier le code source à chaque déploiement.

Autre

Pour les applications purement Ruby, démarrez l'agent explicitement au point d'entrée :

require "google/cloud/debugger"

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

Où :

  • SERVICE-NAME est le nom de votre application, tel que MyApp, Backend ou Frontend.
  • SERVICE-VERSION est une version, telle que v1.0, build_147 ou v20170714.

Nous vous recommandons de définir ces éléments à partir de variables d'environnement. Ainsi, vous n'aurez pas à modifier le code source à chaque déploiement.

Le débogueur est maintenant prêt à être utilisé avec l'application.

Environnement local et autre

  1. Ajoutez le gem stackdriver à votre fichier Gemfile.

    gem "stackdriver"
    
  2. Utilisez Bundler pour installer le gem :

    bundle install
    
  3. Téléchargez les identifiants du compte de service.

    Pour que vous puissiez utiliser l'agent Cloud Debugger pour Ruby sur des machines qui ne sont pas hébergées par Google Cloud, celui-ci doit s'authentifier auprès du service Cloud Debugger à l'aide des informations d'identification du compte de service Google Cloud.

    Suivez les instructions de la page Comptes de service de Cloud Console pour créer un fichier d'identifiants pour un compte de service nouveau ou existant. Ce compte doit au moins disposer du rôle Cloud Debugger Agent.

  4. Configurez et activez l'agent avec les identifiants téléchargés.

Rails

Fournissez les paramètres via l'interface de configuration de 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

Où :

  • SERVICE-NAME est le nom de votre application, tel que MyApp, Backend ou Frontend.
  • SERVICE-VERSION est une version, telle que v1.0, build_147 ou v20170714.

Nous vous recommandons de définir ces éléments à partir de variables d'environnement. Ainsi, vous n'aurez pas à modifier le code source à chaque déploiement.

Le débogueur est activé par défaut lorsque Rails est exécuté en mode de production. Pour activer le débogueur en mode de développement, ajoutez les éléments suivants :

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

Rack

Utilisez l'intergiciel Rack fourni par la bibliothèque :

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

Où :

  • SERVICE-NAME est le nom de votre application, tel que MyApp, Backend ou Frontend.
  • SERVICE-VERSION est une version, telle que v1.0, build_147 ou v20170714.

Nous vous recommandons de définir ces éléments à partir de variables d'environnement. Ainsi, vous n'aurez pas à modifier le code source à chaque déploiement.

Autre

Pour les applications purement Ruby, démarrez l'agent explicitement au point d'entrée :

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

Où :

  • SERVICE-NAME est le nom de votre application, tel que MyApp, Backend ou Frontend.
  • SERVICE-VERSION est une version, telle que v1.0, build_147 ou v20170714.

Nous vous recommandons de définir ces éléments à partir de variables d'environnement. Ainsi, vous n'aurez pas à modifier le code source à chaque déploiement.

Le débogueur est maintenant prêt à être utilisé avec l'application.

La page "Débogage" de Cloud Console peut afficher les fichiers source locaux, sans les importer, pour les développements en local. Pour en savoir plus, consultez la page Sélectionner manuellement le code source.