L'interfaccia a riga di comando di Google Cloud include un server di sviluppo locale
(dev_appserver.py
). Puoi utilizzare il server di sviluppo locale per simulare
l'esecuzione della tua applicazione in App Engine in produzione e per
accedere ai servizi in bundle di App Engine.
L'ambiente simulato applica alcune limitazioni di sandbox, come funzioni di sistema limitate e importazioni del modulo PHP 7+, ma non altre, come timeout o quote delle richieste.
Il server di sviluppo locale simula anche i servizi forniti dalle librerie nell'SDK per App Engine, inclusi Datastore, Memcache e Task Queues, eseguendo le loro 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.
Esecuzione del server di sviluppo locale
Dopo aver creato il file di configurazione app.yaml
per l'applicazione, puoi avviare il server di sviluppo locale con il comando dev_appserver.py
per eseguire l'applicazione in locale.
Per avviare il server di sviluppo locale:
Esecuzione del server di sviluppo locale (dev_appserver.py
)
Il server di sviluppo locale si trova all'indirizzo
[PATH_TO_CLOUD_SDK]/google-cloud-sdk/bin/dev_appserver.py
. Per eseguire lo strumento, puoi specificare il percorso completo quando esegui dev_appserver.py
oppure aggiungere dev_appserver.py
alla variabile di ambiente PATH
.
Se vuoi aggiungere gli strumenti dell'interfaccia a riga di comando di Google Cloud al tuo PATH
e attivare il completamento dei comandi, esegui questo comando:
[PATH_TO_CLOUD_SDK]/google-cloud-sdk/install.sh
Nella directory che contiene il file di configurazione
app.yaml
, esegui il comandodev_appserver.py
. Se Python 2 non è l'interprete predefinito sul sistema, devi eseguirepython2 dev_appserver.py
per assicurarti che venga utilizzato l'interprete Python 2.Windows e macOS
Specifica il percorso della directory della tua app, ad esempio:
dev_appserver.py [PATH_TO_YOUR_APP]
In alternativa, puoi specificare il file di configurazione di un servizio specifico, ad esempio:
dev_appserver.py app.yaml
Per cambiare la porta, devi includere l'opzione
--port
:dev_appserver.py --port=9999 [PATH_TO_YOUR_APP]
Linux / custode. php-cgi
Se usi Linux o vuoi usare una versione personalizzata di
php-cgi
, devi specificare il percorso della directory perphp-cgi
:Crea la tua versione di estensione PHP App Engine sulla tua macchina locale.
Avvia il server di sviluppo locale con le opzioni
--php_executable_path
e--php_gae_extension_path
:dev_appserver.py --php_executable_path=[PATH_TO_PHP_7_EXECUTABLE] --php_gae_extension_path=[PATH_TO_APPENGINE_EXTENSION] app.yaml
dove
--php_executable_path
è la posizione dell'Interprete PHP che stai utilizzando e dove--php_gae_extension_path
è la posizione del filegae_runtime_module.so
che hai creato nel passaggio precedente.
dev_appserver.py non funziona?
Per saperne di più sulle opzioni dei comandi
dev_appserver.py
, consulta le opzioni del server di sviluppo locale.Il server di sviluppo locale è in esecuzione e in ascolto di richieste. Per vedere l'app in azione, puoi visitare la pagina http://localhost:8080/ nel browser web.
Se hai specificato una porta personalizzata con l'opzione
--port
, ricordati di aprire il browser sulla porta.
Per interrompere il server locale dalla riga di comando, premi quanto segue:
- macOS o Linux: Ctrl + C
- Windows: Ctrl + Interruzione
Specifica degli ID applicazione
Per accedere al tuo ID app nel server locale, ad esempio per eseguire lo spoofing di un indirizzo email, utilizza la funzione. Per ottenere il nome host dell'app in esecuzione, utilizza la funzione.
Rilevamento dell'ambiente di runtime delle applicazioni
Per determinare se il tuo codice è in esecuzione in produzione o nel server di sviluppo locale, puoi controllare il valore della variabile di ambiente SERVER_SOFTWARE
:
if (strpos(getenv('SERVER_SOFTWARE'), 'Development') === 0){
echo 'Local development server';
} else {
echo 'Production';
}
Archiviazione dei dati
App Engine per PHP supporta la lettura e scrittura in Cloud Storage tramite l'API Stream di PHP. Puoi leggere e scrivere in Cloud Storage specificando
un URI di Cloud Storage (gs://
) quando utilizzi una funzione PHP che supporta
l'implementazione di stream PHP, come
fopen,
fwrite o
file_get_contents.
Il server di sviluppo locale emula questa funzionalità leggendo e scrivendo i file locali temporanei che vengono conservati tra le richieste.
Sfogliare il datastore locale
Se la tua app ha dati scritti sul tuo datastore locale utilizzando il server di sviluppo locale, puoi sfogliarli nella console di sviluppo locale.
Per sfogliare il datastore locale:
Accedi al Visualizzatore datastore nella console di sviluppo locale. (l'URL è
http://localhost:8000/datastore
).Visualizzare i contenuti Datastore locali.
Utilizzare il servizio Utenti
App Engine fornisce un servizio utenti per semplificare l'autenticazione e l'autorizzazione per l'applicazione. Il server di sviluppo locale simula il comportamento degli Account Google con le proprie pagine di accesso e di disconnessione. Durante l'esecuzione nel server di sviluppo
locale, le
createLoginURL
e le createLogoutURL
funzioni restituiscono gli URL per /_ah/login
e /_ah/logout
sul server locale.
Utilizzare la posta
Il server di sviluppo locale può inviare email per le chiamate al servizio di posta App Engine utilizzando un server SMTP o un'installazione locale di Sendmail.
Uso di SMTP
Per attivare il supporto della posta con un server SMTP, richiama dev_appserver.py
come segue:
dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns [PATH_TO_YOUR_APP]
per impostare le opzioni --smtp_host
, --smtp_port
, --smtp_user
e
--smtp_password
con i tuoi valori.
Utilizzare Sendmail
Per attivare il supporto della posta con Sendmail, richiama dev_appserver.py
come segue:
dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
Il server locale utilizzerà il comando sendmail
per inviare messaggi email con la configurazione predefinita dell'installazione.
Utilizzo del recupero degli URL
Quando l'applicazione utilizza l'API di recupero URL per effettuare una richiesta HTTP, il server di sviluppo locale invia la richiesta direttamente dal computer. Il comportamento di recupero dell'URL sul server locale potrebbe essere diverso da App Engine in produzione se utilizzi un server proxy per l'accesso ai siti web.
Debug in locale con XDebug
Se hai un debugger compatibile con il debug Debugger XDebug e hai installato il modulo xdebug
, puoi utilizzare XDebug con il server di sviluppo locale.
Per attivare XDebug sul server di sviluppo su Linux o macOS:
Esporta la variabile di ambiente
XDEBUG_CONFIG
con un idekey per consentire al tuo IDE di connettersiexport XDEBUG_CONFIG="idekey=netbeans-xdebug remote_host=localhost"
Richiama il Server di sviluppo con
--php_remote_debugging=yes