在 App Engine 彈性環境中使用 Go 的快速入門導覽課程

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

事前準備

開始執行及部署本快速入門導覽課程之前,請先安裝 Cloud SDK 再設定 App Engine 適用的 GCP 專案:

  1. 下載並安裝 Cloud SDK:

    下載 SDK

    附註:若您已經安裝 Cloud SDK,請執行下列指令進行更新:

    gcloud components update
    
  2. 建立新專案:

    gcloud projects create [YOUR_PROJECT_NAME] --set-as-default
    

    確認已建立專案:

    gcloud projects describe [YOUR_PROJECT_NAME]
    

    您會看見專案詳細資料,內容可能如下所示:

    createTime: year-month-hour
    lifecycleState: ACTIVE
    name: project-name
    parent:
    id: '433637338589'
    type: organization
    projectId: project-name-id
    projectNumber: 499227785679
    
  3. 初始化使用此專案的 App Engine 應用程式並選擇地區:

    gcloud app create --project=[YOUR_PROJECT_NAME]
    

    出現系統提示時,選取 App Engine 應用程式所在地區

  4. 請務必啟用專案的計費功能。您需將帳單帳戶連結至專案,才能將應用程式部署至 App Engine。

    啟用計費功能

  5. 安裝下列必要項目:

    • 執行以下指令,安裝 gcloud 元件 (包括 Go 適用的 App Engine 擴充功能):

      gcloud components install app-engine-go
      

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-east2 (香港)
  • asia-south1 (孟買)
  • australia-southeast1 (雪梨)

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

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

本快速入門導覽課程假設您已熟悉 Go 程式設計語言,並且已在系統上安裝 Go

下載 Hello World 應用程式

我們建立了 Go 適用的簡易版 Hello World 應用程式,方便您快速掌握在 Google Cloud Platform 部署應用程式的感覺。

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

    go get -u -d github.com/GoogleCloudPlatform/golang-samples/appengine_flexible
    

  2. 切換至包含範例程式碼的目錄。

    cd $GOPATH/src/github.com/GoogleCloudPlatform/golang-samples/appengine_flexible/helloworld
    

在本機電腦上執行 Hello World

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

  1. 啟動本機網路伺服器。

    go run *.go
    
  2. 在網路瀏覽器中,輸入下列網址:

    http://localhost:8080

範例應用程式發出的 Hello World 訊息會顯示在頁面上。在終端機視窗中同時按下 Ctrl+C,關閉網路伺服器。

在 App Engine 上部署並執行 Hello World

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

  1. helloworld 目錄執行下列指令,部署 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
    其中 YOUR_PROJECT_ID 是您的 GCP 專案 ID。

此時,顯示 Hello World 訊息的頁面是由執行於 App Engine 執行個體的網路伺服器提供。

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

請參閱下列各節,瞭解清除作業的資訊,並取得相關後續步驟的連結。

清除所用資源

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

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

    前往專案頁面

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

後續步驟

您已經完成 Hello World,接著可以開始探索下一個範例應用程式:Bookshelf 應用程式。Bookshelf 應用程式較為完整,但仍是一項基本的 Go 網路應用程式,可使用多項 Cloud Platform 功能,例如資料儲存、驗證、記錄、Pub/Sub 及其他功能。

開始 Bookshelf 應用程式教學課程

如需有關 App Engine 彈性環境的更多資訊,請參閱 App Engine 總覽

Hello World 程式碼總覽

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

helloworld.go

helloworld.go 檔案會註冊一個處理常式,這個處理常式會接聽對 / 發出的要求,並回應「Hello world!」訊息。

package main

import (
	"fmt"
	"log"
	"net/http"
)

func main() {
	http.HandleFunc("/", handle)
	http.HandleFunc("/_ah/health", healthCheckHandler)
	log.Print("Listening on port 8080")
	log.Fatal(http.ListenAndServe(":8080", nil))
}

func handle(w http.ResponseWriter, r *http.Request) {
	if r.URL.Path != "/" {
		http.NotFound(w, r)
		return
	}
	fmt.Fprint(w, "Hello world!")
}

func healthCheckHandler(w http.ResponseWriter, r *http.Request) {
	fmt.Fprint(w, "ok")
}

app.yaml

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

# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

runtime: go
env: flex

# 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/python/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,指定該應用程式使用彈性環境

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

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

這個網頁