Google Cloud CLI include un server di sviluppo locale
(dev_appserver.py). Puoi utilizzare il server di sviluppo locale per simulare
l'esecuzione dell'applicazione App Engine in produzione, nonché per
accedere ai servizi in bundle legacy di App Engine. L'ambiente simulato applica alcune limitazioni della sandbox, come le funzioni di sistema e le importazioni di moduli di linguaggio runtime limitate, ma non altre, come i timeout delle richieste o le quote.
Il server di sviluppo locale simula anche i servizi forniti dalle librerie nell'SDK per App Engine, tra cui Datastore, Memcache e Task Queues, eseguendo le attività localmente. Quando l'applicazione è in esecuzione nel server di sviluppo, puoi comunque effettuare chiamate API remote all'infrastruttura di produzione utilizzando gli endpoint HTTP delle API di Google.
Configurare il server di sviluppo locale
Per eseguire lo strumento del server di sviluppo locale, devi configurare quanto segue:
- Verifica di aver installato un interprete Python 3 compatibile con la versione di Python richiesta da gcloud CLI.
Verifica di aver installato il componente Google Cloud CLI che include l'estensione App Engine per Python 3 (
app-engine-python):gcloud components listSe il componente
app-engine-pythonnon è installato, esegui il seguente comando:gcloud components install app-engine-pythonIndividua il percorso di installazione di Google Cloud SDK eseguendo il seguente comando:
gcloud infoIl comando restituisce la directory principale in cui hai installato Google Cloud SDK, ad esempio:
Installation Root: [/Users/myname/google-cloud-sdk]Individua lo strumento
dev_appserver.pynella cartella/bin/in cui hai installato Google Cloud CLI, ad esempio:CLOUD_SDK_ROOT/bin/dev_appserver.pyPrendi nota del percorso del
dev_appserver.pyper dopo.
Esegui il server di sviluppo locale
Dopo aver configurato il server di sviluppo locale e creato il file di configurazione
app.yaml per la tua app, puoi utilizzare il comando dev_appserver.py per eseguire l'app in locale.
Per avviare il server di sviluppo locale:
-
Nella directory che contiene il file di configurazione
app.yaml, esegui il comandodev_appserver.py.Specifica il percorso della directory dell'app, ad esempio:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py [PATH_TO_YOUR_APP]In alternativa, puoi specificare il file di configurazione di un servizio specifico, ad esempio:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py app.yamlPer modificare la porta, includi l'opzione
--port:python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --port=9999 [PATH_TO_YOUR_APP] - Ora il server di sviluppo locale è in esecuzione e rimane in attesa delle richieste. Puoi
visitare http://localhost:8080/ nel browser web
per vedere l'app in azione.
Se hai specificato una porta personalizzata con l'opzione
--port, ricorda di aprire il browser su quella porta.
Per arrestare il server locale dalla riga di comando, premi:
- macOS o Linux: Control+C
- Windows: Control+Interrompi
Specifica gli ID applicazione
Per accedere all'ID app nel server locale, ad esempio per falsificare un indirizzo email, utilizza la funzione get_application_id().
Per ottenere il nome host dell'app in esecuzione, utilizza la funzione get_default_version_hostname().
Rilevare l'ambiente di runtime dell'applicazione
Per determinare se il codice è in esecuzione in produzione o nel server di sviluppo locale, puoi controllare il valore della variabile di ambiente GAE_ENV:
if os.getenv('GAE_ENV', '').startswith('standard'):
# Production in the standard environment
else:
# Local development server
Utilizzare il servizio Mail
Il server di sviluppo locale può inviare email per le chiamate al servizio di posta di App Engine utilizzando un server SMTP o un'installazione locale di Sendmail.
Utilizzo di SMTP
Per attivare il supporto della posta con un server SMTP, richiama dev_appserver.py come segue:
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns [PATH_TO_YOUR_APP]
dove imposti le opzioni --smtp_host, --smtp_port, --smtp_user e
--smtp_password con i tuoi valori.
Utilizzo di Sendmail
Per abilitare il supporto della posta con Sendmail, richiama dev_appserver.py nel seguente modo:
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
Il server locale utilizza il comando sendmail per inviare messaggi email con la configurazione predefinita dell'installazione.
Utilizzare il servizio di recupero URL
Quando l'applicazione utilizza l'API URL Fetch per effettuare una richiesta HTTP, il server di sviluppo locale effettua la richiesta direttamente dal computer. Il comportamento di recupero URL sul server locale potrebbe differire da quello di App Engine di produzione se utilizzi un server proxy per accedere ai siti web.
Utilizzare il servizio utenti
App Engine fornisce un servizio Users per semplificare l'autenticazione e l'autorizzazione per la tua applicazione. Il server di sviluppo locale simula il comportamento degli Account Google con le proprie pagine di accesso e disconnessione.
Durante l'esecuzione sul server di sviluppo locale, le funzioni restituiscono URL per /_ah/login e /_ah/logout sul server locale.
Argomenti della riga di comando
Per le opzioni del comando del server di sviluppo locale, vedi Opzioni del server di sviluppo locale.