Google Cloud CLI mencakup server pengembangan lokal
(dev_appserver.py). Anda dapat menggunakan server pengembangan lokal untuk menyimulasikan
menjalankan aplikasi App Engine dalam produksi serta menggunakannya untuk
mengakses layanan paket lama App Engine. Lingkungan simulasi menerapkan beberapa pembatasan sandbox, seperti fungsi sistem terbatas dan impor modul bahasa runtime, 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.
Menyiapkan server pengembangan lokal
Untuk menjalankan alat server pengembangan lokal, Anda harus menyiapkan hal-hal berikut:
- Pastikan Anda telah menginstal penafsir Python 3 yang kompatibel dengan versi Python yang diperlukan oleh gcloud CLI.
Pastikan Anda telah menginstal komponen Google Cloud CLI yang menyertakan ekstensi App Engine untuk Python 3 (
app-engine-python):gcloud components listJika komponen
app-engine-pythontidak diinstal, jalankan perintah berikut:gcloud components install app-engine-pythonTemukan jalur penginstalan Google Cloud SDK dengan menjalankan perintah berikut:
gcloud infoPerintah tersebut menampilkan direktori root tempat Anda menginstal Google Cloud SDK, misalnya:
Installation Root: [/Users/myname/google-cloud-sdk]Cari alat
dev_appserver.pydi folder/bin/tempat Anda menginstal Google Cloud CLI, misalnya:CLOUD_SDK_ROOT/bin/dev_appserver.pyCatat jalur ke
dev_appserver.pyuntuk digunakan nanti.
Jalankan server pengembangan lokal
Setelah menyiapkan server pengembangan lokal dan membuat
file konfigurasi app.yaml untuk
aplikasi, Anda dapat menggunakan perintah dev_appserver.py untuk menjalankan aplikasi secara lokal.
Untuk memulai server pengembangan lokal:
-
Dalam direktori yang berisi file konfigurasi
app.yamlAnda, jalankan perintahdev_appserver.py.dev_appserver.py
Tentukan jalur direktori ke aplikasi Anda, misalnya:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py PATH_TO_YOUR_APPAtau, Anda dapat menentukan file konfigurasi layanan tertentu, misalnya:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py app.yamlUntuk mengubah port, Anda menyertakan opsi
--port:python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --port=9999 PATH_TO_YOUR_APPgoapp serve
Perintah
goapp servedisertakan dengan App Engine SDK asli untuk Go dan menggabungkan alat Pythondev_appserver.pyyang mendasarinya. Untuk memulai server pengembangan lokal, Anda menjalankan:goapp serve - Server pengembangan lokal sekarang berjalan dan memproses permintaan. Anda
dapat membuka http://localhost:8080/ di browser
web Anda untuk melihat cara kerja aplikasi.
Jika Anda menentukan port kustom dengan opsi
--port, jangan lupa untuk membuka browser Anda ke port tersebut.
Untuk menghentikan server lokal dari command line, tekan tombol berikut:
- macOS atau Linux: Control+C
- Windows: Control+Break
Tentukan ID aplikasi
Untuk mengakses ID Aplikasi Anda di server lokal, misalnya untuk melakukan spoofing terhadap alamat
email, gunakan fungsi appengine.AppID.
Untuk mendapatkan nama host aplikasi yang sedang berjalan, gunakan fungsi appengine.DefaultVersionHostname.
Deteksi 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.
Lihat GitHub untuk mengetahui contohnya.
Gunakan layanan Datastore lokal
Server pengembangan lokal menyimulasikan Datastore App Engine menggunakan file lokal yang tetap ada di antara pemanggilan server lokal.
Untuk mengetahui informasi selengkapnya tentang indeks dan index.yaml, lihat halaman 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 Penampil Datastore di konsol pengembangan lokal. URL-nya adalah
http://localhost:8000/datastore.Lihat konten Datastore lokal Anda.
Tentukan kebijakan alokasi ID
Untuk App Engine produksi, Anda dapat menyetel Datastore untuk secara otomatis membuat ID entity.
Meskipun kebijakan penetapan ID otomatis untuk server produksi benar-benar berbeda dengan yang digunakan oleh server pengembangan, Anda juga dapat menyetel kebijakan alokasi ID otomatis untuk server lokal.
Untuk menentukan kebijakan penetapan tanda pengenal otomatis, gunakan opsi
--auto_id_policy:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --auto_id_policy=sequential
dengan --auto_id_policy yang dapat berupa salah satu dari hal berikut:
scattered: (default) ID ditetapkan dari urutan yang tidak berulang dari bilangan bulat yang kurang lebih terdistribusi secara seragam.sequential: ID ditetapkan dari urutan bilangan bulat yang berurutan.
Mengosongkan Datastore lokal
Guna mengosongkan Datastore lokal untuk aplikasi, panggil server pengembangan lokal sebagai berikut:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --clear_datastore=yes app.yaml
Mengubah lokasi Datastore lokal
Untuk mengubah lokasi yang digunakan untuk file Datastore, gunakan opsi --datastore_path:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py --datastore_path=/tmp/myapp_datastore app.yaml
Gunakan layanan 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:
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --smtp_host=smtp.example.com --smtp_port=25 \
--smtp_user=ajohnson --smtp_password=k1tt3ns [PATH_TO_YOUR_APP]
tetapkan opsi --smtp_host, --smtp_port, --smtp_user, dan
--smtp_password dengan nilai Anda sendiri.
Menggunakan Sendmail
Untuk mengaktifkan dukungan email dengan Sendmail, panggil dev_appserver.py sebagai berikut:
python3 [CLOUD_SDK_ROOT]/bin/dev_appserver.py --enable_sendmail=yes [PATH_TO_YOUR_APP]
Server lokal menggunakan perintah sendmail untuk mengirim pesan email dengan konfigurasi default penginstalan Anda.
Gunakan layanan 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.
Menggunakan layanan Pengguna
App Engine menyediakan Layanan pengguna untuk menyederhanakan autentikasi dan otorisasi bagi aplikasi Anda. Server pengembangan lokal menyimulasikan perilaku Akun Google dengan halaman login dan logoutnya sendiri.
Saat berjalan di server
pengembangan lokal, fungsi LoginURL dan
LogoutURL
menampilkan URL untuk /_ah/login dan /_ah/logout di server lokal.
Argumen command line
Untuk opsi perintah server pengembangan lokal, lihat Opsi server pengembangan lokal.