Utilizzo del server di sviluppo locale

Google Cloud CLI per Java include un server di sviluppo locale per testare l'applicazione sul tuo computer. Il server di sviluppo locale emula il runtime Java di App Engine dell'ambiente di rete e tutti i suoi servizi, tra cui Datastore.

Esecuzione del 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 è nella directory google-cloud-sdk/bin/ dell'SDK.

Sintassi dei comandi di Windows:

google-cloud-sdk\bin\java_dev_appserver.cmd [options] [WAR_DIRECTORY_LOCATION]

Sintassi dei comandi Linux o macOS:

google-cloud-sdk/bin/java_dev_appserver.sh [options] [WAR_DIRECTORY_LOCATION]

Il comando prende la posizione della directory WAR dell'applicazione come .

Arresto del server di sviluppo

Per arrestare il server web, premi Ctrl-C.

Rilevamento dell'ambiente di runtime dell'applicazione

Per determinare se il tuo codice è in esecuzione in produzione o nell'ambiente server di sviluppo, puoi verificare il valore 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 una tecnologia Datastore sul computer. Datastore si chiama local_db.bin ed è creato nella directory WAR dell'applicazione, nel 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 il valore dei contenuti di Datastore, arresta il server ed elimina questo file.

Come descritto nella sezione Configurazione dell'indice di Datastore, il server di sviluppo può generare la configurazione per gli indici Datastore necessari dalla tua applicazione, determinate dalle query che esegue per testarlo. 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 il datastore locale utilizzando il server web di sviluppo:

  1. Avvia il server di sviluppo come descritto in precedenza.
  2. Vai alla console di sviluppo.
  3. Fai clic su Visualizzatore datastore nel riquadro di navigazione a sinistra per visualizzare Contenuti Datastore.

Modello di coerenza di Cloud 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 il valore datastore.default_high_rep_job_policy_unapplied_job_pct con un corrispondente alla quantità di coerenza finale che desideri l'applicazione.

-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_cloud_sdk/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 al di fuori di questo intervallo, riceverai un errore.

Specifica il criterio di allocazione automatica degli ID

Puoi configurare la modalità di assegnazione del datastore locale ID entità automatici (tieni presente che queste informazioni riguardano sia il runtime di Java 11 che quello di Java 8)

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 circa in modo uniforme numeri interi distribuiti.
.

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 i propri dati di accesso e pagine di uscita. 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 creda che l'utente che ha eseguito l'accesso sia un amministratore, controlla la pagina "Accedi come amministratore" casella di controllo sul 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

Per le opzioni dei comandi del server di sviluppo locale, vedi qui.