Menggunakan peta URL

Panduan ini menunjukkan cara mengonfigurasi peta URL Google Cloud. Peta URL adalah kumpulan aturan untuk merutekan permintaan HTTP(S) yang masuk ke layanan backend atau bucket backendtertentu. Peta URL minimal cocok dengan semua jalur permintaan masuk (/*).

Sebelum mengikuti panduan ini, pahami konsep peta URL.

Peta URL digunakan dengan produk Google Cloud berikut:

Peta URL yang digunakan dengan Load Balancer Aplikasi eksternal global, Load Balancer Aplikasi eksternal regional, Load Balancer Aplikasi internal, dan Cloud Service Mesh juga mendukung beberapa fitur pengelolaan traffic lanjutan. Untuk mengetahui informasi selengkapnya, lihat Konsep peta URL: Pengelolaan traffic lanjutan.

Default peta URL

Peta URL memiliki dua setelan default, seperti yang dijelaskan dalam tabel berikut.

Jenis default Setelan Arti
Peta URL default gcloud compute url-maps create

--default-service | --default-backend-bucket

Layanan backend default atau bucket backend yang ditentukan akan digunakan jika tidak ada pencocok jalur atau aturan host yang cocok dengan URL yang masuk.
Pencocok jalur default gcloud compute url-maps add-path-matcher

--default-service | --default-backend-bucket

Layanan backend default atau bucket backend yang ditentukan akan digunakan jika jalur URL cocok dengan pencocok jalur, tetapi tidak ada --path-rules yang ditentukan yang cocok.

Aturan host

Aturan host menentukan sekumpulan host yang akan dicocokkan dengan permintaan.

Dalam aturan host, nama host harus berupa nama domain yang sepenuhnya memenuhi syarat (FQDN). Nama host tidak boleh berupa alamat IPv4 atau IPv6. Contoh:

  • Karya: example.com
  • Karya: web.example.com
  • Karya: *.example.com
  • Tidak berfungsi: 35.244.221.250

Mengonfigurasi peta URL

Peta URL dapat mengirim traffic ke layanan backend atau bucket backend. Bucket backend tidak didukung dengan Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal.

Konsol

Untuk menambahkan peta URL menggunakan Konsol Google Cloud, lakukan langkah-langkah berikut:

  1. Buka halaman Load balancing.

    Buka Load balancing

  2. Klik Nama load balancer.
  3. Di halaman Load Balancer Details, klik Edit untuk load balancer yang dipilih.
  4. Pilih Host and path rules.
  5. Klik Tambahkan aturan host dan jalur.
  6. Isi kolom Host, kolom Paths, atau keduanya, lalu pilih backend service atau backend bucket.

    1. Masukkan Nama host yang sepenuhnya memenuhi syarat, misalnya web.example.com.
    2. Masukkan jalur—misalnya, /video.
    3. Di halaman Host and path rules, di menu Backends, pilih layanan backend atau bucket backendyang tersedia.
  7. Cari tanda centang biru di sebelah kiri Host and Path Rules, lalu klik tombol Update.

gcloud

Untuk menambahkan peta URL menggunakan Google Cloud CLI, gunakan perintah url-maps create:

gcloud compute url-maps create URL_MAP_NAME \
   (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \
   [--description DESCRIPTION] \
   [--global | --region=REGION]

Untuk Load Balancer Aplikasi eksternal regional dan Load Balancer Aplikasi internal, pastikan untuk menyertakan flag --region saat Anda membuat peta URL.

Untuk membuat pencocok jalur, gunakan perintah gcloud compute url-maps add-path-matcher:

gcloud compute url-maps add-path-matcher URL_MAP_NAME \
   (--default-backend-bucket=DEFAULT_BACKEND_BUCKET | --default-service=DEFAULT_SERVICE) \
   --path-matcher-name PATH_MATCHER \
   [--path-rules="PATH=SERVICE or BUCKET"]

Perintah ini memerlukan layanan backend default atau bucket backend yang dapat digunakan untuk mengirim permintaan yang tidak cocok. Tanda --path-rules menentukan pemetaan antara jalur permintaan dan layanan backend atau bucket. Contoh berikut me-rutekan jalur permintaan /video/ dan /video/* ke layanan backend video-service:

--path-rules="/video=video-service,/video/*=video-service"

Untuk membuat aturan host, gunakan perintah gcloud compute url-maps add-host-rule:

gcloud compute url-maps add-host-rule URL_MAP_NAME \
    --hosts=[HOSTS] --path-matcher-name=PATH_MATCHER

Misalnya, nilai --hosts berikut cocok dengan permintaan terhadap www.example.com dan subdomain altostrat.com apa pun:

--hosts=[*.altostrat.com,www.example.com]

Untuk mengubah layanan default atau bucket default peta URL, gunakan perintah url-maps set-default-service:

gcloud compute url-maps set-default-service URL_MAP_NAME
  (--default-backend-bucket=DEFAULT_BACKEND_BUCKET
  | --default-service=DEFAULT_SERVICE)[GCLOUD_WIDE_FLAG ...]

Terraform

Untuk membuat peta URL global, gunakan resource google_compute_url_map.

# url map
resource "google_compute_url_map" "default" {
  name            = "http-lb"
  default_service = google_compute_backend_bucket.default.id
}

Untuk membuat peta URL regional, gunakan resource google_compute_region_url_map.

resource "google_compute_region_url_map" "default" {
  name            = "regional-l7-xlb-map"
  region          = "us-west1"
  default_service = google_compute_region_backend_service.default.id
}

Memvalidasi konfigurasi peta URL

Sebelum men-deploy peta URL, pastikan Anda memvalidasi konfigurasi peta URL untuk memastikan peta merutekan permintaan ke backend yang sesuai seperti yang diinginkan. Anda dapat melakukannya dengan menambahkan pengujian ke konfigurasi peta URL. Anda dapat bereksperimen dengan berbagai aturan peta URL dan menjalankan pengujian sebanyak yang diperlukan untuk yakin bahwa peta akan merutekan traffic dengan tepat saat di-deploy. Selain itu, jika perubahan aturan diperlukan di masa mendatang, Anda dapat menguji perubahan tersebut sebelum benar-benar menerapkan konfigurasi baru.

Gunakan perintah gcloud compute url-maps validate untuk memvalidasi konfigurasi peta URL. Perintah ini hanya menguji konfigurasi yang disediakan. Terlepas dari apakah pengujian lulus atau gagal, tidak ada perubahan yang disimpan ke peta URL yang di-deploy. Perilaku ini tidak seperti perintah peta URL lainnya (edit, import), yang juga menjalankan pengujian yang sama, tetapi sebenarnya akan menyimpan konfigurasi baru jika pengujian lulus. Jika Anda ingin menguji konfigurasi pemilihan rute baru tanpa membuat perubahan pada peta URL yang di-deploy, gunakan perintah validate.

Perintah validate memungkinkan Anda menguji konfigurasi rute lanjutan seperti pemilihan rute berdasarkan header dan parameter kueri, pengalihan HTTP ke HTTPS, dan penulisan ulang URL.

Konsol

Anda tidak dapat menggunakan konsol Google Cloud untuk memvalidasi konfigurasi peta URL. Sebagai gantinya, gunakan gcloud atau REST API.

gcloud

Untuk memvalidasi konfigurasi peta URL, gunakan perintah gcloud compute url-maps validate.

Untuk Load Balancer Aplikasi eksternal global:

gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \
    --load-balancing-scheme=EXTERNAL_MANAGED \
    --global

Untuk Load Balancer Aplikasi klasik:

gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE \
    --load-balancing-scheme=EXTERNAL \
    --global
  • PATH_TO_URL_MAP_CONFIG_FILE: Ganti dengan jalur ke file yang berisi konfigurasi peta URL untuk validasi.

Memvalidasi perubahan pada peta URL load balancer yang ada

Jika memiliki load balancer yang sudah ada dan memerlukan perubahan pada peta URL, Anda dapat menguji perubahan konfigurasi tersebut sebelum mengaktifkannya.

  1. Ekspor peta URL load balancer yang ada ke file YAML.

    gcloud compute url-maps export URL_MAP_NAME \
       --destination PATH_TO_URL_MAP_CONFIG_FILE \
       --global
    
  2. Edit file YAML dengan konfigurasi baru. Misalnya, jika ingin mengedit Load Balancer Aplikasi eksternal dan mengirim semua permintaan dengan jalur /video ke layanan backend baru yang disebut video-backend-service, Anda dapat menambahkan pengujian ke konfigurasi peta URL sebagai berikut:

    Konfigurasi peta URL yang ada dengan satu web-backend-service default:

     kind: compute#urlMap
     name: URL_MAP_NAME
     defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
     

    Konfigurasi peta URL yang diedit dengan pencocok jalur yang ditambahkan dan pengujian untuk layanan backend web-backend-service default dan video-backend-service baru:

     kind: compute#urlMap
     name: URL_MAP_NAME
     defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
     hostRules:
     - hosts:
       - '*'
       pathMatcher: pathmap
     pathMatchers:
     - defaultService: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
       name: pathmap
       pathRules:
       - paths:
         - /video
         - /video/*
         service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service
     tests:
     - description: Test routing to existing web service
       host: foobar
       path: /
       service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/web-backend-service
     - description: Test routing to new video service
       host: foobar
       path: /video
       service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendService/video-backend-service
    
  3. Validasi konfigurasi baru.

    gcloud compute url-maps validate --source PATH_TO_URL_MAP_CONFIG_FILE
    

    Jika semua pengujian berhasil lulus, Anda akan melihat pesan sukses seperti:

    Successfully validated [https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/urlMaps/URL_MAP_CONFIG_FILE_NAME]
    

    Jika pengujian gagal, pesan error akan muncul. Lakukan perbaikan yang diperlukan pada file konfigurasi peta URL dan coba validasi lagi.

    Error: Invalid value for field 'urlMap.tests': ''.
    Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.
    
  4. Setelah mengetahui bahwa konfigurasi baru berfungsi dan tidak memengaruhi penyiapan yang ada, Anda dapat mengimpornya ke peta URL. Perhatikan bahwa langkah ini juga men-deploy peta URL dengan konfigurasi baru.

    gcloud compute url-maps import URL_MAP_NAME \
       --source PATH_TO_URL_MAP_CONFIG_FILE \
       --global
    

Menambahkan pengujian ke peta URL

Anda dapat menambahkan pengujian konfigurasi ke peta URL untuk memastikan peta URL merutekan permintaan ke layanan backend atau bucket backend seperti yang diinginkan.

Bagian ini menjelaskan cara menambahkan pengujian ke peta URL yang telah di-deploy. Jika Anda ingin menguji perubahan baru pada peta URL tanpa benar-benar men-deploy peta, lihat Memvalidasi konfigurasi peta URL.

Saat Anda mengedit peta URL, pengujian akan berjalan, dan pesan error akan muncul jika pengujian gagal:

Error: Invalid value for field 'urlMap.tests': ''.
Test failure: Expect URL 'HOST/PATH' to map to service 'EXPECTED_BACKEND_SERVICE', but actually mapped to 'ACTUAL_BACKEND_SERVICE'.

Menambahkan pengujian ke peta URL bersifat opsional.

Konsol

Untuk menjalankan pengujian dari konsol Google Cloud:

  1. Buka halaman Load balancing.

    Buka Load balancing

  2. Klik Nama load balancer.
  3. Di halaman Detail Load Balancer, klik Edit untuk load balancer yang dipilih.
  4. Klik Routing rules. Untuk Load Balancer Aplikasi klasik, ini adalah Aturan host dan jalur.
  5. Klik Tampilkan uji konfigurasi.
  6. Klik Tambahkan pengujian konfigurasi. Tambahkan URL dan backend pengujian berikut:
    • Host dan jalur pengujian 1 example.com dan Backend www-service.
    • Host dan jalur pengujian 2 example.net dan Backend www-service.
    • Host dan jalur pengujian 3 example.net/web dan Backend www-service.
    • Host dan jalur pengujian 4 example.com/videos dan Backend video-service.
    • Host dan jalur pengujian 5 example.com/videos/browse dan Backend video-service.
    • Host dan jalur pengujian 6 example.net/static dan Backend static-service.
    • Host dan jalur pengujian 7 example.net/static/images dan Backend static-service.
  7. Cari tanda centang biru di sebelah kiri Routing rules, lalu klik tombol Update. Untuk Load Balancer Aplikasi klasik, cari tanda centang biru di samping Host and path rules.

gcloud

Untuk menambahkan pengujian ke peta URL menggunakan Google Cloud CLI, gunakan perintah gcloud compute url-maps edit:

gcloud compute url-maps edit URL_MAP_NAME

Tindakan ini akan meluncurkan editor teks. Untuk Load Balancer Aplikasi eksternal, pengujian Anda harus menggunakan format berikut:

  tests:
    - host: example.com
    service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
    - host: example.net
    service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
    - host: example.com
      path: /videos
      service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service
    - host: example.com
      path: /videos/browse
      service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/video-service
    - host: example.net
      path: /web
      service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/www-service
    - host: example.net
      path: /static
      service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service
    - host: example.net
      path: /static/images
      service: https://www.googleapis.com/compute/v1/projects/PROJECT_ID/global/backendServices/static-service

Perhatikan bahwa jika Anda tidak menentukan host dalam aturan host, URL dari semua host (example.com dan example.net) dapat cocok. Jika memiliki aturan host, Anda harus membuat aturan yang cocok dengan example.com dan example.net.

Membuat daftar peta URL

Konsol

Anda tidak dapat mencantumkan semua peta URL di konsol Google Cloud.

gcloud

Untuk menampilkan daftar peta URL menggunakan Google Cloud CLI, gunakan perintah url-maps list.

gcloud compute url-maps list

Mendapatkan informasi tentang peta URL

Konsol

Untuk mendapatkan informasi tentang peta URL, lakukan langkah-langkah berikut:

  1. Buka halaman Load balancing.

    Buka Load balancing

  2. Klik Nama load balancer.
  3. Di halaman Detail Load Balancer, klik Edit untuk load balancer yang dipilih.
  4. Lihat Host and path rules.

gcloud

Untuk mendapatkan informasi tentang satu peta URL menggunakan Google Cloud CLI, gunakan perintah url-maps describe.

gcloud compute url-maps describe URL_MAP_NAME

Menghapus peta URL

Anda hanya dapat menghapus peta URL setelah menghapus semua proxy target yang mereferensikannya. Untuk informasi selengkapnya, lihat Menghapus proxy target.

Konsol

Untuk menghapus peta URL, lakukan langkah-langkah berikut:

  1. Buka halaman Load balancing.

    Buka Load balancing

  2. Klik Nama load balancer.
  3. Di halaman Detail Load Balancer, klik Edit untuk load balancer yang dipilih.
  4. Di halaman Load Balancer Details, lihat Host and path rules.
  5. Klik "X" di sebelah kanan peta URL untuk menghapusnya. Peta URL akan hilang.
  6. Cari tanda centang biru di sebelah kiri Host and Path Rules, lalu klik tombol Update.

gcloud

Untuk menghapus peta URL menggunakan Google Cloud CLI, gunakan perintah url-maps delete. Sebelum Anda dapat menghapus peta URL, proxy HTTP target apa pun yang mereferensikan peta URL harus dihapus terlebih dahulu.

gcloud compute url-maps delete URL_MAP_NAME [--quiet]

Menghapus pencocok jalur

Konsol

Untuk menghapus pencocok jalur, lakukan langkah-langkah berikut:

  1. Buka halaman Load balancing.

    Buka Load balancing

  2. Klik Nama load balancer.
  3. Di halaman Detail Load Balancer, klik Edit untuk load balancer yang dipilih.
  4. Pilih Host and path rules.
  5. Di kolom Paths untuk peta URL yang ada, klik "x" pada nama pencocok jalur.
  6. Cari tanda centang biru di sebelah kiri Host and Path Rules, lalu klik tombol Update.

gcloud

Untuk menghapus pencocok jalur, gunakan perintah gcloud compute url-maps remove-path-matcher:

gcloud compute url-maps remove-path-matcher URL_MAP_NAME \
   [--path-matcher-name PATH_MATCHER]

Menghapus aturan host

Konsol

Untuk menghapus aturan host, lakukan langkah-langkah berikut:

  1. Jika Anda belum berada di halaman Host and path rules, buka halaman Load balancing.

    Buka Load balancing

  2. Klik Nama load balancer.
  3. Di halaman Detail Load Balancer, klik Edit untuk load balancer yang dipilih.
  4. Pilih Host and path rules.
  5. Di kolom Hosts untuk peta URL yang ada, klik "x" di nama host.
  6. Cari tanda centang biru di sebelah kiri Host and Path Rules, lalu klik tombol Update.

gcloud

Untuk menghapus aturan host dari peta URL, gunakan perintah gcloud compute url-maps remove-host-rule:

gcloud compute url-maps remove-host-rule URL_MAP_NAME --host=HOST

Misalnya, untuk menghapus aturan host yang berisi host altostrat.com dari peta URL bernama my-map, Anda akan menjalankan perintah berikut:

gcloud compute url-maps remove-host-rule my-map --host altostrat.com

Panduan pengelolaan traffic

Tidak semua fitur peta URL tersedia untuk semua produk. Peta URL digunakan dengan load balancer untuk mendukung beberapa fitur pengelolaan traffic lanjutan, yang tidak semuanya didukung di Load Balancer Aplikasi klasik.

Gunakan tabel berikut untuk mempelajari fitur peta URL untuk pengelolaan.

Produk Panduan fitur peta URL dan pengelolaan traffic
Load Balancer Aplikasi eksternal global Fitur load balancer: Pemilihan rute dan pengelolaan traffic

Ringkasan pengelolaan traffic

Menyiapkan pengelolaan traffic

Menyiapkan pengalihan URL

Menyiapkan pengalihan HTTP-ke-HTTPS

Nama host dan jalur

Permintaan pemilihan rute

Cookie

Load Balancer Aplikasi Klasik Fitur load balancer: Pemilihan rute dan pengelolaan traffic

Ringkasan pengelolaan traffic

Menyiapkan pengalihan URL

Menyiapkan pengalihan HTTP-ke-HTTPS

Nama host dan jalur

Pemilihan rute berbasis header dan parameter kueri

Load Balancer Aplikasi eksternal regional Fitur load balancer: Pemilihan rute dan pengelolaan traffic

Ringkasan pengelolaan traffic

Menyiapkan pengelolaan traffic

Menyiapkan pengalihan URL

Menyiapkan pengalihan HTTP-ke-HTTPS

Nama host dan jalur

Permintaan pemilihan rute

Cookie

Load Balancer Aplikasi Internal Fitur load balancer: Pemilihan rute dan pengelolaan traffic

Ringkasan pengelolaan traffic

Menyiapkan pengelolaan traffic

Menyiapkan pengalihan URL

Menyiapkan pengalihan HTTP-ke-HTTPS

Cookie

Nama host dan jalur

Mesh Layanan Cloud Fitur Cloud Service Mesh: Pemilihan rute dan pengelolaan traffic

Ringkasan pengelolaan traffic lanjutan

Mengonfigurasi pengelolaan traffic lanjutan

Referensi API dan gcloud CLI

Selain konsol Google Cloud, Anda dapat menggunakan API dan gcloud CLI untuk membuat peta URL.

API

Untuk deskripsi properti dan metode yang tersedia bagi Anda saat menggunakan peta URL melalui REST API, lihat hal berikut:

Produk Dokumentasi API
Load Balancer Aplikasi Eksternal urlMaps
Load Balancer Aplikasi Internal regionUrlMaps
Mesh Layanan Cloud urlMaps

gcloud CLI

Untuk Google Cloud CLI di Google Cloud CLI, lihat hal berikut:

  • Global: --global
  • Regional: --region=[REGION]

Untuk pengelolaan traffic lanjutan, gunakan file YAML dan impor dengan perintah gcloud compute url-maps import.

Langkah selanjutnya