开始开发在 App Engine 柔性环境中运行的 Ruby on Rails 应用。 您创建的应用将在支持所有 Google 产品的同一基础架构上运行,因此您可以放心,这些应用能顺畅扩容,以满足所有用户(无论是几个还是几百万个)的需求。
本教程假设您熟悉 Rails 网页开发,并将引导您部署新的 Rails 应用。
本教程支持并需要 Ruby 3.0 或更高版本。
准备工作
- 登录您的 Google Cloud 账号。如果您是新手 Google Cloud, 请创建一个账号来评估我们的产品在 实际场景中的表现。新客户还可获享 $300 赠金,用于 运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
安装 Google Cloud CLI。
-
如果您使用的是外部身份提供方 (IdP),则必须先使用联合身份登录 gcloud CLI。
-
如需初始化 gcloud CLI,请运行以下命令:
gcloud init
为 Rails 设置本地环境
如需为 Rails 开发设置本地环境,您需要执行以下操作:
或者,您也可以使用 Cloud Shell, 它包含 Ruby、Rails 以及前面已安装的 Google Cloud CLI。
如需详细了解如何安装 Rails 及其依赖项,请参阅 官方 Rails 入门 指南。
满足前提条件后,您可以创建和部署 Rails 应用。以下部分将引导您配置、运行和部署应用。
创建新应用
创建新的 Rails 示例应用。
rails new appengine_example转到包含示例代码的目录。
cd appengine_example
在本地运行应用
要在本地计算机上运行新 Rails 应用,请执行以下操作:
启动本地 Web 服务器。
bundle exec rails server在浏览器中,转到 http://localhost:3000/。
示例应用会显示 Rails 徽标以及 Rails 和 Ruby 版本。
添加简单页面
现在,将欢迎页面添加到生成的 Rails 应用。
要为新页面生成基架,请通过
index操作创建名为WelcomeController的新 Rails 控制器。bundle exec rails generate controller Welcome index打开文件
app/views/welcome/index.html.erb以查看以下样板 HTML。根据需要修改文件。例如,您可以使用以下内容:
将
index控制器操作设置为 Rails 的根操作。 然后,每当用户访问 Rails 应用时,他们就会看到欢迎页面。打开文件
config/routes.rb可查看以下生成的内容。要修改此文件,请添加
root 'welcome#index'。保存并关闭文件。像以前那样测试 Rails 应用。
将应用部署到 App Engine 柔性环境
App Engine 柔性环境使用名为 app.yaml 的文件来描述应用的部署配置。如果此文件不存在,则
gcloud CLI 会尝试推测部署配置。但是,建议您最好提供该文件,因为 Rails 在生产环境中需要密钥。
如需配置示例应用以便将其部署到 App Engine 中,请在示例应用目录的根目录下创建一个名为 app.yaml 的新文件,并添加以下内容:
配置 Rails 密钥
在生产环境中部署 Rails 应用时,请将环境变量 SECRET_KEY_BASE 设置为用于保护用户会话数据的密钥。此环境变量在 config/secrets.yml 文件中读取。
生成新的密钥。
bundle exec rails secret复制生成的密钥。您会在后续步骤中用到该密钥。
打开先前创建的
app.yaml文件,然后添加env_variables部分。env_variables用于设置 App Engine 柔性环境中的production环境变量。app.yaml文件的内容应类似如下示例,其中[SECRET_KEY]应替换为您复制的密钥。
设置 App Engine 柔性环境应用
如果这是您第一次部署应用,您需要创建 App Engine 柔性环境应用来帮助您选择要运行 Rails 应用的区域。要了解详情,请参阅 区域和可用区。
创建 App Engine 应用。默认情况下,以下命令会创建两个实例:
gcloud app create选择支持 Ruby 版 App Engine 柔性环境应用的区域。
部署到 App Engine 柔性环境
通过运行以下命令部署示例应用:
gcloud app deploy
等待消息通知您更新已完成。此过程可能需要几分钟。
访问已部署的 Rails 应用
要检索项目 ID,请运行
gcloud info。在浏览器中,输入以下网址:
https://PROJECT_ID.REGION_ID.r.appspot.com替换以下内容:
PROJECT_ID:您的 Google Cloud 项目 ID。REGION_ID:App Engine 分配给您的应用的代码
页面中会显示以下内容。

在此期间,您的请求由在 App Engine 柔性环境中运行的 Rails 应用处理。
此命令按照 app.yaml 中的说明部署应用,并将新部署的版本设置为默认版本,从而使其能够为所有新流量提供服务。在应用部署时,您可能会在平台检查应用是否提供服务时看到多条重复消息。这很正常。等待应用更新已完成的通知消息。
如果您更新应用,则只需输入您在首次部署应用时使用的命令,即可部署更新后的版本。新部署会创建应用的新版本并将其提升为默认版本。应用的旧版本仍会保留,与其关联的虚拟机实例也是一样。 请注意,所有这些应用版本和虚拟机实例都属于可计费资源。
读取 App Engine 日志
部署 Rails 应用后,您可能需要读取日志。如需读取应用日志,您可以使用控制台中的 Google Cloud Logs Explorer,也可以使用gcloud app logs read。如需了解详情,请参阅使用 gcloud CLI 读取日志
。
清理资源
完成本教程后,您可以清理您创建的资源,让它们停止使用配额,以免产生费用。以下部分介绍了如何删除或关停这些资源。
删除项目
为了避免产生费用,最简单的方法是删除您为本教程创建的项目。
要删除项目,请执行以下操作:
- 在 Google Cloud 控制台中,前往 管理资源 页面。
- 在项目列表中,选择要删除的项目,然后点击删除。
- 在对话框中输入项目 ID,然后点击 关停 以删除项目。
删除 App Engine 版本
要删除应用版本,请执行以下操作:
- 在 Google Cloud 控制台中,打开 App Engine 的版本页面。
- 选中要删除的非默认应用版本对应的复选框。
- 如需删除应用版本, 请点击 删除。