Opsi server pengembangan lokal

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 posisi yaml_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 mengizinkan host.example.org, tetapi tidak mengizinkan sub.host.example.org atau example.org. Host yang dimulai dengan **. mengizinkan subdomain dengan kedalaman berapa pun. Misalnya, **.example.com mengizinkan host.example.com dan sub.host.example.com, tetapi tidak example.com. (default: [])
--allow_skipped_files=...
Buat file yang ditentukan dalam app.yaml skip_files atau static 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 jika appidentity_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 atau scattered (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 menentukan no, server tidak akan menjalankan tugas push.

--env_var=...

Variabel lingkungan buatan pengguna untuk proses runtime lokal. Setiap env_var dalam format key=value, dan Anda dapat menentukan beberapa variabel lingkungan. Selain env_variables di 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 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, 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_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, 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:port dari emulator Cloud Datastore yang berjalan yang dapat dihubungkan oleh dev_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.