Prima di poter eseguire l'app nel runtime Python 3 dell'ambiente standard di App Engine, potresti dover modificare alcuni dei file di configurazione utilizzati da App Engine:
app.yaml
. Questo file contiene informazioni sul codice dell'app, ad esempio il tempo di esecuzione e i gestori dell'app.appengine_config.py
. Il runtime Python 2 utilizza questo file per accedere alle librerie di terze parti e fornire valori per le costanti e le "funzioni hook". Il runtime Python 3 non utilizza questo file.
Aggiornamento di app.yaml
in corso…
Il comportamento di alcuni campi nel file di configurazione app.yaml
è stato modificato. Rimuovi i campi non più supportati e aggiornane altri come descritto nella tabella seguente.
Campo | Tipo di modifica | Descrizione |
---|---|---|
API_motore_app | Applicabile solo a Python 3 | È necessario impostarlo su true se vuoi accedere ai
servizi in bundle precedenti per Python 3. |
api_version application_leggibile integrato |
Non è più supportato | Non applicabile al runtime Python 3. |
threadsafe | Non più supportata | Si presume che tutte le applicazioni siano protette da thread. Se la tua applicazione non è sicura tramite thread, specifica un entrypoint che configuri 1 thread per worker.Ad esempio, quando utilizzi la classe di istanza F4: entrypoint: gunicorn -b :$PORT -w 8 --threads 1 main:app Consulta le best practice relative ai punti di contatto per il numero di worker consigliato per ogni classe di istanza. |
librerie | Non più supportata |
Utilizza il file requirements.txt per
dichiarare le dipendenze
e installare le librerie client.
|
gestori: accesso | Supportato se app_engine_apis è true |
Se non utilizzi i servizi bundle precedenti per Python 3, utilizza Identity and Access Management (IAM) per la gestione degli utenti. |
gestori: script | Modified (Data dell'ultima modifica) | Nel runtime Python 2, utilizzi il campo
script
per instradare le richieste in entrata allo script della tua app.
Nel runtime di Python 3 devi utilizzare un framework web con routing in-app (come Flask o Django) anziché utilizzare il campo Per eseguire la migrazione del file
La gestione statica dei file rimane invariata. |
Se utilizzi uno dei campi deprecati, App Engine restituisce un errore durante il deployment dell'app.
Puoi utilizzare gli esempi riportati di seguito per confrontare le differenze tra i file app.yaml
:
Python 2
runtime: python27 api_version: 1 threadsafe: true handlers: - url: / script: home.app - url: /index\.html script: home.app - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /admin/.* script: admin.app login: admin - url: /.* script: not_found.app
Python 3
runtime: python311 app_engine_apis: true handlers: - url: /stylesheets static_dir: stylesheets - url: /(.*\.(gif|png|jpg))$ static_files: static/\1 upload: static/.*\.(gif|png|jpg)$ - url: /admin/.* script: auto login: admin
Rimozione di appengine_config.py
in corso...
Il runtime Python 2 nell'ambiente standard di App Engine utilizza il file appengine_config.py
.
Questo file viene ignorato nel runtime di Python 3. Il runtime Python 3
utilizza invece il file requirements.txt
standard per
installare le dipendenze,
incluse le dipendenze che utilizzano il codice nativo. Per ulteriori informazioni, consulta la sezione Specificare le dipendenze nel runtime di Python 3.