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 della tua app, come il runtime e i gestori delle app.appengine_config.py
. Il runtime Python 2 utilizza questo file per accedere a 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 tutti i campi non più supportati e aggiorna gli altri campi come descritto nella tabella seguente.
Campo | Tipo di modifica | Descrizione |
---|---|---|
app_engine_apis | Applicabile solo a Python 3 | Deve essere impostato su true se vuoi accedere ai servizi in bundle legacy per Python 3. |
api_version application_read integrate |
Non più supportato | Non applicabile per il runtime Python 3. |
sicura per thread | Non più supportata | Tutte le applicazioni sono considerate threadsafe. Se la tua applicazione non è threadsafe, specifica un entrypoint configurando 1 thread per worker.Ad esempio, se utilizzi la classe di istanza F4: entrypoint: gunicorn -b :$PORT -w 8 --threads 1 main:app Consulta le best practice per entrypoint 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 il valore di app_engine_apis è true |
Se non utilizzi i servizi in bundle legacy per Python 3, utilizza Identity and Access Management (IAM) per la gestione degli utenti. |
gestori: script | Modificato | Nel runtime Python 2, utilizzi il campo script per instradare le richieste in entrata allo script dell'app.
Nel runtime Python 3, devi utilizzare un framework web con il routing in-app (come Flask o Django) anziché il campo Per eseguire la migrazione del file
La gestione dei file statici rimane invariata. |
Se utilizzi uno dei campi deprecati, App Engine restituisce un errore quando esegui il deployment dell'app.
Puoi utilizzare i seguenti esempi 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: python312
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 Python 3. Il runtime Python 3 utilizza invece il file requirements.txt
standard per installare dipendenze, tra cui quelle che utilizzano codice nativo.