开始开发在 App Engine 柔性环境中运行的 Ruby on Rails 应用。 您创建的应用将在支持所有 Google 产品的同一基础架构上运行,因此您可以放心,这些应用能顺畅扩容,以满足所有用户(无论是几个还是几百万个)的需求。
本教程假设您熟悉 Rails 网页开发,并将引导您部署新的 Rails 应用。
本教程需要 Ruby 2.6 或 2.7。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure 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.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
为 Rails 设置本地环境
如需为 Rails 开发设置本地环境,您需要执行以下操作:
或者,您也可以使用 Cloud Shell,它包含Ruby、Rails 以及前面已安装的 Google Cloud CLI。
如需详细了解如何安装 Rails 及其依赖项,请参阅官方《Rails 使用入门》指南。
满足前提条件后,您可以创建和部署 Rails 应用。以下部分将引导您配置、运行和部署应用。
创建新应用
创建新的 Rails 示例应用。
rails new appengine_example
转到包含示例代码的目录。
cd appengine_example
在本地运行应用
要在本地计算机上运行新 Rails 应用,请执行以下操作:
使用 Bundler 安装依赖项。
bundle install
启动本地网络服务器。
bundle exec rails server
在浏览器中,转到 http://localhost:3000/。
您可以从页面上显示的示例应用中看到“耶!您正在使用 Rails!”消息。
添加简单页面
现在,将欢迎页面添加到生成的 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 项目 IDREGION_ID
:App Engine 分配给您的应用的代码
页面中会显示以下内容。
在此期间,您的请求由在 App Engine 柔性环境中运行的 Rails 应用处理。
此命令按照 app.yaml
中的说明部署应用,并将新部署的版本设置为默认版本,从而使其能够为所有新流量提供服务。在应用部署时,您可能会在平台检查应用是否提供服务时看到多条重复消息。这很正常。等待应用更新已完成的通知消息。
如果您更新应用,则只需输入您在首次部署应用时使用的命令,即可部署更新后的版本。新部署会创建应用的新版本并将其提升为默认版本。 应用的旧版本仍会保留,与其关联的虚拟机实例也是一样。 请注意,所有这些应用版本和虚拟机实例都属于可计费资源。
读取 App Engine 日志
部署 Rails 应用后,您可能需要读取日志。您可以通过使用 Cloud Console 中的日志浏览器或使用 gcloud app logs read
来读取应用日志。如需了解详情,请参阅使用 gcloud
CLI 读取日志。
清理资源
完成本教程后,您可以清理您创建的资源,让它们停止使用配额,以免产生费用。以下部分介绍了如何删除或关停这些资源。
删除项目
若要避免产生费用,最简单的方法是删除您为本教程创建的项目。
要删除项目,请执行以下操作:
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
删除 App Engine 版本
要删除应用版本,请执行以下操作:
- In the Google Cloud console, go to the Versions page for App Engine.
- Select the checkbox for the non-default app version that you want to delete.
- 如需删除应用版本,请点击 删除。