Menggunakan peta URL

Panduan ini menunjukkan cara mengonfigurasi peta URL Google Cloud. Peta URL adalah sekumpulan aturan untuk mengarahkan permintaan HTTP(S) yang masuk ke layanan backend atau bucket backend tertentu. 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 Traffic Director juga mendukung beberapa fitur pengelolaan traffic lanjutan. Untuk informasi selengkapnya, lihat Konsep peta URL: Pengelolaan traffic lanjutan.

Default peta URL

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

Jenis default Setelan Arti
Default peta URL 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 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 kumpulan host untuk dicocokkan dengan permintaan.

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

  • Kantor: example.com
  • Kantor: web.example.com
  • Kantor: *.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 Add host and path rule.
  6. Isi kolom Host, kolom Paths, atau keduanya, lalu pilih layanan backend atau bucket backend.

    1. Masukkan Host name 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 backend yang 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. Flag --path-rules menentukan pemetaan antara jalur permintaan dan layanan atau bucket backend. Contoh berikut merutekan 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 dengan www.example.com dan subdomain google.com apa pun:

--hosts=[*.google.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 sebagaimana mestinya. 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 memastikan bahwa peta tersebut akan mengarahkan traffic dengan tepat saat peta di-deploy. Selain itu, jika perubahan aturan diperlukan di masa mendatang, Anda dapat menguji perubahan tersebut sebelum benar-benar mengaktifkan konfigurasi baru.

Gunakan perintah gcloud compute url-maps validate untuk memvalidasi konfigurasi peta URL. Perintah ini hanya menguji konfigurasi yang diberikan. Terlepas dari apakah pengujian lulus atau gagal, tidak ada perubahan yang disimpan untuk peta URL yang di-deploy. Perilaku ini tidak seperti perintah peta URL lainnya (edit, import), yang juga menjalankan pengujian yang sama, tetapi benar-benar akan menyimpan konfigurasi baru jika pengujian lulus. Jika Anda ingin menguji konfigurasi perutean baru tanpa mengubah 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, serta penulisan ulang URL.

Konsol

Anda tidak dapat menggunakan konsol Google Cloud untuk memvalidasi konfigurasi peta URL. Gunakan gcloud atau REST API sebagai gantinya.

gcloud

Untuk memvalidasi konfigurasi peta URL Anda, 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 sudah ada

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

  1. Mengekspor 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. Mengedit file YAML dengan konfigurasi baru. Misalnya, jika Anda 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
     

    Mengedit konfigurasi peta URL dengan tambahan pencocok jalur dan pengujian untuk web-backend-service default dan layanan backend 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, Anda akan melihat pesan berhasil 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, lalu coba lakukan 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 akan 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 bahwa peta URL Anda mengarahkan permintaan ke layanan backend atau bucket backend sebagaimana mestinya.

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 bagian 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 Load Balancer Details, klik Edit untuk load balancer yang dipilih.
  4. Klik Routing rules. Untuk Load Balancer Aplikasi klasik, ini adalah Aturan host dan jalur.
  5. Klik Show configuration tests.
  6. Klik Add configuration test. Tambahkan URL dan backend pengujian berikut:
    • Host pengujian dan jalur 1 example.com dan Backend www-service.
    • Host pengujian dan jalur 2 example.net dan Backend www-service.
    • Host pengujian dan jalur 3 example.net/web dan Backend www-service.
    • Host pengujian dan jalur 4 example.com/videos dan Backend video-service.
    • Host pengujian dan jalur 5 example.com/videos/browse dan Backend video-service.
    • Host pengujian dan jalur 6 example.net/static dan Backend static-service.
    • Host pengujian dan jalur 7 example.net/static/images dan Backend static-service.
  7. Cari tanda centang biru di sebelah kiri Aturan pemilihan rute, lalu klik tombol Update. Untuk Load Balancer Aplikasi klasik, cari 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 (baik example.com maupun 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 menampilkan daftar 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 Load Balancer Details, 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 mengetahui 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 Load Balancer Details, 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, semua proxy HTTP target yang merujuk ke 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 Load Balancer Details, klik Edit untuk load balancer yang dipilih.
  4. Pilih Host and path rules.
  5. Di kolom Jalur 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 Load Balancer Details, klik Edit untuk load balancer yang dipilih.
  4. Pilih Host and path rules.
  5. Di kolom Hosts untuk peta URL yang ada, klik "x" pada 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 google.com dari peta URL bernama my-map, Anda harus menjalankan perintah berikut:

gcloud compute url-maps remove-host-rule my-map --host google.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, tetapi tidak semuanya didukung di Load Balancer Aplikasi klasik.

Gunakan tabel berikut untuk mempelajari fitur peta URL untuk pekerjaan pengelolaan.

Produk Fitur peta URL dan panduan 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 parameter kueri dan header

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-to_HTTPS

Cookie

Nama host dan jalur

Traffic Director Fitur Traffic Director: 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 saat menggunakan peta URL melalui REST API, lihat artikel berikut:

Produk Dokumentasi API
Load Balancer Aplikasi Eksternal urlMaps
Load Balancer Aplikasi internal regionUrlMaps
Traffic Director urlMaps

gcloud CLI

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

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

Langkah selanjutnya