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 runtime e i gestori dell'app.appengine_config.py. Il runtime Python 2 utilizza questo file per accedere a librerie di terze parti e fornire valori per costanti e "funzioni hook". Il runtime Python 3 non utilizza questo file.
Aggiornamento di app.yaml in corso…
Il comportamento di alcuni campi nel tuo
file di configurazione app.yaml
è stato modificato. Rimuovi i campi non più supportati e aggiorna
gli altri campi come descritto nella tabella seguente.
| Campo | Tipo di modifica | Descrizione |
|---|---|---|
| app_engine_apis | Valido solo per Python 3 | Obbligatorio se vuoi accedere ai
servizi in bundle legacy per Python 3.true |
| api_version application_readable builtins |
Non più supportato | Non applicabile nel runtime Python 3. |
| threadsafe | Non più supportata | Si presume che tutte le applicazioni siano thread-safe. Se la tua applicazione non è
thread-safe, specifica un entrypoint
configurando 1 thread per worker.Ad esempio, quando utilizzi la classe di istanze F4: entrypoint: gunicorn -b :$PORT -w 8 --threads 1 main:appConsulta le best practice per i punti di ingresso per il numero consigliato di worker per ogni classe di istanze. |
| librerie | Non più supportata |
Utilizza il file requirements.txt per
dichiarare le dipendenze
e installare le librerie client.
|
| gestori: login | Supportato se 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. |
| handlers: script | Modificato | Nel runtime Python 2, utilizzi il campo
script
per indirizzare le richieste in entrata allo script della tua app.
Nel runtime 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 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: python314
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
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 le dipendenze,
incluse quelle che utilizzano codice nativo.