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.
Untuk project kecil dan sederhana, semua file aplikasi dapat berada di satu direktori:
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.