Anda dapat menggunakan server pengembangan lokal untuk menyimulasikan menjalankan aplikasi App Engine dalam produksi serta menggunakannya untuk mengakses layanan paket App Engine.
Lingkungan simulasi menerapkan beberapa pembatasan sandbox, seperti fungsi sistem terbatas dan impor modul Go 1.11, tetapi tidak yang lainnya, seperti waktu tunggu atau kuota permintaan.
Server pengembangan lokal juga menyimulasikan layanan yang disediakan oleh library di SDK untuk App Engine, termasuk Datastore, Memcache, dan Task Queues, dengan menjalankan tugasnya secara lokal. Saat aplikasi Anda berjalan di server pengembangan, Anda masih dapat melakukan panggilan API jarak jauh ke infrastruktur produksi menggunakan endpoint HTTP Google API.
Sebelum memulai
Karena Go 1.11 telah mencapai akhir dukungan, Anda tidak dapat lagi menggunakan
versi terbaru dev_appserver.py
untuk menjalankan
aplikasi secara lokal. Untuk mendownload versi devapp_server.py
yang diarsipkan, ikuti langkah-langkah
berikut:
Dari arsip, download folder zip yang berisi server
dev_appserver.py
untuk runtime yang telah mencapai akhir dukungan.Ekstrak konten direktori ke sistem file lokal Anda, seperti ke direktori
/home
. Anda dapat menemukandev_appserver.py
di direktorigoogle_appengine/
.
Menyiapkan server pengembangan lokal
Untuk menjalankan alat server pengembangan lokal, Anda harus menyiapkan hal-hal berikut:
Pastikan Anda telah menginstal penafsir Python 2 versi 2.7.12 atau yang lebih baru.
Tetapkan variabel lingkungan
DEVAPPSERVER_ROOT
di shell ke jalur penafsir Python 2 Anda.
Menjalankan server pengembangan lokal
Setelah menyiapkan server pengembangan lokal dan membuat file konfigurasi
app.yaml
untuk aplikasi Anda, Anda dapat menggunakan perintah dev_appserver.py
untuk
menjalankan aplikasi secara lokal.
Untuk memulai server pengembangan lokal:
Dalam direktori yang berisi file konfigurasi
app.yaml
Anda, jalankan perintahdev_appserver.py
.dev_appserver.py
Tentukan jalur direktori ke aplikasi Anda, misalnya:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py PATH_TO_YOUR_APP
Atau, Anda dapat menentukan file konfigurasi layanan tertentu, misalnya:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py app.yaml
Untuk mengubah port, sertakan opsi
--port
:python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --port=9999 PATH_TO_YOUR_APP
Ganti DEVAPPSERVER_ROOT dengan jalur ke folder tempat Anda mengekstrak versi yang diarsipkan dari
devapp_server.py
.goapp serve
Perintah
goapp serve
disertakan dengan App Engine SDK untuk Go yang asli dan menggabungkan alat Pythondev_appserver.py
yang mendasarinya. Untuk memulai server pengembangan lokal, Anda harus menjalankan:goapp serve
Untuk mempelajari opsi perintah
dev_appserver.py
lebih lanjut, lihat Opsi server pengembangan lokal.Server pengembangan lokal sekarang berjalan dan memproses permintaan. Anda dapat membuka http://localhost:8080/ di browser web untuk melihat cara kerja aplikasi.
Jika Anda menentukan port kustom dengan opsi
--port
, jangan lupa untuk membuka browser ke port tersebut.
Untuk menghentikan server lokal dari command line, tekan tombol berikut:
- macOS atau Linux: Control+C
- Windows: Control+Break
Menentukan ID aplikasi
Untuk mengakses ID Aplikasi Anda di server lokal, misalnya untuk melakukan spoofing alamat email, gunakan fungsi
appengine.AppID
. Untuk mendapatkan nama host aplikasi yang sedang berjalan, gunakan fungsi
appengine.DefaultVersionHostname
.
Mendeteksi lingkungan runtime aplikasi
Untuk menentukan apakah kode Anda berjalan di produksi atau di server
pengembangan lokal, Anda dapat memanggil
metode
IsDevAppServer()
. Jika ini adalah true
, kode Anda berjalan di lingkungan pengembangan
lokal; jika tidak, Anda sedang menjalankannya di produksi.
Menggunakan Datastore lokal
Server pengembangan lokal menyimulasikan datastore App Engine menggunakan file lokal yang tetap ada di antara pemanggilan server lokal.
Untuk informasi selengkapnya tentang indeks dan index.yaml
, lihat halaman Indeks Datastore dan Konfigurasi Indeks Datastore.
Menjelajahi Datastore lokal
Jika aplikasi Anda telah menulis data ke Datastore lokal menggunakan server pengembangan lokal, Anda dapat mencarinya di konsol pengembangan lokal.
Untuk menjelajahi Datastore lokal:
Akses Viewer Datastore di konsol pengembangan lokal. (URL-nya adalah
http://localhost:8000/datastore
.)Lihat konten Datastore lokal Anda.
Menentukan kebijakan alokasi ID
Untuk App Engine produksi, Anda dapat menetapkan Datastore untuk membuat ID entity secara otomatis.
Meskipun kebijakan penetapan ID otomatis untuk server produksi benar-benar berbeda dengan yang digunakan oleh server pengembangan, Anda juga dapat menetapkan kebijakan alokasi ID otomatis untuk server lokal.
Untuk menentukan kebijakan penetapan ID otomatis, gunakan opsi --auto_id_policy
:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --auto_id_policy=sequential
Ganti:
DEVAPPSERVER_ROOT dengan jalur ke folder tempat Anda mengekstrak versi yang diarsipkan dari
devapp_server.py
.--auto_id_policy
dengan salah satu dari berikut ini:scattered
jika (default) ID ditetapkan dari urutan yang tidak berulang dari bilangan bulat yang kurang lebih terdistribusi secara seragam.sequential
jika ID ditetapkan dari urutan bilangan bulat yang berurutan.
Mengosongkan Datastore lokal
Guna mengosongkan datastore lokal untuk aplikasi, panggil server pengembangan lokal sebagai berikut:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --clear_datastore=yes app.yaml
Ganti DEVAPPSERVER_ROOT dengan jalur ke folder tempat Anda
mengekstrak versi yang diarsipkan dari devapp_server.py
.
Mengubah lokasi Datastore lokal
Untuk mengubah lokasi yang digunakan untuk file datastore, gunakan opsi --datastore_path
:
python2 DEVAPPSERVER_ROOT/google_appengine/dev_appserver.py --datastore_path=/tmp/myapp_datastore app.yaml
Ganti DEVAPPSERVER_ROOT dengan jalur ke folder tempat Anda
mengekstrak versi yang diarsipkan dari devapp_server.py
.
Menggunakan layanan Pengguna
App Engine menyediakan Layanan Pengguna untuk menyederhanakan autentikasi dan otorisasi untuk aplikasi Anda. Server pengembangan lokal menyimulasikan perilaku Akun Google dengan halaman login dan logoutnya sendiri. Saat berjalan pada server
pengembangan lokal, fungsi
LoginURL
dan LogoutURL
menampilkan URL untuk /_ah/login
dan /_ah/logout
di server lokal.
Menggunakan Email
Server pengembangan lokal dapat mengirim email untuk panggilan ke layanan email App Engine menggunakan server SMTP atau penginstalan lokal Sendmail.
Menggunakan SMTP
Untuk mengaktifkan dukungan email dengan server SMTP, panggil dev_appserver.py
seperti
berikut:
python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns [PATH_TO_YOUR_APP]
Ganti:
[DEVAPPSERVER_ROOT]
dengan jalur ke folder tempat Anda mengekstrak versi yang diarsipkan daridevapp_server.py
.- Opsi
--smtp_host
,--smtp_port
,--smtp_user
, dan--smtp_password
dengan nilai konfigurasi Anda sendiri.
Menggunakan Sendmail
Untuk mengaktifkan dukungan email dengan Sendmail, panggil dev_appserver.py
sebagai berikut:
python2 [DEVAPPSERVER_ROOT]/google_appengine/dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
Ganti [DEVAPPSERVER_ROOT]
dengan jalur ke folder tempat Anda
mengekstrak versi yang diarsipkan dari devapp_server.py
.
Server lokal akan menggunakan perintah sendmail
untuk mengirim pesan email dengan konfigurasi default penginstalan Anda.
Menggunakan URL-fetch
Jika aplikasi Anda menggunakan URL-fetch API untuk membuat permintaan HTTP, server pengembangan lokal akan membuat permintaan tersebut langsung dari komputer Anda. Perilaku URL Fetch di server lokal dapat berbeda dengan App Engine produksi jika Anda menggunakan server proxy untuk mengakses situs.