Panduan ini menunjukkan cara mengonfigurasi peta URL. Google CloudPeta URL adalah sekumpulan aturan untuk merutekan permintaan HTTP(S) yang masuk ke
layanan backend atau bucket backendtertentu.
Peta URL minimal mencocokkan 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 default, seperti yang dijelaskan dalam tabel berikut.
Jenis default | Setelan | Arti |
---|---|---|
Default peta URL | gcloud compute url-maps create
|
Layanan backend default atau bucket backend yang ditentukan digunakan jika tidak ada pencocok jalur atau aturan host yang cocok dengan URL masuk. |
Default pencocok jalur | gcloud compute url-maps add-path-matcher
|
Layanan backend default atau bucket backend yang ditentukan digunakan
jika jalur
URL cocok dengan pencocok jalur, tetapi tidak ada --path-rules 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 Name 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, pada 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
mengirim permintaan yang tidak cocok. Tanda --path-rules
menentukan pemetaan
antara jalur permintaan dan layanan backend atau bucket. 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 terhadap
www.example.com
dan subdomain altostrat.com
:
--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 mengarahkan permintaan ke backend yang sesuai seperti yang diinginkan. Anda dapat melakukannya dengan menambahkan pengujian ke konfigurasi peta URL. Anda dapat bereksperimen dengan aturan peta URL yang berbeda dan menjalankan pengujian sebanyak yang diperlukan agar 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 menayangkan 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 berhasil 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 akan benar-benar menyimpan konfigurasi
baru jika pengujian lulus. Jika Anda ingin menguji konfigurasi perutean baru
tanpa membuat perubahan pada peta URL yang di-deploy, gunakan perintah validate
.
Perintah validate
memungkinkan Anda menguji konfigurasi rute lanjutan seperti
perutean berdasarkan header dan parameter kueri, pengalihan HTTP ke HTTPS, dan penulisan ulang URL.
Konsol
Anda tidak dapat menggunakan Google Cloud konsol 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 Anda memiliki load balancer yang ada yang memerlukan perubahan pada peta URL, Anda dapat menguji perubahan konfigurasi tersebut sebelum menerapkannya.
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 Anda ingin mengedit Load Balancer Aplikasi eksternal dan mengirim semua permintaan dengan jalur
/video
ke layanan backend baru bernamavideo-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 menambahkan pencocok jalur 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, Anda akan melihat pesan keberhasilan 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 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 dalam 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 Anda merutekan permintaan ke layanan backend atau bucket backend sesuai 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 Name load balancer.
- Di halaman Load Balancer Details, klik Edit untuk load balancer yang dipilih.
- Klik Routing rules. Untuk Load Balancer Aplikasi klasik, ini adalah Host and path rules.
- Klik Tampilkan uji konfigurasi.
- Klik Tambahkan pengujian konfigurasi. Tambahkan URL dan backend pengujian berikut:
- Test host and path 1
example.com
dan Backendwww-service.
- Test host and path 2
example.net
dan Backendwww-service.
- Uji host dan jalur 3
example.net/web
dan Backendwww-service.
- Test host and path 4
example.com/videos
dan Backendvideo-service.
- Uji host dan jalur 5
example.com/videos/browse
dan Backendvideo-service.
- Test host and path 6
example.net/static
dan Backendstatic-service.
- Uji host dan jalur 7
example.net/static/images
dan Backendstatic-service.
- Test host and path 1
- Cari tanda centang biru di sebelah kiri Aturan perutean, lalu klik tombol Perbarui. 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 (baik example.com maupun example.net) dapat cocok. Jika Anda 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 Name load balancer.
- Di halaman Load Balancer Details, 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 dapat menghapus peta URL hanya setelah menghapus semua proxy target yang mereferensikannya. Untuk mengetahui informasi selengkapnya, lihat Menghapus proxy target.
Konsol
Untuk menghapus peta URL, lakukan langkah-langkah berikut:
- Buka halaman Load balancing.
- Klik Name load balancer.
- Di halaman Load Balancer Details, 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, semua 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 Name load balancer.
- Di halaman Load Balancer Details, 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 Name load balancer.
- Di halaman Load Balancer Details, klik Edit untuk load balancer yang dipilih.
- Pilih Host and path rules.
- Di kolom Host untuk peta URL yang ada, klik "x" pada 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 karya pengelolaan.
Produk | Fitur peta URL dan panduan pengelolaan traffic |
---|---|
Load Balancer Aplikasi eksternal global | Fitur
load balancer: Perutean dan pengelolaan traffic
Menyiapkan pengelolaan traffic |
Load Balancer Aplikasi Klasik | Fitur load balancer: Perutean dan pengelolaan traffic |
Load Balancer Aplikasi eksternal regional | Fitur
load balancer: Perutean dan pengelolaan traffic
Menyiapkan pengelolaan traffic |
Load Balancer Aplikasi Internal | Fitur
load balancer: Perutean dan pengelolaan traffic
Menyiapkan pengelolaan traffic |
Mesh Layanan Cloud | Fitur Cloud Service Mesh: Perutean 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 mengetahui deskripsi properti dan metode yang tersedia bagi Anda saat bekerja dengan peta URL melalui REST API, lihat bagian 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 berikut ini:
- Global:
--global
- Regional:
--region=[REGION]
Untuk pengelolaan traffic lanjutan, gunakan file YAML dan impor dengan perintah
gcloud compute url-maps import
.
Langkah berikutnya
- 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.