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 mengetahui 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.orgmengizinkanhost.example.org, tetapi tidak mengizinkansub.host.example.orgatauexample.org. Host yang dimulai dengan**.mengizinkan subdomain dengan kedalaman berapa pun. Misalnya,**.example.commengizinkanhost.example.comdansub.host.example.com, tetapi tidakexample.com. (default: [])
- --allow_skipped_files=...
- Buat file yang ditentukan dalam app.yamlskip_filesataustatichandle yang dapat dibaca aplikasi (default: False).
- -A APP_ID, --application=...
- Menetapkan aplikasi, menggantikan 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 Noneuntuk 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_addressditetapkan (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. Opsinya adalah sequentialatauscattered(default:scattered).
- --automatic_restart=...
- Mulai ulang instance secara otomatis saat file yang relevan dengan modulnya diubah (default: Benar).
- --blobstore_path=...
- Jalur ke direktori yang digunakan untuk menyimpan konten blob
(secara default ke subdirektori --storage_pathjika tidak ditetapkan) (default: None).
- --clear_datastore=yes|no
- Menghapus data datastore dan file histori sebelum memulai server web (default: no).
- --clear_search_indexes...
- Hapus indeks penelusuran (default: False).
- --custom_entrypoint=...
- Tentukan titik entri untuk modul runtime kustom. 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: time). 
- --datastore_emulator_cmd=...
- Jalur ke skrip yang memanggil emulator cloud datastore. Jika dibiarkan kosong, - dev_appserverakan mencoba menemukan emulator datastore di Google Cloud SDK (default: Tidak Ada).
- --datastore_emulator_port=...
- Nomor port yang harus digunakan dev_appserver untuk 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 pesan logging yang dihasilkan oleh server pengembangan tidak akan ditampilkan di konsol (flag ini lebih berguna untuk mendiagnosis masalah di - dev_appserver.pydaripada di kode aplikasi) (default: info).
- --enable_host_checking=yes|no
- Menentukan apakah akan menerapkan pemeriksaan Host - HTTPuntuk 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 di tampilan admin (default: False). 
- --enable_sendmail=yes|no
- Menggunakan penginstalan - Sendmaildi komputer lokal untuk mengirim pesan email.
- --enable_task_running=yes|no
- Memungkinkan server pengembangan menjalankan tugas push (default: - yes). Jika Anda menentukan- no, server tidak akan menjalankan tugas push.
- --env_var=...
- Variabel lingkungan buatan pengguna untuk proses runtime lokal. Setiap - env_vardalam format- key=value, dan Anda dapat menentukan beberapa variabel lingkungan. Selain- env_variablesdi- app.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 tempat server API - gRPCmemproses (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.0memungkinkan 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, dan- critical.
- --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_instancesyang dipisahkan koma (default: None). Contoh:- default:5,backend:3
- --mysql_host=MYSQL_HOST
- Nama host server MySQL yang sedang berjalan dan digunakan untuk penyimpanan Cloud SQL yang disimulasikan (default: localhost). 
- --mysql_port=MYSQL_PORT
- Nomor port server MySQL yang sedang berjalan dan digunakan untuk penyimpanan Cloud SQL yang disimulasikan (default: 3306). 
- --mysql_user=MYSQL_USER
- Nama pengguna yang akan digunakan saat terhubung ke server MySQL yang ditentukan dalam - --mysql_hostdan- --mysql_portatau- --mysql_socket(default: ).
- --mysql_password=MYSQL_PASSWORD
- Sandi yang akan digunakan saat terhubung ke server MySQL yang ditentukan dalam - --mysql_hostdan- --mysql_portatau- --mysql_socket(default: ).
- --mysql_socket=MYSQL_SOCKET
- Jalur ke file soket Unix yang akan digunakan saat terhubung ke server MySQL yang sedang berjalan dan digunakan untuk penyimpanan Cloud SQL yang disimulasikan (default: None). 
- --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, seperti- 8081,- 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:portemulator Cloud Datastore yang sedang berjalan yang dapat dihubungkan oleh- dev_appserver(default: None).
- --search_indexes_path=...
- Jalur ke file yang digunakan untuk menyimpan indeks penelusuran (secara default adalah file di - --storage_pathjika tidak disetel) (default:None).
- --skip_sdk_update_check=...
- Lewati pemeriksaan update SDK (jika salah, gunakan - .appcfg_naguntuk menentukan) (default: False).
- --show_mail_body=...
- Mencatat isi email yang dikirim menggunakan Mail API (default: False). 
- --smtp_allow_tls...
- Mengizinkan TLS digunakan saat server SMTP mengumumkan dukungan TLS (diabaikan jika --smtp_host tidak disetel) (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_pathjika menggunakan opsi ini (default: None).
- --ssl_certificate_key_path=...
- Jalur ke kunci pribadi SSL yang sesuai. Juga harus memberikan - --ssl_certificate_pathjika menggunakan opsi ini (default: None).
- --threadsafe_override=...
- Mengganti konfigurasi thread-safe aplikasi. Nilainya dapat berupa boolean, dalam hal ini setelan thread-safe semua modul akan diganti atau daftar - module:threadsafe_overrideyang 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 regex 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 bagi 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 penyimpanan dalam cache 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.