I runtime legacy includono versioni di linguaggi di prima generazione che non sono più gestite dalle community open source. Poiché molti clienti di App Engine dipendono ancora da queste versioni dei linguaggi di prima generazione, Google ha fornito supporto a lungo termine per i seguenti runtime legacy nell'ambiente standard di App Engine:
Google sta eseguendo la transizione dei runtime legacy alla fase di fine del supporto. Per ulteriori dettagli, consulta il programma di assistenza.
Il nostro impegno
I runtime legacy hanno raggiunto la fine del supporto il 30 gennaio 2024.
Sono state apportate le seguenti modifiche ai runtime legacy:
Per quanto possibile, i componenti dei runtime legacy sono stati riportati ai loro stati open source non forkati. Abbiamo dovuto limitare e modificare alcuni runtime per eseguire in modo sicuro le tue app nei nostri data center. Modificando il modo in cui gestiamo i runtime nei nostri data center, possiamo fornire un ambiente sicuro e scalabile per questi runtime nel lungo periodo.
Sono stati aggiunti sistemi di build completi che supportano repository di pacchetti, build di componenti idiomatici e repository di asset.
Aggiornamenti della sicurezza
Man mano che le community smettono di gestire le versioni delle loro lingue, la tua app potrebbe essere esposta a vulnerabilità per le quali non esiste una correzione disponibile pubblicamente. Pertanto, continuare a eseguire l'app in alcuni runtime App Engine comporta un rischio maggiore rispetto all'upgrade a un runtime con una lingua supportata dalla community.
Non possiamo impegnarci a correggere ogni API utilizzata dalla tua app. Potresti scoprire che le correzioni sono disponibili solo nelle librerie per le versioni più recenti del linguaggio.
Supporto dei servizi integrati di App Engine
I runtime Python 2.7, Java 8, Go 1.11 e PHP 5.5 forniscono servizi e API App Engine in bundle, come Blobstore, Memcache e Task Queues.
Puoi continuare ad accedere a molti di questi servizi e API inclusi in runtime di seconda generazione selezionati:
La tua app può chiamare le API dei servizi in bundle tramite librerie idiomatiche del linguaggio e accedere alla stessa funzionalità degli ambienti di runtime legacy. I servizi in bundle vengono offerti sui runtime più recenti per offrire maggiore flessibilità, consentendoti di eseguire la migrazione ai servizi non integrati o continuare a utilizzare i servizi in bundle legacy di App Engine.
Se sono previste deprecazioni, seguiremo le nostre norme di deprecazione standard e suggeriremo alternative. Non prevediamo che la maggior parte delle app richieda modifiche al codice o nuove implementazioni.
Stato attuale di ogni runtime
Python 2.7
Abbiamo lanciato il runtime di Python 2.7 il 27 febbraio 2012. Sebbene abbiamo già rimosso le nostre modifiche e limitazioni da ampie sezioni di questo runtime, apporteremo ulteriori aggiornamenti per normalizzare la processo di compilazione, il percorso delle richieste e la disponibilità dei pacchetti. Queste modifiche al runtime consentono a Google Cloud di supportare il runtime Python 2.7 molto dopo il 1° gennaio 2020, data in cui la community Python terminerà il supporto ufficiale di Python 2.7.
Le modifiche apportate al runtime Python 2.7 e quelle apportate nell'annuncio dell'autunno 2021 riportano la maggior parte dei servizi App Engine inclusi in Python 3. Questi servizi ti consentono di eseguire più facilmente la migrazione a Python 3 e/o sostituire i servizi in bundle con servizi Google Cloud equivalenti prima della fine del supporto. Per la migrazione, consulta le seguenti guide:
Java 8
Abbiamo lanciato il runtime Java 8 il 28 giugno 2017. Questo runtime è stato leggermente modificato per App Engine e forniva un ampio supporto per l'importazione di pacchetti Java.
Apporteremo i seguenti aggiornamenti a questo runtime:
Riporta il runtime Java allo stato open source.
Normalizza il percorso della richiesta.
Esegui l'upgrade a Jetty 9.4.
Queste modifiche consentiranno Google Cloud di supportare il runtime Java 8 per il prossimo futuro.
Le modifiche apportate al runtime Java 8 ti consentono di sostituire i servizi App Engine in bundle con i servizi Google Cloud e di eseguire la migrazione a Java 11/17 prima della fine del supporto. Consulta le informazioni sulla migrazione da Java 8 a Java 11+.
Siamo riusciti a eseguire automaticamente la migrazione delle app Java 6 e Java 7 al runtime Java 8 senza richiedere modifiche al codice dell'app. Tuttavia, Java 11 interrompe la retrocompatibilità in modi che ci rendono impossibile eseguire automaticamente la migrazione delle app al runtime Java 11. Poiché potrebbe essere necessario apportare modifiche significative alle app Java 6, Java 7 e Java 8 durante la migrazione a Java 11, puoi mantenere queste app in esecuzione nel runtime Java 8.
Go 1.11
Abbiamo lanciato il runtime Go 1.11 il 20 marzo 2019 e consigliato alle app Go 1.6-1.9 di eseguire la migrazione al runtime Go 1.11. Il runtime Go 1.11 è lo stato a lungo termine per le app create con Go 1.6 fino a Go 1.11.
Una volta che le tue app vengono eseguite su Go 1.11, puoi iniziare a sostituire i servizi e le API App Engine in bundle con i servizi e a eseguire l'upgrade a una versione supportata di Go prima della fine del supporto. Google Cloud Per ulteriori informazioni sulla migrazione, consulta Migrazione dell'app App Engine a Go 1.12.
PHP 5.5
Abbiamo lanciato il runtime PHP 5.5 il 16 maggio 2013. Questo runtime ha rimosso molte funzionalità dalla versione open source ed eseguiva le app all'interno di una sandbox personalizzata.
Al momento stiamo riportando questo runtime al suo stato open source e modernizzando la sandbox. Apporteremo ulteriori aggiornamenti per normalizzare il percorso della richiesta e ottimizzare il rendimento. Queste modifiche ci consentono di supportare il runtime PHP 5.5 per il futuro prevedibile.
Le modifiche apportate al runtime PHP 5.5 ti consentono di sostituire i servizi App Engine in bundle con i servizi Google Cloud ed eseguire la migrazione a PHP 7/8 prima della fine del supporto. Consulta le informazioni sulla migrazione delle app da PHP 5.5 a PHP 7/8.
Abilitazione dei deployment per i runtime legacy che raggiungono la fine del supporto
Ai sensi della policy relativa al ciclo di vita del runtime di App Engine, non potrai più eseguire il deployment di applicazioni utilizzando runtime che hanno raggiunto la fine del supporto. Per le date chiave che influiscono sul runtime, consulta il programma di supporto.
Se la tua organizzazione vuole riattivare i deployment per i runtime legacy che hanno
raggiunto la fine del periodo di assistenza, puoi definire un nuovo
criterio dell'organizzazione
con
constraints/appengine.runtimeDeploymentExemption
.
Questo criterio dell'organizzazione per la riattivazione delle implementazioni è disponibile a livello generale.
L'utilizzo continuato dei runtime precedenti dopo la data di fine del supporto è sperimentale
ed è soggetto ai "Termini delle offerte pre-GA".
Per creare o modificare le policy dell'organizzazione, il tuo account deve disporre del ruolo
roles/orgpolicy.policyAdmin
.
Utilizzare una policy per riattivare i deployment
Per creare una policy che consenta i deployment, utilizza Google Cloud CLI o la console Google Cloud che hanno raggiunto la fine del supporto all'interno di una determinata organizzazione nell'ambiente specificato.
Console
Vai alla pagina Policy dell'organizzazione nella console Google Cloud .
Vai a Policy dell'organizzazioneLa pagina Policy dell'organizzazione mostra un elenco dei vincoli delle policy dell'organizzazione disponibili.
Seleziona il progetto, la cartella o l'organizzazione per cui vuoi aggiungere la nuova policy.
Individua il criterio Esenzione deployment runtime (App Engine) nell'elenco. Puoi utilizzare il campo Filtra nella parte superiore dell'elenco.
Fai clic sul nome della norma. In alternativa, puoi selezionare Modifica policy dal menu contestuale.
Fai clic su Gestisci norma.
Seleziona Personalizza nella sezione Applicabile a.
Seleziona Sostituisci in Applicazione criterio.
Fai clic su Aggiungi regola in Regole.
Seleziona Personalizzato per Valori policy.
Seleziona Consenti per Tipo di policy.
In Valore personalizzato specifica il runtime che vuoi applicare nell'organizzazione. I valori supportati includono:
python27
per consentire le applicazioni che utilizzano Python 2.7java8
per consentire le applicazioni che utilizzano Java 8php55
per consentire le applicazioni che utilizzano PHP 5.5- Per consentire esplicitamente più runtime, specifica
python27
,java8
ephp55
insieme. Per impostazione predefinita, non sono consentiti runtime quando non sono impostati criteri.
Fai clic su Fine.
Fai clic su Salva.
Una volta applicate le modifiche, questo criterio consente il deployment dei runtime App Engine che hanno raggiunto la fine del supporto nell'ambiente specificato.
gcloud
Esegui questo comando:
gcloud resource-manager org-policies \ allow appengine.runtimeDeploymentExemption \ --organization=ORGANIZATION_NUMBER RUNTIME_ID
Sostituisci:
ORGANIZATION_NUMBER
con il numero dell'organizzazione a cui vuoi applicare il criterio.RUNTIME_ID
con il runtime consentito per il deployment.RUNTIME_ID
con uno dei seguenti ID runtime:python27
per consentire le applicazioni che utilizzano Python 2.7java8
per consentire le applicazioni che utilizzano Java 8php55
per consentire le applicazioni che utilizzano PHP 5.5- Per consentire esplicitamente più runtime di linguaggi, specifica
python27
,java8
ephp55
insieme. Per impostazione predefinita, non sono consentiti runtime di linguaggi quando non è impostato alcun criterio.