Il server di sviluppo locale emula il runtime Java di App Engine dell'ambiente di rete e tutti i suoi servizi, tra cui Datastore.
Prima di iniziare
Poiché Java 8 ha raggiunto la fine del supporto, non puoi più utilizzare l'ultima versione di dev_appserver.py
per eseguire localmente il tuo
diverse applicazioni. Per scaricare una versione archiviata di devapp_server.py
:
Dall'archivio, scarica la cartella compressa contenente il
dev_appserver.py
server per i runtime che hanno raggiunto il termine del supporto.Estrai il contenuto della directory nel file system locale, ad esempio nel tuo Directory
/home
. Puoi trovaredev_appserver.py
nella directorygoogle_appengine/google/appengine/tools/java/bin
.
Eseguire il server web di sviluppo
Per informazioni sull'impostazione delle proprietà di sistema e delle variabili di ambiente per la tua app, consulta Modalità di gestione delle richieste.
Puoi anche eseguire il server web di sviluppo da un prompt dei comandi. Il comando da eseguire si trova nella directory dell'SDK con il percorso relativo google_appengine/google/appengine/tools/java/bin
.
Sintassi del comando Windows:
google_appengine\google\appengine\tools\java\bin\java_dev_appserver.cmd [options] [WAR_DIRECTORY_LOCATION]
Sintassi dei comandi Linux o macOS:
google_appengine/google/appengine/tools/java/bin/java_dev_appserver.sh [options] [WAR_DIRECTORY_LOCATION]
Il comando prende la posizione della directory WAR dell'applicazione come argomento.
Arresto del server di sviluppo
Per arrestare il server web, premi Ctrl-C.
Rilevamento dell'ambiente di runtime dell'applicazione
Per determinare se il codice viene eseguito in produzione o nel server di sviluppo locale, puoi controllare il valore del metodo SystemProperty.environment.value()
. Ad esempio:
if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
// Production
} else {
// Local development server
// which is: SystemProperty.Environment.Value.Development
}
Utilizzo dell'emulatore Datastore locale
Il server web di sviluppo simula Datastore utilizzando un Datastore basato su file locale sul tuo computer. Il data store si chiama local_db.bin
e viene creato nella directory WAR dell'applicazione, nella directory WEB-INF /appengine-generated/
. Non viene caricato con il tuo
un'applicazione.
Questo Datastore persiste tra le chiamate al server web, quindi i dati archiviati saranno ancora disponibili alla successiva esecuzione del server web. Per cancellare i contenuti del Datastore, arresta il server ed elimina questo file.
Come descritto in Configurazione degli indici Datastore, il server di sviluppo può generare la configurazione degli indici Datastore necessari per la tua applicazione, in base alle query eseguite durante il test. Viene generato un file denominato datastore-indexes-auto.xml
nel
nella directory WEB-INF/appengine-generated/
nella WAR. Per disattivare l'indicizzazione automatica
configurazione, crea o modifica il file datastore-indexes.xml
nell'elemento WEB-INF/
utilizzando l'attributo autoGenerate="false"
per
Elemento <datastore-indexes>
.
Esplorazione di Datastore nel server di sviluppo
Per sfogliare Datastore locale utilizzando il server web di sviluppo:
- Avvia il server di sviluppo come descritto in precedenza.
- Vai alla console per lo sviluppo.
- Fai clic su Visualizzatore datastore nel riquadro di navigazione a sinistra per visualizzare Contenuti Datastore.
Il modello di coerenza di Datastore
Per impostazione predefinita, il datastore locale è configurato in modo che la percentuale Scritture Datastore che non sono immediatamente visibili nelle query globali impostate sul 10%.
Per regolare questo livello di coerenza, imposta la proprietà di sistema datastore.default_high_rep_job_policy_unapplied_job_pct
con un valore corrispondente alla quantità di coerenza eventuale che vuoi che la tua applicazione visualizzi.
-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20
Se imposti questa proprietà utilizzando il prompt dei comandi java_dev_appserver.sh
,
devi utilizzare --jvm_flag=...
per impostare la proprietà:
google_appengine/google/appengine/tools/java/bin/java-dev_appserver.sh --jvm_flag=-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20
L'intervallo valido per datastore.default_high_rep_job_policy_unapplied_job_pct
è
tra 0 e 100. Se utilizzi numeri esterni a questo intervallo, riceverai un messaggio di errore.
Specifica del criterio di allocazione degli ID automatici
Puoi configurare il modo in cui Datastore locale assegna ID entità automatici.
I seguenti criteri di allocazione automatica degli ID sono supportati in il server di sviluppo:
sequential
- Gli ID vengono assegnati dalla sequenza di numeri interi consecutivi.
scattered
- Gli ID vengono assegnati da una sequenza non ripetuta di interi distribuiti approssimativamente in modo uniforme.
Il criterio predefinito nel datastore locale è scattered
.
Per specificare il criterio ID automatico, imposta il valore
datastore.auto_id_allocation_policy
su sequential
o
scattered
.
-Ddatastore.auto_id_allocation_policy=scattered
Per impostare questa proprietà di sistema tramite un flag passato alla macro dev_appserver:
java_dev_appserver --jvm_flag=-Ddatastore.auto_id_allocation_policy=scattered
Simulazione di account utente
Il server web di sviluppo simula gli Account Google con le proprie pagine di accesso e logout. Durante l'esecuzione nel server web di sviluppo, i metodi
che generano URL di accesso e uscita restituiscono URL per /_ah/login
e
/_ah/logout
sul server locale.
La pagina di accesso per gli sviluppatori include un modulo in cui è possibile inserire un indirizzo email . La sessione utilizza l'indirizzo email che inserisci come utente attivo.
Per fare in modo che l'applicazione pensi che l'utente che ha eseguito l'accesso sia un amministratore, seleziona la casella di controllo "Accedi come amministratore" nel modulo.
Utilizzo del recupero URL
Quando la tua applicazione utilizza l'API URL Fetch per effettuare una richiesta HTTP, che effettua la richiesta direttamente dal computer. La potrebbe essere diverso da quando l'applicazione viene eseguita su App Engine se utilizzi server proxy per l'accesso ai siti web.
La console di sviluppo
Il server web di sviluppo include un'applicazione web della console. Con la console puoi sfogliare il datastore locale.
Per accedere alla console, visita l'URL /_ah/admin
sul tuo server:
http://localhost:8080/_ah/admin
Argomenti della riga di comando
Il comando del server di sviluppo supporta i seguenti argomenti della riga di comando:
--address=...
-
L'indirizzo host da utilizzare per il server. Potresti dover impostare in grado di accedere al server di sviluppo da un altro computer in ogni rete. L'indirizzo
0.0.0.0
consente l'accesso a localhost e l'accesso al nome host. Valore predefinito:localhost
. --default_gcs_bucket=...
-
Imposta il nome predefinito del bucket Google Cloud Storage.
--disable_update_check
-
Se specificato, il server di sviluppo non contatterà App Engine per verificare la disponibilità di una nuova release dell'SDK. Per impostazione predefinita, il server cerca una nuova versione all'avvio e stampa un messaggio se è disponibile.
--generated_dir=...
-
Imposta la directory in cui vengono creati i file generati.
--help
-
Stampa un messaggio utile e poi esce.
--jvm_flag=...
-
Passa il flag specificato come argomento JVM. Può essere ripetuto per fornire più e i flag facoltativi.
--port=...
-
Il numero di porta da utilizzare per il server. Il valore predefinito è
8080
. --sdk_root=...
-
Un percorso per l'interfaccia a riga di comando gcloud, se diverso dalla posizione dello strumento.
--server=...
-
Il server da utilizzare per determinare la versione più recente dell'SDK.