設定 Ruby 適用的 Stackdriver Debugger

本頁面說明如何設定環境和 Ruby 應用程式,以使用 Stackdriver Debugger。對於某些環境,您必須明確指定讓 Stackdriver Debugger 代理程式傳送資料的存取權範圍。我們建議您儘可能設定最大的存取權範圍,然後使用 Cloud Identity and Access Management 限制存取權。為了與此最佳做法保持一致,請使用 cloud-platform 選項將存取權範圍設定為所有 Cloud API。

App Engine 彈性環境

  1. 將 Stackdriver Gem 新增至 Gemfile:

    gem "stackdriver"
    
  2. 啟用代理程式。

Rails

Bundler 會在應用程式啟動時自動將程式庫載入。您無需再進行設定。

Rack

使用程式庫提供的 Rack 中介軟體:

require "google/cloud/debugger"

use Google::Cloud::Debugger::Middleware

其他

如為純 Ruby 應用程式,請在確切的進入點啟動代理程式。

require "google/cloud/debugger"

Google::Cloud::Debugger.new.start

偵錯工具現在已準備好與您的應用程式搭配使用。

Google Kubernetes Engine

  1. 建立具有下列其中一種存取權範圍的叢集:
    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger

    如要使用 gcloud 建立叢集,請執行下列操作:

    1. (選用) 將 gcloud 更新到最新版本:
      gcloud components update
    2. 設定預設的專案 ID
      gcloud config set project [PROJECT_ID]
    3. 如果您使用區域叢集,請設定預設的運算區域
      gcloud config set compute/zone [COMPUTE_ZONE]
    4. 如果您使用地區叢集,請設定預設的運算地區
      gcloud config set compute/region [COMPUTE_REGION]
    5. 發出 create 指令:
      gcloud container clusters create example-cluster-name --scopes https://www.googleapis.com/auth/cloud-platform

    如需建立叢集的詳細資訊,請參閱建立叢集一文。

  2. 依照 Compute Engine 的指示操作。

Compute Engine

  1. 確認 Compute Engine 執行個體已使用 [允許所有 Cloud API 的完整存取權] 存取權範圍選項建立,或是具有下列其中一個存取權範圍:

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  2. 將 Stackdriver Gem 新增至 Gemfile:

    gem "stackdriver"
    
  3. 使用 Bundler 安裝 Gem:

    bundle install
    
  4. 啟用代理程式。

Rails

Bundler 會在應用程式啟動時自動將程式庫載入。

您也可以選擇透過 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

其中:

  • SERVICE-NAME 是應用程式的名稱,如 MyAppBackendFrontend
  • SERVICE-VERSION 是版本,如 v1.0build_147v20170714

我們建議從環境變數進行這些設定,這樣您就不用在每次部署時變更原始碼。

Rails 在實際運作模式下執行時,Debugger 會預設為啟用。如要在開發模式下啟用 Debugger,請新增以下內容:

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

Rack

使用程式庫提供的 Rack 中介軟體:

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

其中:

  • SERVICE-NAME 是應用程式的名稱,如 MyAppBackendFrontend
  • SERVICE-VERSION 是版本,如 v1.0build_147v20170714

我們建議從環境變數進行這些設定,這樣您就不用在每次部署時變更原始碼。

其他

如為純 Ruby 應用程式,請在確切的進入點啟動代理程式。

require "google/cloud/debugger"

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

其中:

  • SERVICE-NAME 是應用程式的名稱,如 MyAppBackendFrontend
  • SERVICE-VERSION 是版本,如 v1.0build_147v20170714

我們建議從環境變數進行這些設定,這樣您就不用在每次部署時變更原始碼。

偵錯工具現在已準備好與您的應用程式搭配使用。

本機和其他位置

  1. 將 Stackdriver Gem 新增至 Gemfile。

    gem "stackdriver"
    
  2. 使用 Bundler 安裝 Gem:

    bundle install
    
  3. 下載服務帳戶憑證。

    如要在「非」Google Cloud Platform 託管的機器上使用 Ruby 適用的 Stackdriver Debugger 代理程式,該代理程式必須使用 GCP 服務帳戶憑證來驗證 Stackdriver Debugger 服務。

    使用 GCP 主控台「服務帳戶」頁面來為現有或新的服務帳戶建立憑證檔案。服務帳戶必須至少具有 Stackdriver Debugger Agent 角色。

  4. 使用下載的憑證設定及啟用代理程式。

Rails

透過 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

其中:

  • SERVICE-NAME 是應用程式的名稱,如 MyAppBackendFrontend
  • SERVICE-VERSION 是版本,如 v1.0build_147v20170714

我們建議從環境變數進行這些設定,這樣您就不用在每次部署時變更原始碼。

Rails 在實際運作模式下執行時,Debugger 會預設為啟用。如要在開發模式下啟用 Debugger,請新增以下內容:

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

Rack

使用程式庫提供的 Rack 中介軟體:

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

其中:

  • SERVICE-NAME 是應用程式的名稱,如 MyAppBackendFrontend
  • SERVICE-VERSION 是版本,如 v1.0build_147v20170714

我們建議從環境變數進行這些設定,這樣您就不用在每次部署時變更原始碼。

其他

如為純 Ruby 應用程式,請在確切的進入點啟動代理程式。

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

其中:

  • SERVICE-NAME 是應用程式的名稱,如 MyAppBackendFrontend
  • SERVICE-VERSION 是版本,如 v1.0build_147v20170714

我們建議從環境變數進行這些設定,這樣您就不用在每次部署時變更原始碼。

偵錯工具現在已準備好與您的應用程式搭配使用。

GCP 主控台中的「偵錯」頁面可以顯示本機原始碼檔案,無須進行上傳即可用於本機開發作業。請參閱手動選取原始碼一文。

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Stackdriver Debugger 說明文件