在 App Engine 彈性環境中建立 Python 應用程式
區域 ID
REGION_ID
是 Google 根據您在建立應用程式時選取的地區所指派的縮寫代碼。此代碼不對應至國家/地區或省份,即使部分區域 ID 可能與常用的國家/地區和省份代碼相似。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r
。如果是這段時間前建立的現有應用程式,網址可選擇是否包含地區 ID。
進一步瞭解區域 ID。
本快速入門導覽課程說明如何建立及部署可顯示簡短訊息的應用程式。您可以在 app.yaml
檔案中指定執行階段版本和作業系統,針對任何支援的 Python 版本使用本快速入門導覽課程中的範例應用程式。
事前準備
- 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.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
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.
-
如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
-
如要初始化 gcloud CLI,請執行下列指令:
gcloud init
- 由於新專案中 Cloud Build 使用服務帳戶的預設行為有所變更,以及預設安全機構政策變更,您可能需要將額外角色授予部署服務帳戶。如要進一步瞭解如何授予特定角色,請參閱疑難排解指南。
使用您的專案將 App Engine 應用程式初始化,然後選擇地區:
gcloud app create --project=[YOUR_PROJECT_ID]
收到系統提示時,選取 App Engine 應用程式的存放地區。
在本機電腦上安裝下列項目:
執行下列指令來安裝包含 Python 專用 App Engine 擴充功能的 gcloud 元件:
gcloud components install app-engine-python
設定 Python 開發環境。建議先在系統上安裝最新版的 Python、
pip
及其他相關工具。如需操作說明,請參閱 Python 開發環境設定指南。請執行
gcloud app describe
指令。在 Google Cloud 控制台中開啟 App Engine 資訊主頁。區域會顯示在頁面頂端附近。
將 Hello World 範例應用程式存放區複製到本機電腦。
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
您也可以下載 zip 格式的範例,然後解壓縮該檔案。
變更為包含範例程式碼的目錄。
cd python-docs-samples/appengine/flexible/hello_world
- 建立獨立的 Python 環境:
python3 -m venv env
source env/bin/activate
- 如果不在包含程式碼範例的目錄中,請前往包含
hello_world
程式碼範例的目錄。然後安裝依附元件:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
- 執行應用程式:
python main.py
- 在網路瀏覽器中,輸入下列網址:
http://localhost:8080
如果您使用 Cloud Shell,請在工具列中按一下「Web Preview」(網頁預覽)
,然後選取「Preview on port 8080」(透過以下通訊埠預覽:8080)。
- 尋找已安裝的 PowerShell。
- 以滑鼠右鍵按一下 PowerShell 的捷徑,然後以系統管理員的身分啟動 PowerShell。
- 建立獨立的 Python 環境。
python -m venv env
.\env\Scripts\activate
- 前往專案目錄並安裝依附元件。如果不在包含程式碼範例的目錄中,請前往包含程式碼範例的目錄。
hello_world
然後安裝依附元件:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
- 執行應用程式:
python main.py
- 在網路瀏覽器中,輸入下列網址:
http://localhost:8080
-
在
hello_world
目錄執行下列指令,以部署 Hello World 應用程式:gcloud app deploy
瞭解選用標記。
常見的
gcloud
指令標記- 加上
--version
標記以指定專門用來辨識您應用程式版本的 ID。如未指定,將由系統自動產生,例如:--version [YOUR_VERSION_ID]
-
加上
--project
標記以指定替代 Google Cloud 專案 ID,而不使用您在gcloud
工具中初始化為預設值的 ID。示例:--project [YOUR_PROJECT_ID]
範例:
gcloud app deploy --version pre-prod-5 --project my-sample-app
如要進一步瞭解如何透過指令列部署應用程式,請參閱測試及部署您的應用程式。如需所有指令標記的清單,請參閱
gcloud app deploy
參考資料。 - 加上
-
啟動瀏覽器,並前往
https://PROJECT_ID.REGION_ID.r.appspot.com
查看應用程式 ,其中gcloud app browse
PROJECT_ID
是您的專案 ID。 Google Cloud - 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.
- 設定
env: flex
,指出應用程式使用 App Engine 彈性環境。 指定應用程式使用的執行階段。如果排除
runtime_version
設定,App Engine 會使用最新 Python 版本做為應用程式的預設版本。entrypoint
會告訴 App Engine 如何啟動應用程式。這個應用程式使用gunicorn
提供 Python 應用程式,取代 Flask 的開發伺服器 (在本機執行時使用)。App Engine 啟動應用程式時會設定$PORT
變數。如要進一步瞭解entrypoint
,請參閱啟動應用程式一節。如要進一步瞭解 Python 執行階段如何運作,請參閱 Python 執行階段。
如要進一步瞭解如何設計應用程式以運用各種版本和服務,請參閱 App Engine 總覽。
如需瞭解 App Engine 設定的詳情,請參閱使用 app.yaml 設定應用程式一文。
其他必要條件
App Engine 位置
App Engine 具有「地區性」,這表示執行應用程式的基礎架構位於特定地區,且由 Google 代管,可為該地區內的所有區域提供備援功能。
選擇應用程式的執行地區時,請將您在延遲時間、可用性和耐用性方面的要求,做為主要考量。一般來說,您可以選擇距離您應用程式使用者最近的地區,但您也應該考慮 App Engine 的可用位置,以及應用程式使用的其他Google Cloud 產品和服務的位置。如果跨多個位置使用服務,可能會影響應用程式的延遲時間和定價。
應用程式的地區設定完成後即無法更改。
如果您已建立 App Engine 應用程式,可以透過下列方式查看其區域:
下載 Hello World 應用程式
我們建立了 App Engine 適用的 Hello World 應用程式,方便您快速瞭解如何在 Google Cloud中部署應用程式。
在本機電腦上執行 Hello World
在本機電腦上執行 Hello World 應用程式:
Mac OS / Linux
Windows
請使用 PowerShell 執行 Python 套件。
此時頁面會顯示來自範例應用程式的 Hello World 訊息。請在終端機視窗中,按下 Ctrl+C 鍵來關閉網路伺服器。
在 App Engine 上部署並執行 Hello World
如要將您的應用程式部署到 App Engine 彈性環境:
此時,顯示 Hello World 訊息的頁面是由在 App Engine 執行個體上運作的網路伺服器提供。
恭喜!您已成功將第一個 App Engine 應用程式部署至 App Engine 彈性環境!
如果部署應用程式時發生錯誤,請參閱疑難排解提示。請參閱下列各節,瞭解清除所用資源的資訊,並取得相關後續步驟的連結。
清除所用資源
如要避免支付費用,您可以刪除 Google Cloud 專案,這樣系統就會停止對該專案使用的所有資源計費。
後續步驟
瞭解整個平台
現在您已瞭解如何開發及部署 App Engine 應用程式,接著可進一步探索 Google Cloud。您已安裝 Google Cloud CLI,因此擁有能與 Cloud SQL、Cloud Storage、Firestore 等產品互動的工具。
瞭解 App Engine 彈性環境
以下是一些可協助您瞭解 App Engine 的主題:
Hello World 程式碼審查
Hello World 是再簡單不過的 App Engine 應用程式,只包含一項服務、只有一種版本,且所有程式碼都位於應用程式的根目錄中。本節將詳細說明每個應用程式檔案。
main.py
Hello World 是基本的單一檔案 Flask 應用程式。
app.yaml
app.yaml
檔案說明應用程式的下列設定:
requirements.txt
requirements.txt
和 Python 套件管理員 pip
會宣告及安裝應用程式依附元件。Hello World 需要 Flask 網路架構,以及 WSGI 伺服器 Gunicorn。
requirements.txt
用於定義程式庫;該程式庫將安裝於本機,也會在部署至 App Engine 時一併安裝。