概览
本页面介绍如何配置您的环境和 Ruby 应用以使用 Cloud Debugger。对于一些环境,您必须明确指定访问权限范围,以让 Cloud Debugger 代理发送数据。我们建议尽可能设置最广泛的访问权限范围,然后使用 Identity and Access Management 来限制访问权限。为符合此最佳做法,请使用 cloud-platform
选项将访问权限范围设置为所有 Cloud API。
语言版本和计算环境
Cloud Debugger 适用于 Ruby 2.2 和更高版本。
App Engine 标准环境 | App Engine 柔性环境 | Compute Engine | Google Kubernetes Engine | Cloud Run | Cloud Run for Anthos | 在其他位置运行的虚拟机和容器 | Cloud Functions |
---|---|---|---|---|---|---|---|
设置 Cloud Debugger
要设置 Cloud Debugger,请完成以下任务:
验证是否为您的项目启用了 Cloud Debugger API。
在您正在使用的计算环境中安装并配置 Debugger。
选择您的源代码。
验证 Cloud Debugger API 是否已启用
要开始使用 Cloud Debugger,请确保已启用 Cloud Debugger API。默认情况下,系统会为大多数项目启用 Cloud Debugger。启用 Cloud Debugger API
App Engine 柔性环境
将
stackdriver
gem 添加到您的Gemfile
中:gem "stackdriver"
启用代理。
Rails
Bundler 会在启动时自动将库加载到您的应用中。无需进行任何配置。
Rack
使用库提供的 Rack Middleware:
require "google/cloud/debugger"
use Google::Cloud::Debugger::Middleware
其他
对于纯 Ruby 应用,请在入口点明确启动代理程序:
require "google/cloud/debugger"
Google::Cloud::Debugger.new.start
Debugger 现可用于您的应用。
Google Kubernetes Engine
GCLOUD
要使用 gcloud
启用 Debugger,请完成以下步骤:
创建集群,并为其指定以下访问权限范围之一:
https://www.googleapis.com/auth/cloud-platform
授予集群对所有 Google Cloud API 的访问权限。https://www.googleapis.com/auth/cloud_debugger
仅授予集群对 Debugger API 的访问权限。使用此访问范围来强化集群的安全性。
gcloud container clusters create example-cluster-name \ --scopes=https://www.googleapis.com/auth/cloud_debugger
将
stackdriver
gem 添加到您的Gemfile
中:gem "stackdriver"
将下面一行代码添加到
Dockerfile
以添加 Debugger 代理:Run bundle install
启用 Debugger 代理:
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
是应用的名称,例如MyApp
、Backend
或Frontend
。SERVICE-VERSION
是版本,例如v1.0
、build_147
或v20170714
。
我们建议您在环境变量中设置这些变量,这样就无需在每次部署时更改源代码。
如果 Rails 在生产模式下运行,则默认启用 Debugger。要在开发模式下启用 Debugger,请添加以下内容:
Rack
使用库提供的 Rack Middleware:
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
是应用的名称,例如MyApp
、Backend
或Frontend
。SERVICE-VERSION
是版本,例如v1.0
、build_147
或v20170714
。
我们建议您在环境变量中设置这些变量,这样就无需在每次部署时更改源代码。
其他
对于纯 Ruby 应用,请在入口点明确启动代理:
require "google/cloud/debugger" Google::Cloud::Debugger.new(service_name: "SERVICE-NAME", service_version: "SERVICE-VERSION").start
其中:
SERVICE-NAME
是应用的名称,例如MyApp
、Backend
或Frontend
。SERVICE-VERSION
是版本,例如v1.0
、build_147
或v20170714
。
我们建议您在环境变量中设置这些变量,这样就无需在每次部署时更改源代码。
您的应用现已启用 Debugger。
控制台
如需使用 Google Cloud 控制台启用 Debugger,请完成以下步骤:
在节点池部分中,选择安全,然后选择针对每个 API 设置访问权限。
启用 Debugger。
选项:选择允许所有 Cloud API 的全面访问权限。
Compute Engine
确保使用访问权限范围选项允许所有 Cloud API 的全面访问权限创建 Compute Engine 实例,或者您具有以下访问权限范围之一:
https://www.googleapis.com/auth/cloud-platform
https://www.googleapis.com/auth/cloud_debugger
将
stackdriver
gem 添加到您的Gemfile
中:gem "stackdriver"
使用 Bundler 安装 gem:
bundle install
启用代理。
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
是应用的名称,例如MyApp
、Backend
或Frontend
。SERVICE-VERSION
是版本,例如v1.0
、build_147
或v20170714
。
我们建议您在环境变量中设置这些变量,这样就无需在每次部署时更改源代码。
如果 Rails 在生产模式下运行,则默认启用 Debugger。要在开发模式下启用 Debugger,请添加以下内容:
Rack
使用库提供的 Rack Middleware:
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
是应用的名称,例如MyApp
、Backend
或Frontend
。SERVICE-VERSION
是版本,例如v1.0
、build_147
或v20170714
。
我们建议您在环境变量中设置这些变量,这样就无需在每次部署时更改源代码。
其他
对于纯 Ruby 应用,请在入口点明确启动代理:
require "google/cloud/debugger"
Google::Cloud::Debugger.new(service_name: "SERVICE-NAME",
service_version: "SERVICE-VERSION").start
其中:
SERVICE-NAME
是应用的名称,例如MyApp
、Backend
或Frontend
。SERVICE-VERSION
是版本,例如v1.0
、build_147
或v20170714
。
我们建议您在环境变量中设置这些变量,这样就无需在每次部署时更改源代码。
Debugger 现可用于您的应用。
本地和其他位置
将
stackdriver
gem 添加到您的Gemfile
中:gem "stackdriver"
使用 Bundler 安装 gem:
bundle install
下载服务帐号凭据。
要在非 Google Cloud 托管的计算机上使用 Ruby 版 Cloud Debugger 代理,代理必须使用 Google Cloud 服务帐号凭据对 Cloud Debugger 服务进行身份验证。
使用 Google Cloud Console 的“服务帐号”页面为现有或新的服务帐号创建凭据文件。该服务帐号必须至少具有
Cloud Debugger Agent
角色。使用下载的凭据配置和启用代理。
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
是应用的名称,例如MyApp
、Backend
或Frontend
。SERVICE-VERSION
是版本,例如v1.0
、build_147
或v20170714
。
我们建议您在环境变量中设置这些变量,这样就无需在每次部署时更改源代码。
如果 Rails 在生产模式下运行,则默认启用 Debugger。要在开发模式下启用 Debugger,请添加以下内容:
Rack
使用库提供的 Rack Middleware:
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
是应用的名称,例如MyApp
、Backend
或Frontend
。SERVICE-VERSION
是版本,例如v1.0
、build_147
或v20170714
。
我们建议您在环境变量中设置这些变量,这样就无需在每次部署时更改源代码。
其他
对于纯 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
是应用的名称,例如MyApp
、Backend
或Frontend
。SERVICE-VERSION
是版本,例如v1.0
、build_147
或v20170714
。
我们建议您在环境变量中设置这些变量,这样就无需在每次部署时更改源代码。
现在,此调试程序便可与您的应用搭配使用。
Google Cloud 控制台中的“调试”页面可以显示本地源文件,无需上传,即可进行本地开发。请参阅手动选择源代码。