測試和部署您的應用程式

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

在本機環境中執行

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

部署您的應用程式

使用 gcloud app deploy 指令,將應用程式部署到 App Engine。此指令會使用 Cloud Build 服務自動建立容器映像檔,然後將該映像檔部署至 App Engine 彈性環境。容器中會包含您對執行階段映像檔所進行的任何本機修訂。

如要透過程式輔助的方式來部署應用程式,請使用 Admin API

事前準備

部署應用程式之前:

部署服務

您可以透過部署應用程式各項服務的版本及設定檔,將應用程式部署至 App Engine。

如要部署應用程式服務的某個版本,請執行下列指令:

gcloud app deploy .\bin\Debug\netcoreapp2.1\publish\app.yaml

根據預設,每次使用 deploy 指令時,該指令都會自動產生新版本 ID,並將任何流量轉送至新版本。

若要覆寫此行為,您可以使用 version 標記來指定版本 ID:

gcloud app deploy .\bin\Debug\netcoreapp2.1\publish\app.yaml --version myID

您也可以透過 --no-promote 標記,指定不要馬上將所有流量傳送至新版本:

gcloud app deploy .\bin\Debug\netcoreapp2.1\publish\app.yaml --no-promote

略過檔案

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

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

手動建構用於部署的容器

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

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

gcloud app deploy .\bin\Debug\netcoreapp2.1\publish\app.yaml --image-url gcr.io/YOUR_PROJECT_ID/YOUR_CONTAINER_IMAGE

使用自動化持續部署管道

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

.NET 專用的 Docker 基本映像檔

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

執行階段 Docker 指令
.NET FROM gcr.io/google-appengine/aspnetcore:1.0.11
.NET FROM gcr.io/google-appengine/aspnetcore:1.1.8
.NET FROM gcr.io/google-appengine/aspnetcore:2.0.7
.NET FROM gcr.io/google-appengine/aspnetcore:2.1.0

查看應用程式

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

gcloud app browse

在 App Engine 上測試

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

  1. 部署新版本並加入 --no-promote 標記:

    gcloud app deploy .\bin\Debug\netcoreapp2.1\publish\app.yaml --no-promote
  2. 前往下列網址以存取新版本:

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

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

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

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

    管理版本

    選取您剛剛部署的版本,然後按一下 [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 應用程式的必要權限。
本頁內容對您是否有任何幫助?請提供意見:

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

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