區域 ID
REGION_ID
是 Google 根據您在建立應用程式時選取的地區所指派的簡寫代碼。雖然某些區域 ID 可能看起來與常用的國家/地區代碼相似,但此代碼並非對應國家/地區或省份。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r
。如果是在此日期之前建立的現有應用程式,網址中則可選擇加入地區 ID。
進一步瞭解區域 ID。
這篇指南可協助您開始使用 App Engine,並熟悉開發、部署及管理 Go 應用程式的相關事務。
費用
操作本指南步驟並不會產生任何費用,且單獨執行這個範例應用程式也不會超過您的免費配額。
設定您的開發環境
您可以在本機電腦上使用自己熟悉的工具,也可以選擇使用 Cloud Shell。Cloud Shell 已安裝 Google Cloud CLI,您的環境已設定完成,並提供許多其他功能。
本機電腦
安裝 Go 並設定 gcloud CLI。
Cloud Shell
啟動 Cloud Shell,Cloud Shell 包含所有您需要預先安裝的工具:
建立 Google Cloud 專案
專案是使用 Google Cloud的必要條件,也是使用所有Google Cloud 服務的基礎。
- 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.
-
Enable the Cloud Build API.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
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.
-
Enable the Cloud Build API.
-
Install the Google Cloud CLI.
-
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- 建立您的 App Engine 應用程式及相關資源。您必須選擇建立的位置,而且一經設定即無法變更。
gcloud app create
go-app/
:Go 1.11 服務的目錄。app.yaml
:服務的配置設定。main.go
:應用程式程式碼。
針對 Go 1.11 服務建立名為
go-app
的新資料夾:mkdir go-app
在
go-app/
資料夾中建立名為app.yaml
的檔案,並新增下列內容:這是 App Engine 應用程式的最簡單設定,它會向 App Engine 表示您使用的是 Go 1.11 執行階段。
app.yaml
檔案也可以指定網路設定或資源調度設定等等。詳情請參閱app.yaml
參考資料。在
go-app/
資料夾中建立main.go
檔案。新增
package main
陳述式,將程式碼視為可執行的程式:package main
如要將服務成功部署在 Go 1.11 執行階段中,您必須在至少一個 Go 來源檔案的開頭定義
package main
陳述式,且該檔案必須與服務的app.yaml
檔案位於同一個目錄中。匯入下列套件:
定義您的 HTTP 處理常式:
http.ResponseWriter
物件會組合 HTTP 伺服器回應,因此將資料寫入該物件,即可將資料傳送至瀏覽器。http.Request
物件代表傳入的 HTTP 要求的資料結構。登錄 HTTP 處理常式:
main
函式是可執行程式的進入點,因此會啟動應用程式。該函式一開始會呼叫http.HandleFunc
函式,後者會通知http
套件使用indexHandler
函式處理所有傳送至網路根目錄 ("/"
) 的要求。如果尚未設定
PORT
環境變數,8080
通訊埠會做為預設值來使用。應用程式在 App Engine 上執行時,系統會為您設定PORT
環境變數,但在本機測試應用程式時,您可以將PORT
設為任何偏好的值。在
app.yaml
檔案所在的go-app
目錄中,使用下列指令將網路服務部署至 App Engine:gcloud app deploy
如要啟動瀏覽器並在
https://PROJECT_ID.REGION_ID.r.appspot.com
查看網路服務,請執行下列指令:gcloud app browse
在 Google Cloud 控制台中查看 App Engine 服務:
您應該會看到名為
default
的服務。default 服務可透過下列網址公開存取:https://PROJECT_ID.REGION_ID.r.appspot.com
查看您的版本:
畫面上應該會列出一個加上時間戳記的版本,且與您的部署互相對應。
- 如要進一步瞭解如何寫入應用程式記錄和解讀系統記錄,請參閱讀取及寫入應用程式記錄一文。
- 如要深入瞭解 App Engine 的運作方式,請參閱 Go 執行階段環境一文。
- 請參閱處理要求和轉送要求的相關說明。
撰寫適用於 App Engine 的基本網路服務
瞭解如何撰寫網路服務及宣告執行階段設定。
結構化您的檔案
您的服務會有以下的檔案結構:
建立 app.yaml
檔案
每個 App Engine 專案都有一個 app.yaml
設定檔,用於指定服務的執行階段環境設定。缺少這個檔案將無法部署服務。
建立 main.go
檔案
本範例使用 net/http
套件來建立會顯示「Hello world」的 HTTP 伺服器。
如何設定 main.go
檔案:
在 App Engine 上部署網路服務
恭喜!您剛剛已在 App Engine 上建立服務並部署完成。
服務和版本
您為應用程式部署的第一個服務將會是預設服務。您可以在 app.yaml
檔案中指定服務名稱,但如果省略名稱,系統會將其視為 default
。您可以部署預設服務以外的多項服務。
您隨時都能執行 gcloud app deploy
指令來更新服務。每當您進行部署作業時,系統會建立新版本並自動將流量轉送至最新版本。
如要確認建立服務及部署版本:
如需瞭解將要求傳送至特定服務和版本的方式,請參閱要求的轉送方式。
後續步驟
恭喜!您剛剛已完成設定網路應用程式並將其部署至 App Engine。
請瀏覽下列頁面,瞭解如何將其他功能新增至您的應用程式: