File Konfigurasi

Setiap versi layanan ditentukan dalam file .yaml, yang memberikan nama layanan dan versi. File YAML biasanya menggunakan nama yang sama dengan layanan yang ditetapkan, tetapi hal ini tidak wajib. Jika men-deploy beberapa versi layanan, Anda dapat membuat beberapa file yaml di direktori yang sama, satu untuk setiap versi.

Biasanya, Anda membuat direktori untuk setiap layanan, yang berisi file YAML layanan dan kode sumber terkait. File konfigurasi tingkat aplikasi opsional (dispatch.yaml, cron.yaml, index.yaml, dan queue.yaml) disertakan dalam direktori aplikasi level teratas. Contoh di bawah ini menunjukkan tiga layanan. Di service1 dan service2, file sumber berada di level yang sama dengan file YAML. Di service3, ada file YAML untuk dua versi.

Grafik hierarki layanan YAML

Untuk project kecil dan sederhana, semua file aplikasi dapat berada di satu direktori:

Grafik hierarki layanan YAML kecil

Setiap file YAML harus menyertakan parameter versi. Untuk menentukan layanan default, Anda dapat menyertakan parameter service: default secara eksplisit atau membiarkan parameter layanan tidak ada dalam file.

Setiap file konfigurasi layanan menentukan jenis penskalaan dan class instance untuk layanan/versi tertentu. Parameter penskalaan yang berbeda digunakan bergantung pada jenis penskalaan yang Anda tentukan. Jika Anda tidak menentukan penskalaan, penskalaan otomatis akan menjadi setelan default. Setelan penskalaan dan class instance dijelaskan di bagian referensi app.yaml.

Untuk setiap layanan, Anda juga dapat menentukan setelan yang memetakan permintaan URL ke skrip tertentu dan mengidentifikasi file statis untuk efisiensi server yang lebih baik. Setelan ini juga disertakan dalam file yaml dan dijelaskan di bagian referensi app.yaml.

Layanan default

Setiap aplikasi memiliki satu layanan default. Anda dapat menentukan layanan default di app.yaml dengan setelan service: default, tetapi hal ini tidak perlu dilakukan. Semua parameter konfigurasi yang relevan dengan layanan dapat diterapkan ke layanan default.

File konfigurasi opsional

File konfigurasi ini mengontrol fitur opsional yang berlaku untuk semua layanan di aplikasi:

  • dispatch.yaml mengganti aturan default pemilihan rute dengan mengirimkan permintaan masuk ke layanan tertentu berdasarkan jalur atau nama host di URL.
  • queue.yaml mengonfigurasi push queue dan pull queue.
  • index.yaml menentukan indeks yang diperlukan aplikasi Anda jika menggunakan kueri Datastore.
  • cron.yaml mengonfigurasikan secara teratur tugas terjadwal yang beroperasi pada waktu yang telah ditentukan atau secara berkala.

Untuk men-deploy update file konfigurasi ini ke App Engine, jalankan perintah berikut dari direktori tempat file tersebut berada:

    gcloud app deploy [CONFIG_FILE]

Misalnya

Berikut adalah contoh cara mengonfigurasi file YAML untuk aplikasi yang memiliki tiga layanan: layanan default yang menangani permintaan web, serta dua layanan lainnya yang menangani permintaan seluler dan pemrosesan backend.

Mulai dengan menentukan file konfigurasi bernama app.yaml yang akan menangani semua permintaan terkait web:

runtime: python27
api_version: 1
threadsafe: true

Jika project ID konsol Google Cloud untuk aplikasi ini adalah simple-sample, maka konfigurasi ini akan membuat layanan default dengan penskalaan otomatis dan alamat publik https://simple-sample.uc.r.appspot.com.

Selanjutnya, anggaplah Anda ingin membuat layanan untuk menangani permintaan web seluler. Demi pengguna seluler (dalam contoh ini), latensi tertunda maksimum hanya sebentar dan kita akan selalu memiliki setidaknya dua instance yang tidak aktif. Untuk mengonfigurasinya, Anda akan membuat file konfigurasi mobile-frontend.yaml. dengan konten berikut:

service: mobile-frontend
runtime: python27
api_version: 1
threadsafe: true

automatic_scaling:
  min_idle_instances: 2
  max_pending_latency: 1s

Layanan yang dibuat oleh file ini kemudian dapat dijangkau di https://mobile-frontend-dot-simple-sample.uc.r.appspot.com.

Terakhir, tambahkan layanan, bernama my-service untuk menangani pekerjaan backend statis. Tugas ini dapat berupa tugas berkelanjutan yang mengekspor data dari Datastore ke BigQuery. Jumlah pekerjaan relatif tetap, sehingga Anda hanya memerlukan 1 layanan resident pada waktu tertentu. Selain itu, tugas ini perlu menangani pemrosesan dalam memori dalam jumlah besar, sehingga Anda memerlukan layanan dengan konfigurasi memori yang ditingkatkan. Untuk mengonfigurasinya, Anda akan membuat file konfigurasi my-service.yaml dengan konten berikut.

service: my-service
runtime: python27
api_version: 1
threadsafe: true

instance_class: B8
manual_scaling:
  instances: 1

Layanan yang dibuat oleh file ini kemudian dapat dijangkau di https://my-service-dot-simple-sample.uc.r.appspot.com.

Perhatikan setelan manual_scaling:. Parameter instances: memberi tahu App Engine berapa banyak instance yang akan dibuat untuk layanan ini.

Anda mungkin juga ingin mendownload aplikasi demo Python ini dan melihatnya.