Google Cloud CLI 包含本機開發伺服器 (dev_appserver.py
)。您可以使用本機開發伺服器模擬在實際工作環境中執行 App Engine 應用程式,也可以用來存取 App Engine 舊版套裝服務。模擬的環境會強制執行一些沙箱限制,例如有限的系統功能和執行階段語言模組匯入,但不包括要求逾時或配額。
App Engine 適用的 SDK 所含程式庫提供多項服務 (包括 Datastore、Memcache 和工作佇列),而本機開發伺服器也會在本機中執行這些服務的工作,以便進行模擬。在開發伺服器中執行應用程式時,仍可使用 Google API HTTP 端點對正式基礎架構進行遠端 API 呼叫。
設定本機開發伺服器
如要執行本機開發伺服器工具,您必須設定下列項目:
- 請確認您已安裝 Python 3 解譯器,且與 gcloud CLI 所需的 Python 版本相容。
確認您已安裝 Google Cloud CLI 元件,其中包含 Python 3 專用的 App Engine 擴充功能 (
app-engine-python
):gcloud components list
如果未安裝
app-engine-python
元件,請執行下列指令:gcloud components install app-engine-python
執行下列指令,找出 Google Cloud SDK 的安裝路徑:
gcloud info
這項指令會傳回您安裝 Google Cloud SDK 的根目錄,例如:
Installation Root: [/Users/myname/google-cloud-sdk]
在安裝 Google Cloud CLI 的
/bin/
資料夾下找出dev_appserver.py
工具,例如:CLOUD_SDK_ROOT/bin/dev_appserver.py
請記下
dev_appserver.py
的路徑,以便稍後使用。
執行本機開發伺服器
設定本機開發伺服器並為應用程式建立 app.yaml
設定檔後,您就可以使用 dev_appserver.py
指令在本機執行應用程式。
如要啟動本機開發伺服器:
-
在包含
app.yaml
設定檔的目錄中執行dev_appserver.py
指令。指定應用程式目錄的路徑,例如:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py [PATH_TO_YOUR_APP]
或者,您也可以指定特定服務的設定檔,例如:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py app.yaml
如要變更通訊埠,請加入
--port
選項:python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --port=9999 [PATH_TO_YOUR_APP]
- 本機開發伺服器現已開始執行並監聽要求。您可以使用網路瀏覽器造訪 http://localhost:8080/,查看運作中的應用程式。
如果您使用了
--port
選項指定自訂通訊埠,請務必在瀏覽器中開啟該通訊埠。
如要透過指令列停止本機伺服器,請按下以下按鍵:
- macOS 或 Linux:Control + C
- Windows:Control + Break 鍵
指定應用程式 ID
如要透過本機伺服器查看應用程式 ID,以便代表某個電子郵件地址進行操作或執行其他作業,請使用 get_application_id()
函式。
如要取得運作中應用程式的主機名稱,請使用 get_default_version_hostname()
函式。
偵測應用程式執行階段環境
如要判定程式碼是在實際工作環境或本機開發伺服器中執行,請檢查 GAE_ENV
環境變數的值:
if os.getenv('GAE_ENV', '').startswith('standard'):
# Production in the standard environment
else:
# Local development server
使用郵件服務
本機開發伺服器可透過 SMTP 伺服器或安裝於本機的 Sendmail 來傳送呼叫 App Engine 郵件服務的電子郵件。
使用 SMTP
如要透過 SMTP 伺服器來啟用郵件支援功能,請叫用 dev_appserver.py
,如下所示:
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns [PATH_TO_YOUR_APP]
其中,--smtp_host
、--smtp_port
、--smtp_user
和 --smtp_password
選項必須設定為您所要的值。
使用 Sendmail
如要透過 Sendmail 啟用郵件支援功能,請叫用 dev_appserver.py
,如下所示:
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
本機伺服器會使用 sendmail
指令,以安裝的預設設定傳送電子郵件訊息。
使用網址擷取服務
應用程式使用 URL Fetch API 發出 HTTP 要求時,本機開發伺服器會直接從您的電腦發出要求。如果您是使用 Proxy 伺服器來存取網站,本機伺服器中的 URL Fetch 行為可能會與實際工作環境 App Engine 不同。
使用 Users 服務
App Engine 提供使用者服務,可簡化應用程式的驗證和授權程序。本機開發伺服器會使用本身的登入和登出頁面模擬 Google 帳戶的行為。
在本機開發伺服器執行時,函式會回傳本機伺服器上的 /_ah/login
和 /_ah/logout
網址。
指令列引數
如要瞭解本機開發伺服器指令選項,請參閱「本機開發伺服器選項」。