Utilizzo del server di sviluppo locale

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:

  1. Nella directory che contiene il file di configurazione app.yaml, esegui il comando dev_appserver.py. Se Python 2 non è l'interprete predefinito sul sistema, devi eseguire python2 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 per php-cgi:

    1. Crea la tua versione di estensione PHP App Engine sulla tua macchina locale.

    2. 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 file gae_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.

  2. 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:

  1. Avvia il server di sviluppo.

  2. Accedi al Visualizzatore datastore nella console di sviluppo locale. (l'URL è http://localhost:8000/datastore).

  3. 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:

  1. Esporta la variabile di ambiente XDEBUG_CONFIG con un idekey per consentire al tuo IDE di connettersi

    export XDEBUG_CONFIG="idekey=netbeans-xdebug remote_host=localhost"
    
  2. Richiama il Server di sviluppo con --php_remote_debugging=yes