支援舊版執行階段

舊版執行階段包括第一代語言版本,這些版本已不再由開放原始碼社群維護。由於許多 App Engine 客戶仍依賴這些第一代語言版本,因此 Google 一直為 App Engine 標準環境中的下列舊版執行階段提供長期支援:

Google 即將將舊版執行階段轉移至支援終止階段。 詳情請參閱支援時間表

我們的承諾

系統已於 2024 年 1 月 30 日停止支援舊版執行階段。

我們對舊版執行階段進行了下列變更:

  • 我們盡可能將舊版執行階段的元件還原為未分叉的開放原始碼狀態。我們必須大幅限制及修改部分執行階段,才能在資料中心安全地執行您的應用程式。我們將變更資料中心中執行階段的運作方式,長期為這些執行階段提供安全且可擴充的環境。

  • 新增完整建構系統,支援套件存放區、慣用元件建構和資產存放區。

安全性更新

如果社群停止維護語言版本,您的應用程式可能會出現安全漏洞,且沒有公開可用的修正程式。因此,在某些 App Engine 執行階段中繼續執行應用程式,比升級至具有社群支援語言的執行階段,風險更高。

我們無法保證修正應用程式使用的所有 API。您可能會發現,只有較新語言版本的程式庫提供修正。

支援 App Engine 套裝組合服務

Python 2.7、Java 8、Go 1.11 和 PHP 5.5 執行階段提供已綁定的 App Engine 服務和 API,例如 Blobstore、Memcache 和工作佇列。

您可以在特定第二代執行階段中,繼續存取許多這類組合服務和 API:

您的應用程式可以透過語言慣用程式庫呼叫隨附的服務 API,並存取與舊版執行階段相同的功能。新版執行階段提供套裝組合服務,可讓您更靈活地選擇遷移至非套裝組合服務,或繼續使用 App Engine 舊版套裝組合服務。

如果管道中出現任何淘汰項目,我們會遵循標準淘汰政策,並建議替代方案。我們預期大部分應用程式都不需要變更程式碼或重新部署。

每個執行階段的目前狀態

Python 2.7

我們於 2012 年 2 月 27 日推出 Python 2.7 執行階段。雖然我們已從這個執行階段的大部分區段移除修改內容和限制,但我們會進一步更新,以標準化建構程序、要求路徑和套件可用性。執行階段的這些變更可讓 Google Cloud 在 2020 年 1 月 1 日之後,繼續支援 Python 2.7 執行階段。屆時 Python 社群將終止對 Python 2.7 的官方支援。

我們對 Python 2.7 執行階段所做的變更,以及2021 年秋季公告中提及的變更,可讓 Python 3 重新支援大部分的 App Engine 隨附服務。這些服務可協助您更輕鬆地遷移至 Python 3,和/或在支援終止前,以同等 Google Cloud 服務取代套裝組合服務。如要瞭解如何遷移,請參閱下列指南:

Java 8

我們在 2017 年 6 月 28 日推出了 Java 8 執行階段。這個執行階段經過些微修改,適用於 App Engine,並廣泛支援匯入 Java 套件。

我們將對這個執行階段進行下列更新:

  • 將 Java 執行階段還原為開放原始碼狀態。

  • 將要求路徑正規化。

  • 升級至 Jetty 9.4。

這些變更可讓 Google Cloud 在可預見的未來支援 Java 8 執行階段。

我們對 Java 8 執行階段進行的變更,可讓您使用 Google Cloud 服務取代隨附的 App Engine 服務,並在支援終止前遷移至 Java 11/17。請參閱從 Java 8 遷移至 Java 11 以上版本的相關資訊。

我們已將 Java 6 和 Java 7 應用程式自動遷移至 Java 8 執行階段,無需變更應用程式程式碼。不過,Java 11 破壞了回溯相容性,因此我們無法自動將應用程式遷移至 Java 11 執行階段。由於遷移至 Java 11 時,您可能需要對 Java 6、Java 7 和 Java 8 應用程式進行重大變更,因此可以讓這些應用程式繼續在 Java 8 執行階段中執行。

Go 1.11

我們在 2019 年 3 月 20 日推出 Go 1.11 執行階段,並建議 Go 1.6 至 1.9 應用程式遷移至 Go 1.11 執行階段。Go 1.11 執行階段是使用 Go 1.6 到 Go 1.11 建構應用程式的長期狀態。

應用程式在 Go 1.11 上執行後,您就可以開始將隨附的 App Engine 服務和 API 替換為 Google Cloud 服務,並在支援終止前升級至支援的 Go 版本。如要進一步瞭解如何遷移,請參閱「將您的 App Engine 應用程式遷移至 Go 1.12」一文。

PHP 5.5

我們在 2013 年 5 月 16 日推出了 PHP 5.5 執行階段。這個執行階段移除了開放原始碼版本中的許多功能,並在自訂沙箱中執行應用程式。

我們目前正將這個執行階段恢復為開放原始碼狀態,並更新沙箱。我們會進一步更新,以標準化要求路徑並提升效能。這些異動可讓我們在可預見的未來,繼續支援 PHP 5.5 執行階段。

我們對 PHP 5.5 執行階段進行的變更,可讓您將隨附的 App Engine 服務替換為 Google Cloud 服務,並在支援終止前遷移至 PHP 7/8。請參閱將應用程式從 PHP 5.5 遷移至 PHP 7/8 的相關資訊。

啟用支援期限即將屆滿的舊版執行階段部署作業

根據 App Engine 執行階段生命週期政策,您將無法再使用已終止支援的執行階段部署應用程式。 如要瞭解影響執行階段的重要日期,請參閱支援時程

如果貴機構想重新啟用已達支援期限的舊版執行階段部署作業,可以定義新的機構政策,並使用 constraints/appengine.runtimeDeploymentExemption。這項重新啟用部署作業的組織政策已全面開放使用。 在支援期限過後繼續使用舊版執行階段屬於實驗性質,且須遵守「正式發布前產品條款」。

如要建立或變更機構政策,您的帳戶必須具備 roles/orgpolicy.policyAdmin 角色。

使用政策重新啟用部署作業

如要建立政策,允許將已停止支援的部署作業,從特定機構移至指定環境,請使用 Google Cloud CLI 或 Google Cloud 控制台。

主控台

  1. 前往 Google Cloud 控制台的「Organization policies」(機構政策) 頁面。
    前往「機構政策」

    「Organization policies」(機構政策) 頁面會顯示可用的機構政策限制清單。

  2. 選取要新增政策的專案、資料夾或機構。

  3. 在清單中找出「執行階段部署豁免 (App Engine)」政策。您可以使用清單頂端的「篩選器」欄位。

  4. 按一下政策名稱。或者,您也可以從內容選單中選取「編輯政策」

  5. 按一下「管理政策」

  6. 在「套用對象」下方,選取「自訂」

  7. 在「政策強制執行」下方,選取「取代」

  8. 按一下「規則」下方的「新增規則」。

  9. 為「政策值」選取「自訂」

  10. 在「政策類型」中選取「允許」

  11. 在「自訂值」中,指定要在機構中強制執行的執行階段。支援的值包括:

    • python27,允許使用 Python 2.7 的應用程式
    • java8,允許使用 Java 8 的應用程式
    • php55,允許應用程式使用 PHP 5.5
    • 如要明確允許使用多個執行階段,請一併指定 python27java8php55。如果未設定政策,系統預設不允許任何執行階段。
  12. 按一下 [完成]

  13. 按一下 [儲存]

變更套用後,這項政策會允許在指定環境中,部署已終止支援的 App Engine 執行階段。

gcloud

執行下列指令:

gcloud resource-manager org-policies \
allow appengine.runtimeDeploymentExemption \
--organization=ORGANIZATION_NUMBER RUNTIME_ID

取代:

  • ORGANIZATION_NUMBER,並輸入要套用政策的機構編號。
  • RUNTIME_ID,並允許部署的執行階段。
  • RUNTIME_ID,並搭配下列其中一個執行階段 ID:

    • python27,允許使用 Python 2.7 的應用程式
    • java8,允許使用 Java 8 的應用程式
    • php55,允許應用程式使用 PHP 5.5
    • 如要明確允許多個語言執行階段,請一併指定 python27java8php55。如果未設定政策,系統預設不允許任何語言的執行階段。