在 Python 3 中測試及部署升級的應用程式

區域 ID

REGION_ID 是 Google 根據您在建立應用程式時選取的地區所指派的簡寫代碼。雖然某些區域 ID 可能看起來與常用的國家/地區代碼相似,但此代碼並非對應國家/地區或省份。如果是 2020 年 2 月後建立的應用程式,App Engine 網址會包含 REGION_ID.r。如果是在此日期之前建立的現有應用程式,網址中則可選擇加入地區 ID。

進一步瞭解區域 ID

將應用程式升級為同時支援 Python 2 和 Python 3 後:

  1. 在本機 Python 3 環境中測試應用程式

  2. 在 App Engine 中部署及測試,不必將流量轉移至應用程式。

  3. 將流量遷移至應用程式

您可能需要花費大量時間修正相容性問題,這些問題在您在 Python 3 環境中執行升級應用程式前,不會顯示出來。

如要在測試期間避免使用實際工作環境資料和 Google Cloud 配額,您可以使用下列模擬器:

其他 Google Cloud 服務 (例如 Cloud Storage 和 Memorystore) 則不提供模擬器。

本機測試

如要在部署前先測試應用程式的功能,請按照指示在 Python 3 執行階段在本機執行

在轉移流量之前在 App Engine 上測試

在將流量轉送至升級後的 Python 應用程式之前,請先將應用程式部署至 App Engine Python 3 執行階段,進行另一輪測試。例如,您可採取下列做法來測試應用程式的 default 服務:

  1. 請確認您已更新應用程式的設定檔,以便與 Python 3 執行階段相容。

    請勿變更將要求傳送至模擬器或測試資料庫的環境變數,直到您準備好將流量轉移至應用程式為止。

  2. 部署新版本,但避免系統將流量自動轉送至新版本:

    gcloud app deploy --no-promote

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

    https://VERSION_ID-dot-default-dot-PROJECT_ID.REGION_ID.r.appspot.com

您現在可以在 App Engine 執行階段環境中測試新版本。您可以查看應用程式記錄來進行偵錯。詳情請參閱「寫入應用程式記錄」。

系統會將傳送至 https://PROJECT_ID.REGION_ID.r.appspot.com 的要求轉送至先前設為接收流量的版本。

如要測試其他服務的新版本,請按照相同程序操作,但將網址中的 default 替換為服務名稱:

https://VERSION-dot-SERVICE-dot-PROJECT_ID.REGION_ID.r.appspot.com

如要進一步瞭解如何指定特定服務和版本,請參閱要求的轉送方式一文。

將流量遷移至應用程式

準備好將流量傳送至新版本時,請按照下列步驟操作:

  1. 更新 app.yaml 檔案中的環境變數,將要求傳送至實際運作的資料庫和其他服務,而非您使用的任何模擬器或測試資料。

  2. 如要避免系統在部署後自動將流量轉送至新版本,請按照下列步驟操作:

    gcloud app deploy --no-promote

  3. 確認應用程式可與正式版資料庫和資料儲存庫互動後,請使用 Google Cloud 控制台遷移流量:

    管理版本

    選取已升級應用程式的最新版本,然後按一下「遷移流量」