File Konfigurasi dispatch.yaml

ID region

REGION_ID adalah kode singkat yang ditetapkan Google berdasarkan region yang Anda pilih saat membuat aplikasi. Kode ini tidak sesuai dengan negara atau provinsi, meskipun beberapa ID region mungkin tampak mirip dengan kode negara dan provinsi yang umum digunakan. Untuk aplikasi yang dibuat setelah Februari 2020, REGION_ID.r disertakan dalam URL App Engine. Untuk aplikasi lama yang dibuat sebelum tanggal tersebut, ID region bersifat opsional dalam URL.

Pelajari ID region lebih lanjut.

dispatch.yaml memungkinkan Anda mengganti aturan pemilihan rute. Anda dapat menggunakan dispatch.yaml untuk mengirim permintaan masuk ke layanan tertentu (sebelumnya dikenal sebagai modul) berdasarkan jalur atau nama host di URL.

Untuk informasi selengkapnya, lihat Cara Permintaan Dirutekan.

Aplikasi hanya dapat memiliki satu file dispatch.yaml, dan aturan perutean dalam file tersebut berlaku untuk semua layanan dan versi aplikasi. Aturan perutean juga berlaku untuk URL yang digunakan dalam file cron.

Men-deploy file dispatch

Sebelum men-deploy file dispatch, Anda harus memastikan bahwa semua layanan yang ditentukan dalam file tersebut telah di-deploy ke App Engine. Untuk men-deploy file dispatch.yaml, jalankan perintah gcloud app deploy dari direktori yang berisi dispatch.yaml:

gcloud app deploy dispatch.yaml

Untuk informasi selengkapnya tentang perintah deployment, lihat Men-deploy Aplikasi.

Sintaks

Elemen root dalam file dispatch.yaml adalah dispatch: dan berisi daftar definisi perutean yang ditentukan oleh subelemen berikut.

Aturan yang Anda tentukan dalam file dispatch harus menggunakan pola URL HTTP yang menyertakan notasi "." untuk memisahkan subdomain. URL yang ditentukan dengan notasi "-dot-" HTTPS tidak didukung.

Aturan dispatch bergantung pada urutan, dan hanya aturan pertama yang cocok dengan URL yang akan diterapkan.

Elemen Deskripsi
service

Menentukan nama layanan yang akan menangani permintaan yang cocok dengan pola url. Perhatikan bahwa layanan sebelumnya disebut modul.

url

Dalam elemen url, Anda menentukan pola pola dalam tanda kutip, yang dapat mencakup nama host dan jalur URL yang tidak lebih dari 100 karakter.

Untuk elemen service, tentukan nama layanan yang Anda inginkan untuk menangani permintaan masuk yang cocok dengan pola URL elemen url.

Tips: Anda dapat menyertakan pola glob seperti karakter pengganti * dalam elemen url; namun, pola tersebut hanya dapat digunakan sebelum nama host dan di akhir jalur URL.

Jalur URL yang dimulai dengan /_ah/ tidak dirutekan oleh file dispatch.

Contoh

Berikut adalah contoh file dispatch yang merutekan permintaan ke https://simple-sample.uc.r.appspot.com dan permintaan seperti https://simple-sample.uc.r.appspot.com/favicon.ico ke layanan default. Semua konten statis disajikan dari layanan default. Permintaan seluler seperti https://simple-sample.uc.r.appspot.com/mobile/ dirutekan ke frontend seluler, dan permintaan pekerja seperti https://simple-sample.uc.r.appspot.com/work/ dirutekan ke backend statis.

Contoh:

dispatch:
  # Default service serves the typical web resources and all static resources.
  - url: "*/favicon.ico"
    service: default

  # Default service serves simple hostname request.
  - url: "simple-sample.uc.r.appspot.com/"
    service: default

  # Send all mobile traffic to the mobile frontend.
  - url: "*/mobile/*"
    service: mobile-frontend

  # Send all work to the one static backend.
  - url: "*/work/*"
    service: static-backend

Jika lebih menyukai aturan perutean umum yang cocok dengan banyak kemungkinan permintaan, Anda dapat menentukan aturan dengan cakupan yang lebih luas.

Contoh:

# Send any path that begins with “simple-sample.uc.r.appspot.com/mobile” to the mobile-frontend service.
- url: "simple-sample.uc.r.appspot.com/mobile*"
  service: mobile-frontend

# Send any domain/sub-domain with a path that starts with “work” to the static backend service.
- url: "*/work*"
  service: static-backend

Anda juga dapat menulis ekspresi yang lebih spesifik.

Contoh:

# Matches the path "/fun", but not "/fun2" or "/fun/other"
- url: "*/fun"
  service: mobile-frontend

# Matches the hostname 'customer1.myapp.com', but not '1.customer1.myapp.com.
- url: "customer1.myapp.com/*"
  service: static-backend

Anda dapat membuat aturan untuk mengarahkan kembali permintaan domain yang masuk ke layanan. Aturan berikut mengarahkan permintaan masuk dari "customer1.myapp.com" ke layanan default dan permintaan masuk dari subdomain ke layanan backend statis.

Contoh:

# Matches the domain name 'customer1.myapp.com' and directs all the request to default service 
- url: "customer1.myapp.com/*"
  service: default

# Matches all the subdomains of 'customer1.myapp.com' and directs all the request to static-backend service
- url: "*.customer1.myapp.com/*"
  service: static-backend

Batas

File dispatch dapat berisi hingga 20 aturan perutean. Saat menentukan string URL, nama host maupun jalur tidak boleh lebih dari 100 karakter.

Menghapus semua aturan dispatch

Untuk menghapus semua aturan dispatch:

  1. Edit konten file dispatch.yaml menjadi:

    dispatch: []
    
  2. Deploy file dispatch.yaml ke App Engine.