Creare un'app Python nell'ambiente flessibile di App Engine
ID regione
REGION_ID
è un codice abbreviato assegnato da Google in base alla regione selezionata quando crei l'app. Il codice non corrisponde a un paese o a una provincia, anche se alcuni ID regione possono sembrare simili ai codici di paesi e province di uso comune. Per le app create dopo febbraio 2020, REGION_ID.r
è incluso negli URL di App Engine. Per le app esistenti create prima di questa data, l'ID regione è facoltativo nell'URL.
Scopri di più sugli ID regione.
Questa guida rapida mostra come creare ed eseguire il deployment di un'app che visualizza un breve messaggio. Puoi
utilizzare l'applicazione di esempio in questa guida rapida per qualsiasi versione supportata di Python, specificando la versione del runtime e il sistema operativo nel
file app.yaml
.
Prima di iniziare
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Cloud Build API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
Prerequisiti aggiuntivi
Inizializza la tua app App Engine con il tuo progetto e scegli la relativa area geografica:
gcloud app create --project=[YOUR_PROJECT_ID]
Quando richiesto, seleziona la regione in cui vuoi collocare l'applicazione App Engine.
Installa quanto segue sulla tua macchina locale:
Esegui il seguente comando per installare il componente gcloud che include l'estensione App Engine per Python:
gcloud components install app-engine-python
Prepara l'ambiente per lo sviluppo Python. Ti consigliamo di avere installato sul tuo sistema la versione più recente di Python,
pip
e altri strumenti correlati. Per le istruzioni, consulta la Guida alla configurazione dell'ambiente di sviluppo Python.
Località App Engine
App Engine è regionale, il che significa che l'infrastruttura che esegue le tue app si trova in una regione specifica e Google la gestisce in modo che sia disponibile in modo ridondante in tutte le zone della regione.
Soddisfare i requisiti di latenza, disponibilità o durabilità è uno dei fattori principali per la scelta della regione in cui vengono eseguite le app. In genere, puoi selezionare la regione più vicina agli utenti della tua app, ma devi prendere in considerazione le località in cui è disponibile App Engine, nonché le località degli altri prodotti e servizi Google Cloud utilizzati dalla tua app. L'utilizzo di servizi in più località può influire sulla latenza e sul prezzo della tua app.
Non puoi modificare la regione di un'app dopo averla impostata.
Se hai già creato un'applicazione App Engine, puoi visualizzarne la regione effettuando una delle seguenti operazioni:
Esegui il comando
gcloud app describe
.Apri la dashboard di App Engine nella console Google Cloud. La regione viene visualizzata nella parte superiore della pagina.
scarica l'app Hello World
Abbiamo creato un'app Hello World per App Engine in modo che tu possa capire rapidamente come eseguire il deployment di un'app in Google Cloud.
Clona il repository dell'app di esempio Hello World sulla tua macchina locale.
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
In alternativa puoi scaricare l'esempio come file ZIP ed estrarlo.
Passa alla directory che contiene il codice campione.
cd python-docs-samples/appengine/flexible/hello_world
Esegui Hello World sulla tua macchina locale
Per eseguire l'applicazione Hello World nel computer locale:
Mac OS / Linux
- Crea un
ambiente Python isolato:
python3 -m venv env
source env/bin/activate
- Se non sei nella directory che contiene il codice campione, vai alla directory che contiene il codice campione
hello_world
. Poi installa le dipendenze:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
- Esegui l'applicazione:
python main.py
- Nel browser web, inserisci il seguente indirizzo:
http://localhost:8080
Se utilizzi Cloud Shell, nella barra degli strumenti fai clic su Anteprima web e seleziona Anteprima sulla porta 8080.
Windows
Utilizza PowerShell per eseguire i pacchetti Python.
- Individua l'installazione di PowerShell.
- Fai clic con il tasto destro del mouse sulla scorciatoia di PowerShell e avvialo come amministratore.
- Crea un
ambiente Python isolato.
python -m venv env
.\env\Scripts\activate
- Naviga alla directory del progetto e installa le dipendenze. Se non ti trovi nella directory
che contiene il codice campione, vai alla directory che contiene il
codice campione
hello_world
. Poi installa le dipendenze:cd YOUR_SAMPLE_CODE_DIR
pip install -r requirements.txt
- Esegui l'applicazione:
python main.py
- Nel browser web, inserisci il seguente indirizzo:
http://localhost:8080
Nella pagina viene visualizzato il messaggio Hello World dell'app di esempio. Nella finestra del terminale, premi Ctrl+C per uscire dal server web.
Esegui il deployment di Hello World e avviala in App Engine
Per eseguire il deployment dell'app nell'ambiente flessibile di App Engine:-
Esegui il deployment dell'app Hello World eseguendo il comando seguente dalla directory
hello_world
:gcloud app deploy
Scopri di più sui flag facoltativi.
Flag comuni dei comandi
gcloud
-
Includi il flag
--version
per specificare un ID che identifichi in modo univoco la versione della tua app, altrimenti ne verrà generato uno per te. Esempio:--version [YOUR_VERSION_ID]
-
Includi il flag
--project
per specificare un ID progetto Google Cloud alternativo rispetto a quello inizializzato come predefinito nello strumentogcloud
. Esempio:--project [YOUR_PROJECT_ID]
Esempio:
gcloud app deploy --version pre-prod-5 --project my-sample-app
Per scoprire di più sul deployment dell'app dalla riga di comando, consulta Testare e eseguire il deployment dell'app. Per un elenco di tutti i flag dei comandi, consulta la documentazione di riferimento
gcloud app deploy
. -
Includi il flag
-
Avvia il browser per visualizzare l'app all'indirizzo
https://PROJECT_ID.REGION_ID.r.appspot.com
dovegcloud app browse
PROJECT_ID
rappresenta il tuo ID progetto Google Cloud.
Questa volta, la pagina che mostra il messaggio Hello World viene pubblicata da un server web in esecuzione su un'istanza App Engine.
Complimenti! Hai eseguito il deployment della tua prima app App Engine nell'ambiente flessibile di App Engine.
Se hai riscontrato errori durante il deployment dell'applicazione, consulta i suggerimenti per la risoluzione dei problemi.Consulta le sezioni seguenti per informazioni sulla pulizia e sui possibili passaggi successivi che puoi intraprendere.
Esegui la pulizia
Per evitare addebiti, puoi eliminare il tuo progetto Google Cloud per interrompere la fatturazione per tutte le risorse utilizzate al suo interno.
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
Passaggi successivi
Scopri l'intera piattaforma
Ora che sai come sviluppare e implementare app App Engine, puoi esplorare il resto di Google Cloud. Hai già installato Google Cloud CLI, che ti fornisce gli strumenti per interagire con prodotti come Cloud SQL, Cloud Storage, Firestore e altri ancora.
Scopri di più sull'ambiente flessibile di App Engine
Ecco alcuni argomenti che ti aiuteranno a continuare a imparare su App Engine:
Revisione del codice Hello World
Hello World è l'app App Engine più semplice possibile, in quanto contiene un solo servizio, ha una sola versione e tutto il codice si trova nella directory principale dell'app. Questa sezione descrive in dettaglio ogni file dell'app.
main.py
L'app Hello World è un'app Flask di base composta da un solo file.
app.yaml
Il file app.yaml
descrive la seguente configurazione per la tua app:
- Imposta
env: flex
, a indicare che la tua app utilizza l'ambiente flessibile di App Engine. Specifica il runtime utilizzato dall'app. Se escludi l'impostazione
runtime_version
, App Engine utilizza la versione Python più recente come versione predefinita per l'app.entrypoint
indica ad App Engine come avviare l'app. Questa app utilizzagunicorn
per eseguire l'app Python come alternativa al server di sviluppo di Flask (utilizzato quando viene eseguita in locale). La variabile$PORT
viene impostata da App Engine quando avvia l'app. Per ulteriori informazioni suentrypoint
, consulta Avvio dell'app.
Per ulteriori informazioni sul funzionamento del runtime di Python, consulta Il runtime di Python.
Per ulteriori dettagli su come progettare l'app in modo da sfruttare le versioni e i servizi, consulta Panoramica di App Engine.
Per maggiori dettagli sulle impostazioni di configurazione per App Engine, consulta Configurare l'app con app.yaml.
requirements.txt
requirements.txt
e il gestore dei pacchetti Python
pip
dichiarano e installano le dipendenze dell'applicazione. Hello World richiede Flask, un framework web, e Gunicorn, un server WSGI.
requirements.txt
definisce le librerie che verranno installate sia localmente sia durante il deployment in App Engine.