App Engine 彈性環境中的 Ruby 快速入門導覽課程

本快速入門導覽課程會說明如何建立小型 App Engine 應用程式,讓畫面顯示簡短訊息。

事前準備

在執行及部署這個範例之前,請先採取下列步驟:

  1. 使用 Google Cloud Platform 主控台建立新的 GCP 專案和 App Engine 應用程式,並啟用計費功能:
    前往 App Engine

    在系統提示時,選取 App Engine 應用程式的存放地區,然後啟用計費功能。

  2. 在本機安裝下列必要項目:
    1. 下載並安裝 Git
    2. 下載並安裝 Cloud SDK。依照 Cloud SDK 頁面中的操作說明,在 gcloud 指令列工具中初始化並設定 GCP 專案 ID:
      下載 SDK
  3. 選用方法:您也可以使用 Google Cloud Shell,其中已安裝 Git 和 Cloud SDK 且含有許多其他功能,如語言支援和程式碼編輯器。

    啟動 Google Cloud Shell 後,您可以繼續其餘的教學課程,並在 Cloud Shell 內執行您的指令。

App Engine 位置

App Engine 具有「地區性」,這表示執行您應用程式的基礎架構位於特定地區,並且由 Google 代管,可為該地區內的所有區域提供備援功能。

選擇執行應用程式的地區時,請將您的延遲、可用性和耐用性需求當做主要考量。您通常可選擇距離您應用程式使用者最近的地區,但也應該考慮應用程式使用的其他 GCP 產品和服務所處的位置。如果跨多個位置使用服務,可能會影響應用程式的延遲時間和定價

App Engine 可在下列地區使用:

  • northamerica-northeast1 (蒙特婁)
  • us-central (愛荷華州)
  • us-west2 (洛杉磯)
  • us-east1 (南卡羅來納州)
  • us-east4 (北維吉尼亞州)
  • southamerica-east1 (聖保羅) *
  • europe-west (比利時)
  • europe-west2 (倫敦)
  • europe-west3 (法蘭克福)
  • asia-northeast1 (東京)
  • asia-south1 (孟買)
  • australia-southeast1 (雪梨)

* 針對使用聖保羅地區的客戶,所有地區性產品的服務水準協議仍具有效力。然而,如果是橫跨北美洲和南美洲的多地區和跨地區功能,其可用性或效能會暫時降低。

應用程式的地區經設定後即無法更改。

如果您已建立 App Engine 應用程式,可執行 gcloud app describe 指令或開啟 GCP 主控台的 App Engine 資訊主頁查看地區。App Engine 應用程式的地區會列於 http://[YOUR_PROJECT_ID].appspot.com 下方。

本快速入門導覽課程將示範使用 Sinatra 網路架構撰寫,並且可以部署到 App Engine 的簡易 Ruby 應用程式。雖然本範例是使用 Sinatra,但您也可以使用其他架構,如 Ruby on Rails

下載 Hello World 應用程式

我們建立了 Ruby 適用的 Hello World 簡易應用程式,方便您快速瞭解在 App Engine 彈性環境部署應用程式的操作步驟。依照下列指令列的步驟,將 Hello World 下載到本機電腦。

下載範例應用程式並前往應用程式目錄:

  1. 將 Hello World 範例應用程式存放區複製到本機電腦:

    git clone https://github.com/GoogleCloudPlatform/ruby-docs-samples
    

    您也可以使用 zip 格式下載範例,然後解壓縮該檔案。

  2. 變更為包含範例程式碼的目錄:

    cd ruby-docs-samples/appengine/hello_world
    

在本機電腦上執行 Hello World

如要在本機電腦上執行 Hello World 應用程式:

  1. 輸入下列指令來安裝這個專案的依附元件:

    bundle install
    
  2. 啟動本機網路伺服器:

    bundle exec ruby app.rb -p 8080
    
  3. 在您的網路瀏覽器中,輸入下列網址:

    http://localhost:8080
    

    您可以從頁面顯示的範例應用程式中看到「Hello World」訊息。

    在終端機視窗中,同時按下 Ctrl+C 來關閉網路伺服器。

    在 App Engine 上部署並執行 Hello World

    如要將您的應用程式部署到 App Engine 彈性環境:

    1. hello_world 目錄執行下列指令,以部署 Hello World 應用程式:
      gcloud app deploy
      瞭解選用標記

      常見的 gcloud 指令標記

      • 加上 --version 標記以指定專門用來辨識您應用程式版本的 ID;如未加入,將由系統自動產生。例如:--version [YOUR_VERSION_ID]
      • 加上 --project 標記以指定替代 GCP 專案 ID,而不使用您在 gcloud 工具中初始化為預設值的 ID。例如:--project [YOUR_PROJECT_ID]

      範例:

      gcloud app deploy --version pre-prod-5 --project my-sample-app

      如要進一步瞭解如何透過指令列部署應用程式,請參閱測試及部署您的應用程式。如需所有指令標記的清單,請參閱 gcloud app deploy 參考資料。

    2. 執行下列指令來開啟瀏覽器,並在 http://YOUR_PROJECT_ID.appspot.com 檢視該應用程式:
      gcloud app browse
    此時,顯示 Hello World 訊息的頁面是由在 App Engine 執行個體上運作的網路伺服器提供。

    恭喜! 您已經將第一個 Ruby 應用程式成功部署至 App Engine 彈性環境!

    請參閱以下各節,瞭解清除作業的資訊以及您可能採取的後續步驟。

清除

如要避免支付費用,您可以刪除 GCP 專案,這樣系統就會停止對該專案使用的所有資源收取費用。

  1. 前往 GCP 主控台的「Projects」(專案) 頁面。

    前往專案頁面

  2. 在專案清單中選取要刪除的專案,然後按一下 [Delete] (刪除)
  3. 在對話方塊中輸入專案 ID,按一下 [Shut down] (關閉) 即可刪除專案。

後續步驟

瞭解整個平台

現在您已瞭解如何開發及部署 App Engine 應用程式,接著可進一步瞭解 Google Cloud Platform 的其他部分。由於您已安裝 Google Cloud SDK,因此您已經擁有能與 Google Cloud SQL、Google Cloud Storage、Google Cloud Datastore 等產品互動的工具。

如需瞭解如何建立使用整個平台的應用程式,而非僅使用 App Engine,我們有提供逐步操作說明,請參考建立 Bookshelf 應用程式的快速入門導覽課程。

瞭解 App Engine 彈性環境

以下幾個主題可以協助您進一步瞭解 App Engine:

Hello World 程式碼總覽

Hello World 最簡單的 App Engine 應用程式,它只包含一項服務,只有一種版本,而且所有的程式碼都位在應用程式的根目錄中。本節將詳細說明每個應用程式檔案。

app.rb

Hello World 是相當基本的單一檔案 Sinatra 應用程式。

require "sinatra"

get "/" do
  "Hello world!"
end

app.yaml

app.yaml 檔案說明應用程式的部署設定:

runtime: ruby
env: flex
entrypoint: bundle exec ruby app.rb

# This sample incurs costs to run on the App Engine flexible environment.
# The settings below are to reduce costs during testing and are not appropriate
# for production use. For more information, see:
# https://cloud.google.com/appengine/docs/flexible/ruby/configuring-your-app-with-app-yaml
manual_scaling:
  instances: 1
resources:
  cpu: 1
  memory_gb: 0.5
  disk_size_gb: 10

app.yaml 檔案在此處指定應用程式使用的執行階段,並設定 env: flex 以指定該應用程式使用彈性環境

Gemfile

Gemfile 用來指定應用程式的 RubyGem 依附元件,而 Bundler 則用於宣告並安裝依附元件。Hello World 應用程式需要一個 Ruby gem:Sinatra 網路架構:

source "https://rubygems.org"

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

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

這個網頁
Ruby 適用的 App Engine 彈性環境文件