舊版執行階段包含開放原始碼社群不再維護的第一代語言版本。由於許多 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 執行階段提供內含 Blobstore、Memcache 和工作佇列等 App Engine 服務和 API 的套件。
您可以在特定的第二代執行階段繼續存取許多這類套裝服務和 API:
應用程式可以透過語言慣用程式庫呼叫內含服務 API,並存取與舊版執行階段相同的功能。套裝組合服務會在較新的執行階段提供,以提供更大的彈性,讓您可以選擇遷移至套裝組合以外的服務,或繼續使用 App Engine 舊版套裝組合服務。
如果管道中含有任何淘汰項目,我們會依照標準淘汰政策提供替代方案。我們認為大部分應用程式都不需要變更程式碼或重新部署。
各個執行階段目前的狀態
Python 2.7
我們於 2012 年 2 月 27 日推出 Python 2.7 執行階段。雖然我們已從這個執行階段的大部分部分移除修改和限制,但我們會進一步更新,以便將建構程序、要求路徑和套件可用性標準化。這些對執行階段的變更可讓 Google Cloud 在 Python 社群停止對 Python 2.7 提供官方支援的 2020 年 1 月 1 日之後,繼續支援 Python 2.7 執行階段。
我們對 Python 2.7 執行階段所做的變更,以及在 2021 年秋季公告中所做的變更,已將大部分的內含 App Engine 服務帶回 Python 3。這些服務可讓您更輕鬆地遷移至 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.6 到 Go 1.11 建構的應用程式,長期狀態為 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」(機構政策) 頁面會顯示可用的機構政策限制條件清單。
選取要新增政策的專案、資料夾或機構。
在清單中找出「Runtime Deployment Exemption (App Engine)」政策。您可以使用清單頂端的「篩選器」欄位。
按一下政策名稱。您也可以從內容選單中選取「編輯政策」。
按一下「管理政策」。
選取「套用對象」下方的「自訂」。
在「政策強制執行」下方選取「取代」。
按一下「規則」下方的「新增規則」。
在「政策值」部分,選取「自訂」。
在「政策類型」中選取「允許」。
在「自訂值」中,指定要在組織中強制執行的執行階段。支援的值包括:
python27
,允許應用程式使用 Python 2.7java8
允許使用 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.7java8
允許使用 Java 8 的應用程式php55
允許使用 PHP 5.5 的應用程式- 如要明確允許多個語言執行階段,請一併指定
python27
、java8
和php55
。根據預設,如果未設定政策,則系統不會允許任何語言執行階段。