開始開發在 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,請按照下列步驟操作:
或者,您可以使用已預先安裝 Ruby、Rails 和 Google Cloud CLI 的 Cloud Shell。
如要進一步瞭解如何安裝 Rails 及其依附元件,請參閱官方的「開始使用 Rails」指南。
完成事前準備後,您就能建立及部署 Rails 應用程式。以下各節將逐步引導您設定、執行及部署應用程式。
建立新的應用程式
建立新的 Rails 範例應用程式。
rails new appengine_example前往包含範例程式碼的目錄。
cd appengine_example
在本機執行應用程式
如何在本機電腦上執行新的 Rails 應用程式:
啟動本機網路伺服器。
bundle exec rails server在瀏覽器中前往 http://localhost:3000/。
範例應用程式會顯示 Rails 標誌,以及 Rails 和 Ruby 版本。
新增簡易頁面
接著來為 Rails 應用程式新增歡迎頁面。
如要產生新頁面的鷹架,請建立名為
WelcomeController且包含index動作的新 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 中描述的應用程式,並將新部署的版本設為預設版本,將其用來處理所有新流量。
在部署應用程式的同時,平台會檢查應用程式是否可提供服務,在這段期間,您可能會收到幾則重複的訊息。這是正常的狀況。請等候應用程式更新完成通知訊息。
若您更新了應用程式,您可以輸入第一次部署應用程式時使用的指令來部署更新版本。新的部署作業會為您的應用程式建立新版本,並將這個新版本晉升為預設版本。應用程式的較舊版本和相關聯的 VM 執行個體都會保留下來。請注意,這些應用程式版本和 VM 執行個體全部都是計費資源。
讀取 App Engine 記錄
Rails 應用程式現已部署完畢,接下來您可能會想讀取記錄。您可以使用 Google Cloud 控制台中的記錄檔探索工具或 gcloud app logs read 讀取應用程式記錄。進一步瞭解如何使用 gcloud CLI 讀取記錄。
清除所用資源
完成教學課程後,您可以清除所建立的資源,這樣資源就不會繼續使用配額,也不會產生費用。下列各節將說明如何刪除或關閉這些資源。
刪除專案
如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。
刪除專案的方法如下:
- 前往 Google Cloud 控制台的「Manage resources」(管理資源) 頁面。
- 在專案清單中選取要刪除的專案,然後點選「Delete」(刪除)。
- 在對話方塊中輸入專案 ID,然後按一下 [Shut down] (關閉) 以刪除專案。
刪除 App Engine 版本
若要刪除應用程式版本:
- 前往 Google Cloud 控制台的 App Engine「Versions」(版本) 頁面。
- 勾選您要刪除的非預設應用程式版本的核取方塊。
- 如要刪除應用程式版本,請按一下 「刪除」。