舊版執行階段包括第一代語言版本,這些版本已不再由開放原始碼社群維護。由於許多 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 控制台。
主控台
前往 Google Cloud 控制台的「Organization policies」(機構政策) 頁面。
前往「機構政策」「Organization policies」(機構政策) 頁面會顯示可用的機構政策限制清單。
選取要新增政策的專案、資料夾或機構。
在清單中找出「執行階段部署豁免 (App Engine)」政策。您可以使用清單頂端的「篩選器」欄位。
按一下政策名稱。或者,您也可以從內容選單中選取「編輯政策」。
按一下「管理政策」。
在「套用對象」下方,選取「自訂」。
在「政策強制執行」下方,選取「取代」。
按一下「規則」下方的「新增規則」。
為「政策值」選取「自訂」。
在「政策類型」中選取「允許」。
在「自訂值」中,指定要在機構中強制執行的執行階段。支援的值包括:
python27
,允許使用 Python 2.7 的應用程式java8
,允許使用 Java 8 的應用程式php55
,允許應用程式使用 PHP 5.5- 如要明確允許使用多個執行階段,請一併指定
python27
、java8
和php55
。如果未設定政策,系統預設不允許任何執行階段。
按一下 [完成]。
按一下 [儲存]。
變更套用後,這項政策會允許在指定環境中,部署已終止支援的 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- 如要明確允許多個語言執行階段,請一併指定
python27
、java8
和php55
。如果未設定政策,系統預設不允許任何語言的執行階段。