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:
- Mulai server pengembangan seperti yang dijelaskan sebelumnya.
- Buka Konsol Pengembangan.
- 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 (perhatikan bahwa informasi ini berlaku untuk runtime Java 11 serta runtime Java 8)
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.