Menggunakan server pengembangan lokal

Google Cloud CLI untuk Java menyertakan server pengembangan lokal untuk menguji aplikasi Anda di komputer Anda. Server pengembangan lokal mengemulasikan lingkungan runtime Java App Engine dan semua layanannya, termasuk Datastore.

Menjalankan Server Web Pengembangan

Untuk mengetahui informasi tentang menyetel properti sistem dan variabel lingkungan untuk aplikasi Anda, baca Cara Menangani Permintaan.

Anda juga dapat menjalankan server web pengembangan dari command prompt. Perintah yang harus dijalankan ada di direktori google-cloud-sdk/bin/ SDK.

Sintaksis perintah Windows:

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

Sintaksis perintah Linux atau macOS:

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

Perintah ini mengambil lokasi direktori WAR aplikasi Anda sebagai argumen.

Menghentikan server pengembangan

Untuk menghentikan server web, tekan Ctrl-C.

Mendeteksi lingkungan runtime aplikasi

Untuk menentukan apakah kode Anda berjalan di produksi atau di server pengembangan lokal, Anda dapat memeriksa nilai metode SystemProperty.environment.value(). Contoh:

if (SystemProperty.environment.value() == SystemProperty.Environment.Value.Production) {
   // Production
 } else {
  // Local development server
  // which is: SystemProperty.Environment.Value.Development
}

Menggunakan emulator Datastore lokal

Server web pengembangan menyimulasikan Datastore menggunakan Datastore lokal yang didukung file di komputer Anda. Datastore diberi nama local_db.bin, dan dibuat dalam direktori WAR aplikasi Anda, di direktori WEB-INF /appengine-generated/. File ini tidak diupload bersama aplikasi Anda.

Datastore ini tetap ada di antara pemanggilan server web, sehingga data yang Anda simpan akan tetap tersedia saat Anda menjalankan server web lagi. Untuk menghapus konten Datastore, matikan server, lalu hapus file ini.

Seperti dijelaskan dalam Konfigurasi Indeks Datastore, server pengembangan dapat menghasilkan konfigurasi untuk indeks Datastore yang diperlukan oleh aplikasi Anda, yang ditentukan dari kueri yang dijalankannya saat Anda melakukan pengujian. Tindakan ini menghasilkan file bernama datastore-indexes-auto.xml dalam direktori WEB-INF/appengine-generated/ dalam WAR. Untuk menonaktifkan konfigurasi indeks otomatis, buat atau edit file datastore-indexes.xml di direktori WEB-INF/, menggunakan atribut autoGenerate="false" untuk elemen <datastore-indexes>.

Menjelajahi Datastore di server pengembangan

Untuk menjelajahi Datastore lokal Anda menggunakan server web pengembangan:

  1. Mulai server pengembangan seperti yang dijelaskan sebelumnya.
  2. Buka Konsol Pengembangan.
  3. Klik Penampil Datastore di panel navigasi kiri untuk melihat konten Datastore lokal Anda.

Model konsistensi Cloud Datastore

Secara default, Datastore lokal dikonfigurasi sehingga persentase penulisan Datastore yang tidak langsung terlihat dalam kueri global ditetapkan ke 10%.

Untuk menyesuaikan tingkat konsistensi ini, tetapkan properti sistem datastore.default_high_rep_job_policy_unapplied_job_pct dengan nilai yang sesuai dengan jumlah konsistensi akhir yang Anda inginkan untuk dilihat oleh aplikasi Anda.

-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20

Jika menetapkan properti ini menggunakan command prompt java_dev_appserver.sh, Anda harus menggunakan --jvm_flag=... untuk menetapkan properti:

google_cloud_sdk/bin/java-dev_appserver.sh  --jvm_flag=-Ddatastore.default_high_rep_job_policy_unapplied_job_pct=20

Rentang yang valid untuk datastore.default_high_rep_job_policy_unapplied_job_pct adalah antara 0 dan 100. Jika Anda menggunakan angka di luar rentang ini, Anda akan menerima pesan error.

Menentukan Kebijakan Alokasi ID Otomatis

Anda dapat mengonfigurasi cara Datastore lokal menetapkan ID entity otomatis.

Kebijakan alokasi ID otomatis berikut didukung di server pengembangan:

sequential
ID ditetapkan dari urutan bilangan bulat yang berurutan.
scattered
ID ditetapkan dari urutan bilangan bulat yang tidak berulang dan kira-kira didistribusikan secara seragam.

Kebijakan default di Datastore lokal adalah scattered.

Untuk menentukan kebijakan ID otomatis, tetapkan properti sistem datastore.auto_id_allocation_policy ke sequential atau scattered.

-Ddatastore.auto_id_allocation_policy=scattered

Untuk menyetel properti sistem ini melalui flag yang diteruskan ke makro dev_appserver:

java_dev_appserver --jvm_flag=-Ddatastore.auto_id_allocation_policy=scattered

Menyimulasikan Akun Pengguna

Server web pengembangan menyimulasikan Akun Google dengan halaman login dan logoutnya sendiri. Saat berjalan di server web pengembangan, metode yang menghasilkan URL login dan logout menampilkan URL untuk /_ah/login dan /_ah/logout di server lokal.

Halaman login pengembangan menyertakan formulir yang dapat Anda gunakan untuk memasukkan alamat email. Sesi Anda menggunakan alamat email apa pun yang Anda masukkan sebagai pengguna aktif.

Agar aplikasi yakin bahwa pengguna yang login adalah administrator, centang kotak "Login sebagai Administrator" pada formulir.

Menggunakan URL Fetch

Jika aplikasi Anda menggunakan URL Fetch API untuk membuat permintaan HTTP, server web pengembangan akan membuat permintaan tersebut langsung dari komputer Anda. Perilaku ini dapat berbeda dengan saat aplikasi berjalan di App Engine jika Anda menggunakan server proxy untuk mengakses situs.

Konsol Pengembangan

Server web pengembangan menyertakan aplikasi web konsol. Dengan konsol ini, Anda dapat menjelajahi Datastore lokal.

Untuk mengakses konsol, buka URL /_ah/admin di server Anda: http://localhost:8080/_ah/admin

Argumen Command Line

Untuk opsi perintah server pengembangan lokal, lihat di sini.