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:
- Load Balancer Aplikasi Eksternal (mode global, klasik, dan regional)
- Load Balancer Aplikasi Internal
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
|
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
|
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:
- Buka halaman Load balancing.
- Klik Nama load balancer.
- Di halaman Load Balancer Details, klik Edit untuk load balancer yang dipilih.
- Pilih Host and path rules.
- Klik Tambahkan aturan host dan jalur.
Isi kolom Host, kolom Paths, atau keduanya, lalu pilih backend service atau backend bucket.
- Masukkan Nama host yang sepenuhnya memenuhi syarat, misalnya
web.example.com
. - Masukkan jalur—misalnya,
/video
. - Di halaman Host and path rules, di menu Backends, pilih layanan backend atau bucket backendyang tersedia.
- Masukkan Nama host yang sepenuhnya memenuhi syarat, misalnya
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.
Untuk membuat peta URL regional, gunakan resource google_compute_region_url_map.
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 diberikan.
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.
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
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 disebutvideo-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 danvideo-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
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'.
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:
- Buka halaman Load balancing.
- Klik Nama load balancer.
- Di halaman Detail Load Balancer, klik Edit untuk load balancer yang dipilih.
- Klik Routing rules. Untuk Load Balancer Aplikasi klasik, ini adalah Aturan host dan jalur.
- Klik Tampilkan uji konfigurasi.
- Klik Tambahkan pengujian konfigurasi. Tambahkan URL dan backend pengujian berikut:
- Host dan jalur pengujian 1
example.com
dan Backendwww-service.
- Host dan jalur pengujian 2
example.net
dan Backendwww-service.
- Host dan jalur pengujian 3
example.net/web
dan Backendwww-service.
- Host dan jalur pengujian 4
example.com/videos
dan Backendvideo-service.
- Host dan jalur pengujian 5
example.com/videos/browse
dan Backendvideo-service.
- Host dan jalur pengujian 6
example.net/static
dan Backendstatic-service.
- Host dan jalur pengujian 7
example.net/static/images
dan Backendstatic-service.
- Host dan jalur pengujian 1
- 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:
- Buka halaman Load balancing.
- Klik Nama load balancer.
- Di halaman Detail Load Balancer, klik Edit untuk load balancer yang dipilih.
- 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:
- Buka halaman Load balancing.
- Klik Nama load balancer.
- Di halaman Detail Load Balancer, klik Edit untuk load balancer yang dipilih.
- Di halaman Load Balancer Details, lihat Host and path rules.
- Klik "X" di sebelah kanan peta URL untuk menghapusnya. Peta URL akan hilang.
- 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 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:
- Buka halaman Load balancing.
- Klik Nama load balancer.
- Di halaman Detail Load Balancer, klik Edit untuk load balancer yang dipilih.
- Pilih Host and path rules.
- Di kolom Paths untuk peta URL yang ada, klik "x" pada nama pencocok jalur.
- 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:
- Jika Anda belum berada di halaman Host and path rules, buka halaman Load balancing.
- Klik Nama load balancer.
- Di halaman Detail Load Balancer, klik Edit untuk load balancer yang dipilih.
- Pilih Host and path rules.
- Di kolom Hosts untuk peta URL yang ada, klik "x" di nama host.
- 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
Menyiapkan pengelolaan traffic |
Load Balancer Aplikasi Klasik | Fitur load balancer: Pemilihan rute dan pengelolaan traffic |
Load Balancer Aplikasi eksternal regional | Fitur load
balancer: Pemilihan rute dan pengelolaan traffic
Menyiapkan pengelolaan traffic |
Load Balancer Aplikasi Internal | Fitur load
balancer: Pemilihan rute dan pengelolaan traffic
Menyiapkan pengelolaan traffic |
Cloud Service Mesh | Fitur Cloud Service Mesh: Pemilihan rute dan pengelolaan traffic |
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 |
Cloud Service Mesh | 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
- Lihat Ringkasan peta URL untuk mengetahui informasi tentang cara kerja peta URL.
- Lihat Ringkasan Load Balancer Aplikasi Eksternal untuk mengetahui informasi tentang cara kerja peta URL di Load Balancer Aplikasi eksternal.
- Lihat Ringkasan Load Balancer Aplikasi internal untuk mengetahui informasi tentang cara kerja peta URL di Load Balancer Aplikasi internal.