Server pengembangan lokal (dev_appserver.py
) adalah bagian dari komponen App Engine
gcloud CLI. Topik ini memberikan informasi
lanjutan tentang penggunaan dev_appserver.py
.
Sebaiknya gunakan alat Python standar, seperti
virtualenv
untuk membuat lingkungan yang terisolasi, dan pytest
untuk menjalankan pengujian unit dan pengujian integrasi, bukan bergantung pada
dev_appserver
, server pengembangan lokal yang disediakan
dengan Google Cloud SDK.
Lihat Menggunakan Server pengembangan lokal untuk informasi selengkapnya tentang pengujian lokal.
Menyiapkan alat server pengembangan lokal
Contoh perintah dev_appserver.py
mungkin terlihat seperti berikut:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py OPTION yaml_path FILES
Ganti kode berikut:
- CLOUD_SDK_ROOT dengan jalur ke direktori root tempat Anda menginstal Google Cloud CLI. Direktori default-nya adalah
./google-cloud-sdk/
. - OPTION dengan flag yang didukung oleh server pengembangan lokal.
- FILES menentukan satu atau beberapa file
app.yaml
, satu file per layanan, untuk argumen posisiyaml_path
.
Untuk daftar lengkap opsi, jalankan perintah berikut:
python3 CLOUD_SDK_ROOT/bin/dev_appserver.py -h
Opsi umum
Opsi yang paling umum adalah sebagai berikut:
--admin_host=ADMIN_HOST
- Nama host yang harus diikat oleh konsol admin server pengembangan lokal (default: localhost).
--admin_port=ADMIN_PORT
- Port yang harus diikat dengan konsol admin server pengembangan lokal (default: 8000).
--addn_host=ADDN_HOST
- Dengan argumen ini, Anda dapat mencantumkan nilai header Host HTTP tambahan ke daftar yang disetujui, sehingga
server dapat diakses di belakang proxy, tanpa harus
menonaktifkan pemeriksaan host (lihat
--enable_host_checking
). Tambahan host yang dimulai dengan*.
mengizinkan semua subdomain. Misalnya,*.example.org
mengizinkanhost.example.org
, tetapi tidak mengizinkansub.host.example.org
atauexample.org
. Host yang dimulai dengan**.
mengizinkan subdomain dengan kedalaman berapa pun. Misalnya,**.example.com
mengizinkanhost.example.com
dansub.host.example.com
, tetapi tidakexample.com
. (default: []) --allow_skipped_files=...
- Buat file yang ditentukan dalam
app.yaml
skip_files
ataustatic
handle yang dapat dibaca aplikasi (default: False). -A APP_ID, --application=...
- Menetapkan aplikasi, mengganti nilai aplikasi
dari file
app.yaml
(default: Tidak ada). --appidentity_email_address=...
- Alamat email yang terkait dengan akun layanan yang memiliki kunci yang dapat didownload.
Dapat berupa
None
untuk tidak ada identitas aplikasi lokal (default: Tidak ada). --appidentity_private_key_path=...
- Jalur ke file kunci pribadi yang terkait dengan akun layanan (format
.pem
). Harus ditetapkan jikaappidentity_email_address
ditetapkan (default: None). --api_host=API_HOST
- Nama host yang harus diikat server API (default: localhost).
--api_port=API_PORT
- Port yang harus diikat server untuk panggilan API (default: 0).
--auth_domain=...
- Nama domain otorisasi yang akan digunakan (default:
gmail.com
). --auto_id_policy=...
- Tidak digunakan lagi. Cara datastore lokal menetapkan ID otomatis. Opsi yang tersedia adalah
sequential
atauscattered
(default:scattered
). --automatic_restart=...
- Memulai ulang instance secara otomatis saat file yang relevan dengan modulnya diubah (default: Benar).
--blobstore_path=...
- Jalur ke direktori yang digunakan untuk menyimpan konten blob
(default-nya adalah subdirektori
--storage_path
jika tidak ditetapkan) (default: None). --clear_datastore=yes|no
- Menghapus data datastore dan file histori sebelum memulai server web (default:
no
). --clear_search_indexes...
- Menghapus indeks penelusuran (default: False).
--custom_entrypoint=...
Tentukan titik entri untuk modul runtime kustom. Hal ini diperlukan jika modul tersebut ada. Sertakan
{port}
dalam string (tanpa tanda kutip) untuk meneruskan nomor port sebagai argumen (default: ). Sebagai contoh:--custom_entrypoint="gunicorn -b localhost:{port} mymodule:application"
--datastore_consistency_policy {consistent,random,time}
Kebijakan yang akan diterapkan saat memutuskan apakah penulisan datastore harus muncul dalam kueri global (default: waktu).
--datastore_emulator_cmd=...
Jalur ke skrip yang memanggil emulator cloud datastore. Jika dibiarkan kosong,
dev_appserver
akan mencoba menemukan emulator datastore di Google Cloud SDK (default: Tidak ada).--datastore_emulator_port=...
Nomor port tempat dev_appserver harus meluncurkan emulator Cloud Datastore (default: 0).
--datastore_path=...
Jalur yang akan digunakan untuk file data datastore lokal. Server membuat file ini jika file tersebut tidak ada.
--default_gcs_bucket_name=...
Nama bucket Cloud Storage default (default: None).
--dev_appserver_log_level {debug,info,warning,critical,error}
Level log di bawah level ini, pesan logging yang dihasilkan oleh server pengembangan tidak akan ditampilkan di konsol (flag ini lebih berguna untuk mendiagnosis masalah di
dev_appserver.py
, bukan di kode aplikasi) (default: info).--enable_host_checking=yes|no
Menentukan apakah akan menerapkan pemeriksaan Host
HTTP
untuk modul aplikasi, server API, dan server admin. Pemeriksaan host memberikan perlindungan dari serangan pengikatan ulang (rebinding) DNS, dan hanya menonaktifkan setelah memahami implikasi keamanan (default: True).--enable_console=yes|no
Mengaktifkan konsol interaktif dalam tampilan admin (default: Salah).
--enable_sendmail=yes|no
Menggunakan penginstalan
Sendmail
di komputer lokal untuk mengirim pesan email.--enable_task_running=yes|no
Memungkinkan server pengembangan menjalankan tugas push (default:
yes
). Jika Anda menentukanno
, server tidak akan menjalankan tugas push.--env_var=...
Variabel lingkungan buatan pengguna untuk proses runtime lokal. Setiap
env_var
dalam formatkey=value
, dan Anda dapat menentukan beberapa variabel lingkungan. Selainenv_variables
diapp.yaml
, flag ini memungkinkan penetapan variabel lingkungan tambahan untuk proses lokal.Contoh:
--env_var KEY_1=val1 --env_var KEY_2=val2
--grpc_api_port...
Port yang digunakan server API
gRPC
untuk memproses permintaan (default:0).--help
Mencetak pesan yang membantu, lalu keluar.
--host=...
Alamat host yang akan digunakan untuk server. Anda mungkin perlu mengaturnya agar dapat mengakses server pengembangan dari komputer lain di jaringan. Alamat
0.0.0.0
memungkinkan akses localhost dan akses IP atau nama host (default:localhost
).--log_level=...
Level logging terendah yang digunakan untuk menulis pesan log ke konsol; pesan dengan level logging yang ditentukan atau yang lebih tinggi akan menjadi outputnya. Nilai yang mungkin adalah
debug
,info
,warning
,error
, dancritical
.--logs_path=...
Secara default, log untuk server pengembangan lokal hanya disimpan di memori. Tentukan opsi ini saat Anda menjalankan server pengembangan lokal untuk menyimpan log ke dalam file, yang akan membuat log tersedia setiap kali server dimulai ulang. Anda harus menentukan jalur dan nama direktori ke file database SQLite. File database SQLite dibuat dengan nama yang ditentukan jika file tersebut belum ada.
Contoh:
--logs_path=/home/logs/boglogs.db
--max_module_instances=...
Jumlah maksimum instance runtime yang dapat dimulai untuk modul tertentu. Nilainya dapat berupa bilangan bulat, dalam hal ini semua modul dibatasi hanya sejumlah instance atau daftar
module:max_instances
yang dipisahkan koma (default: None). Contoh:default:5,backend:3
--mysql_host=MYSQL_HOST
Nama host server MySQL yang sedang berjalan yang digunakan untuk penyimpanan Cloud SQL simulasi (default: localhost).
--mysql_port=MYSQL_PORT
Nomor port server MySQL yang sedang berjalan yang digunakan untuk penyimpanan Cloud SQL simulasi (default: 3306).
--mysql_user=MYSQL_USER
Nama pengguna yang akan digunakan saat terhubung ke server MySQL yang ditentukan di
--mysql_host
dan--mysql_port
atau--mysql_socket
(default: ).--mysql_password=MYSQL_PASSWORD
Sandi yang akan digunakan saat terhubung ke server MySQL yang ditentukan di
--mysql_host
dan--mysql_port
atau--mysql_socket
(default: ).--mysql_socket=MYSQL_SOCKET
Jalur ke file soket Unix yang akan digunakan saat terhubung ke server MySQL yang berjalan dan digunakan untuk penyimpanan Cloud SQL simulasi (default: Tidak ada).
--port=...
Nomor port yang akan digunakan untuk server. Default-nya adalah
8080
. Jika beberapa server diluncurkan seperti untuk layanan, server tersebut akan diberi port berikutnya, seperti8081
,8082
.--require_indexes=yes|no
Menonaktifkan pembuatan entri otomatis di file
index.yaml
. Sebagai gantinya, saat aplikasi membuat kueri yang mengharuskan indeksnya ditentukan dalam file dan definisi indeks tidak ditemukan, pengecualian akan dimunculkan, mirip dengan yang akan terjadi saat berjalan di App Engine (default:no
).--runtime=...
Tentukan runtime default yang ingin Anda gunakan. Untuk mengetahui daftar runtime yang didukung, lihat Jadwal dukungan runtime.
--running_datastore_emulator_host=...
Mengganti variabel lingkungan DATASTORE_EMULATOR_HOST, yang berarti
hostname:port
dari emulator Cloud Datastore yang berjalan yang dapat dihubungkan olehdev_appserver
(default: Tidak ada).--search_indexes_path=...
Jalur ke file yang digunakan untuk menyimpan indeks penelusuran (defaultnya adalah file di
--storage_path
jika tidak ditetapkan) (default:None).--skip_sdk_update_check=...
Lewati pemeriksaan update SDK (jika salah, gunakan
.appcfg_nag
untuk menentukan) (default: False).--show_mail_body=...
Mencatat konten email yang dikirim menggunakan Mail API ke dalam log (default: Salah).
--smtp_allow_tls...
Mengizinkan TLS digunakan saat server SMTP mengumumkan dukungan TLS (diabaikan jika --smtp_host tidak ditetapkan) (default: True).
--smtp_host=...
Nama host server SMTP yang akan digunakan untuk mengirim pesan email.
--smtp_port=...
Nomor port server SMTP yang akan digunakan untuk mengirim pesan email.
--smtp_user=...
Nama pengguna yang akan digunakan dengan server SMTP untuk mengirim pesan email.
--smtp_password=...
Sandi yang akan digunakan dengan server SMTP untuk mengirim pesan email.
--storage_path=...
Jalur penyimpanan semua file lokal, seperti Datastore, Blobstore, file Cloud Storage, dan log, kecuali jika diganti oleh
--datastore_path
,--blobstore_path
, atau--logs_path
.--support_datastore_emulator=yes|no
Gunakan Emulator Cloud Datastore (beta) untuk emulasi datastore lokal.
--ssl_certificate_path=...
Jalur ke sertifikat SSL. Juga harus memberikan
--ssl_certificate_key_path
jika menggunakan opsi ini (default: None).--ssl_certificate_key_path=...
Jalur ke kunci pribadi SSL yang sesuai. Juga harus memberikan
--ssl_certificate_path
jika menggunakan opsi ini (default: None).--threadsafe_override=...
Ganti konfigurasi threadsafe aplikasi. Nilainya dapat berupa boolean, dalam hal ini semua setelan threadsafe modul akan diganti atau daftar
module:threadsafe_override
yang dipisahkan koma (default: None).Contoh:
default:False,backend:True
--use_mtime_file_watcher=...
Menggunakan polling mtime untuk mendeteksi perubahan kode sumber - berguna jika mengubah kode dari mesin jarak jauh menggunakan sistem file terdistribusi (default: False).
--watcher_ignore_re=...
String ekspresi reguler untuk menentukan file yang akan diabaikan oleh filewatcher. (default: None)
Opsi perintah khusus runtime Python:
--python_startup_script
- Skrip yang akan dijalankan saat memulai instance runtime Python baru (berguna untuk alat seperti debugger) (default: None).
--python_startup_args
- Argumen yang disediakan untuk skrip yang ditentukan di
python_startup_script
(default: None). --python27_executable_path=...
- Jalur ke python27 yang dapat dieksekusi untuk instance runtime python27 (default: None).
--python_virtualenv_path
- Jalur ke direktori yang digunakan untuk menyiapkan lingkungan virtual Python 3 untuk lingkungan eksekusi devappserver lokal untuk aplikasi Python 3. Jika jalur tidak ada, direktori akan dibuat, tetapi tidak akan dibersihkan di akhir eksekusi devappserver, sehingga memungkinkan caching di antara pemanggilan. Jika tidak ditentukan, direktori sementara akan digunakan dan dibersihkan di akhir eksekusi.
--runtime_python_path=...
- Jalur ke biner Python Anda. Untuk menjalankan
aplikasi Python di
dev_appserver
, tentukan flag ini.