測試和部署您的應用程式

瞭解如何在本機環境中執行應用程式、進行部署,然後在 App Engine 上測試。

在本機環境中執行

如要在部署前先測試應用程式的功能,請使用您常用的開發工具,在本機環境中執行應用程式。

如需詳細資料,包括需要外掛程式的特定指令,請參閱針對 Java 8/Jetty 9 執行階段進行本機測試針對 Java 8 執行階段進行本機測試的相關說明。

部署應用程式

事前準備

部署應用程式之前:

部署服務

您可以使用任一支援的工具,將 Java 應用程式部署至 App Engine 彈性環境。如要進行指令列部署,請透過 Cloud SDK 使用 gcloud app deploy,或使用 MavenGradle 外掛程式。如要透過 IDE 進行部署,請使用 IntelliJEclipse 外掛程式。如要透過程式部署應用程式,請使用 Admin API

略過檔案

部署服務時,如果您不想讓系統將特定的檔案和目錄一併上傳至 GCP,可以使用 .gcloudignore 檔案來進行設定。如要略過不必隨著部署作業一起上傳的建構構件和其他檔案,這個方法十分實用。

如要進一步瞭解 .gcloudignore 檔案語法,請參閱 gcloud 參考資料

手動建構用於部署的容器

如果您想要在 Google Cloud Platform 的外部建構容器映像檔,必須先將映像檔上傳至容器映像檔的存放區,才能使用 gcloud app deploy 指令將映像檔部署至 App Engine。

舉例來說,如果您在本機環境中使用 Docker 建構容器映像檔,則可將這些映像檔推送至 Google Container Registry,然後在指令的 --image-url 標記中指定映像檔的網址:

gcloud app deploy src/main/appengine/app.yaml --image-url gcr.io/YOUR_PROJECT_ID/YOUR_CONTAINER_IMAGE

使用自動化持續部署管道

您可以使用 Cloud Build 自動在持續部署管道中進行部署。詳情請參閱 Cloud Build 說明文件中的部署構件使用建構觸發條件自動建構相關內容。

Java 適用的 Docker 基本映像檔

如果您想從頭建構 Java 自訂執行階段應用程式,請在 Dockerfile 中使用提供的基本映像檔:

執行階段 Docker 指令
Java 8 FROM gcr.io/google_appengine/openjdk
Java 8 / Jetty 9 FROM gcr.io/google-appengine/jetty

查看應用程式

將應用程式部署至 App Engine 之後,您可以執行下列指令啟動瀏覽器,並前往 http://YOUR_PROJECT_ID.appspot.com 查看應用程式:

gcloud app browse

在 App Engine 上測試

您可以先在 App Engine 上測試新版本,然後再設定該版本以接收流量。例如,您可採取下列做法測試 default 服務的新版本:

  1. promote 參數設為 false 來部署新版本:

  2. 前往下列網址存取新版本:

    http://VERSION_ID.default.YOUR_PROJECT_ID.appspot.com
    

    您現在可以在 App Engine 執行階段環境中測試新版本。您可以在 Google Cloud Platform 主控台的 Stackdriver 記錄檢視器中查看應用程式的記錄,藉此進行偵錯。詳情請參閱寫入應用程式記錄一文。

    系統仍會將傳送至 http://YOUR_PROJECT_ID.appspot.com 的要求轉送至先前設為要接收流量的版本。

  3. 當您要將流量傳送至新版本時,請使用 GCP Console 來遷移流量:

    管理版本

    選取您剛剛部署的版本,然後按一下 [Migrate traffic] (遷移流量)

您只要將網址中的 default 替換成服務名稱,即可透過相同程序測試其他服務的新版本:

http://VERSION_ID.SERVICE_ID.YOUR_PROJECT_ID.appspot.com
如要進一步瞭解如何指定特定服務和版本,請參閱要求的轉送方式

疑難排解

部署應用程式時,您可能會看到以下這個常見的錯誤訊息:

PERMISSION_DENIED: Operation not allowed
The "appengine.applications.create" permission is required.
如果 GCP 專案缺少必要的 App Engine 應用程式gcloud app deploy 指令嘗試執行 gcloud app create 指令時可能會失敗。只有具備「擁有者」角色的帳戶才具有建立 App Engine 應用程式的必要權限。
本頁內容對您是否有任何幫助?請提供意見:

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

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