Supporto per i runtime legacy

I runtime legacy includono versioni del linguaggio di prima generazione che non sono più gestite da community open source. Poiché molti clienti di App Engine fanno ancora affidamento su queste versioni linguistiche di prima generazione, Google fornisce supporto a lungo termine per i seguenti runtime precedenti nell'ambiente standard di App Engine:

Google sta trasferendo i runtime precedenti alla fase di ritiro del supporto. Consulta il programma di assistenza per i dettagli.

Il nostro impegno

Il 30 gennaio 2024 è terminato il supporto dei runtime legacy.

Sono state apportate le seguenti modifiche agli ambienti di runtime precedenti:

  • Sono stati restituiti il più possibile componenti dei runtime legacy ai loro stati open source non fork. Abbiamo dovuto limitare pesantemente e modificare alcuni runtime per eseguire in modo sicuro le app nei nostri data center. Creando modifiche al modo in cui gestiamo i runtime nei nostri data center, possiamo fornire sicuro e scalabile per questi runtime sul lungo periodo.

  • Sono stati aggiunti sistemi di compilazione completi che supportano i repository di pacchetti, componenti idiomatici build e repository di asset.

Aggiornamenti della sicurezza

Quando 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 di App Engine comporta più rischi rispetto all'upgrade a un runtime con una lingua supportata dalla community.

Non possiamo impegnarci a correggere ogni API utilizzata dalla tua app. Potresti notare che le correzioni sono disponibile solo nelle librerie per le versioni più recenti del linguaggio.

Supporto per i servizi integrati di App Engine

I runtime Python 2.7, Java 8, Go 1.11 e PHP 5.5 forniscono API e servizi App Engine in bundle come Blobstore, Memcache e Task Queues.

Puoi continuare ad accedere a molti di questi servizi e API in bundle in runtime di seconda generazione:

La tua app può chiamare le API dei servizi in bundle utilizzando un linguaggio idiomatico librerie e accedere alle stesse funzionalità dei runtime legacy. La vengono offerti in bundle nei runtime più recenti per offrire maggiore flessibilità, offrendoti la possibilità di eseguire la migrazione ai servizi non in bundle, o continuare a utilizzare i servizi in bundle legacy di App Engine.

Se sono in programma ritiri, seguiremo le nostre norme sul ritiro e suggerire alternative. Me non aspettarti che la maggior parte delle app richieda modifiche o redeployment del codice.

Stato attuale di ogni runtime

Python 2.7

Abbiamo lanciato il runtime di Python 2.7 il 27 febbraio 2012. Anche se abbiamo già rimosso le modifiche e le restrizioni da sezioni di grandi dimensioni di questo runtime, apporteremo ulteriori aggiornamenti per normalizzare il processo di compilazione, la disponibilità dei pacchetti. Queste modifiche al runtime consentono a Google Cloud di supportare il runtime Python 2.7 molto oltre il 1° gennaio 2020, data in cui la community di Python terminerà il supporto ufficiale di Python 2.7.

Le modifiche che abbiamo apportato al runtime di Python 2.7 e quelle apportate nel Annuncio autunno 2021 la maggior parte dei servizi App Engine in bundle in Python 3. Questi servizi ti consentono di eseguire più facilmente la migrazione a Python 3 e/o di sostituire i servizi in bundle con servizi Google Cloud equivalenti prima del termine 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 ha fornito un ampio supporto per l'importazione di pacchetti Java.

Applicheremo i seguenti aggiornamenti a questo runtime:

  • Ripristina il runtime Java allo stato open source.

  • Normalizza il percorso di richiesta.

  • Esegui l'upgrade a Jetty 9.4.

Queste modifiche consentiranno a Google Cloud di supportare il runtime Java 8 per il futuro prevedibile.

Le modifiche apportate al runtime Java 8 ti consentono di sostituire i servizi App Engine integrati con i servizi Google Cloud ed eseguire la migrazione a Java 11/17 prima del termine del supporto. Consulta le informazioni sulla migrazione da Java 8 a Java 11 e versioni successive.

Siamo stati in grado di migrare automaticamente le app Java 6 e Java 7 a Java 8 senza richiedere modifiche al codice dell'app. Tuttavia, Java 11 rompe la compatibilità con le versioni precedenti in modi che ci impediscono di 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 Go 1.6-1.9 viene eseguita la migrazione delle app al runtime Go 1.11. Il runtime di Go 1.11 è la soluzione a lungo termine per le app realizzate con Go 1.6 fino a Go 1.11.

Quando le app sono in esecuzione su Go 1.11, puoi iniziare a sostituire le app API e servizi App Engine ai servizi Google Cloud ed eseguire l'upgrade a una versione supportata di Go prima della fine del supporto. Per ulteriori informazioni sulla migrazione, consulta la sezione sulla 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 eseguito le app in una sandbox personalizzata.

Al momento stiamo ripristinando lo stato open source di questo runtime e modernizzando nella sandbox. Apporteremo ulteriori aggiornamenti per normalizzare il percorso di richiesta per ottimizzare le prestazioni. Queste modifiche ci consentono di supportare il runtime PHP 5.5 per il prossimo futuro.

Le modifiche apportate al runtime di PHP 5.5 consentono di sostituire il dei servizi App Engine con i servizi Google Cloud e migrazione a PHP 7/8 prima della fine del supporto. Leggi le informazioni sullo spostamento di app da PHP 5.5 a PHP 7/8.

Abilitazione dei deployment per i runtime legacy che raggiungono la fine del supporto

In base al criterio del ciclo di vita del runtime di App Engine, non potrai più eseguire il deployment di applicazioni che utilizzano runtime che hanno raggiunto la fine del supporto. Per le date chiave che influiscono sul tuo runtime, consulta il programma di assistenza.

Se la tua organizzazione vuole riattivare i deployment per i runtime precedenti 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 dei deployment è disponibile pubblicamente. L'utilizzo continuativo dei runtime legacy dopo la data di fine del supporto è sperimentale e soggetti ai "Termini dell'offerta pre-GA".

Per creare o modificare i criteri dell'organizzazione, il tuo account deve disporre del ruolo roles/orgpolicy.policyAdmin.

Utilizza un criterio per riabilitare i deployment

Per creare un criterio che consenta i deployment, utilizza Google Cloud CLI o la console Google Cloud per eseguire il deployment di risorse che hanno raggiunto il termine del supporto all'interno di una determinata organizzazione nell'ambiente specificato.

Console

  1. Vai alla pagina Criteri dell'organizzazione nella console Google Cloud.
    Vai a Criteri dell'organizzazione

    La pagina Criteri dell'organizzazione mostra un elenco dei vincoli dei criteri dell'organizzazione disponibili.

  2. Seleziona il progetto, la cartella o l'organizzazione per cui vuoi aggiungere nuova norma.

  3. Nell'elenco, trova il criterio Esenzione deployment runtime (App Engine). Puoi utilizzare il campo Filtra nella parte superiore dell'elenco.

  4. Fai clic sul nome della norma. In alternativa, puoi selezionare Modifica norme dal menu contestuale.

  5. Fai clic su Gestisci criteri.

  6. Seleziona Personalizza in Applicabile a.

  7. Seleziona Sostituisci in Applicazione criterio.

  8. Fai clic su Aggiungi regola in Regole.

  9. Seleziona Personalizzato per Valori criterio.

  10. Seleziona Consenti per Tipo di criterio.

  11. In Valore personalizzato, specifica il runtime che vuoi applicare nel dell'organizzazione. I valori supportati includono:

    • python27 per consentire le applicazioni che utilizzano Python 2.7
    • java8 per consentire le applicazioni che utilizzano Java 8
    • php55 per consentire le applicazioni che utilizzano PHP 5.5
    • Per consentire esplicitamente più runtime, specifica python27, java8 e php55 insieme. Per impostazione predefinita, non sono consentiti runtime se non è impostato alcun criterio.
  12. Fai clic su Fine.

  13. Fai clic su Salva.

Una volta applicate le modifiche, questo criterio attiva il deployment dei runtime di 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 di runtime:

    • python27 per consentire le applicazioni che utilizzano Python 2.7
    • java8 per consentire le applicazioni che utilizzano Java 8
    • php55 per consentire le applicazioni che utilizzano PHP 5.5
    • Per consentire esplicitamente più runtime dei linguaggi, specifica python27, java8 e php55 insieme. Per impostazione predefinita, non sono consentiti runtime di lingue quando non è impostato alcun criterio.