Anda dapat mengonfigurasi kebijakan rewrite untuk memodifikasi URI permintaan yang mencapai fungsi Anda melalui nama domain kustom. Topik ini menjelaskan pola rewrite yang tersedia dan cara mengonfigurasi kebijakan rewrite untuk nama domain kustom Anda di Konsol Function Compute.
Latar Belakang
Di Function Compute, kebijakan rewrite hanya dapat memodifikasi komponen path dan query dari URI permintaan. Fitur ini tidak mendukung modifikasi terhadap scheme, host, port, atau fragment.
Pola Rewrite
Function Compute mendukung rewrite tingkat rute untuk nama domain kustom dan menyediakan tiga pola rewrite: exact rewrite, wildcard rewrite, dan regex rewrite.
Exact Rewrite
Pada exact rewrite, jika path permintaan sesuai secara tepat dengan aturan pencocokan, path tersebut akan diganti dengan aturan penggantian. Misalnya, jika aturan pencocokan adalah /old dan aturan penggantian adalah /new, permintaan untuk /old akan ditulis ulang menjadi /new.
|
Matching rule |
Replacement rule |
Original URI |
Rewritten URI |
|
|
|
|
|
|
|
Mismatch |
||
|
|
|
|
|
Wildcard Rewrite
Wildcard rewrite menyediakan cara sederhana untuk mencocokkan permintaan dan cocok untuk sebagian besar kasus penggunaan.
Dalam aturan penggantian, Anda dapat mereferensikan string yang ditangkap oleh setiap tanda bintang berdasarkan posisinya. Misalnya, jika aturan pencocokan adalah /api/* dan aturan penggantian adalah /$1, permintaan untuk /api/getFunctionName akan ditulis ulang menjadi /getFunctionName.
Pada wildcard rewrite, * dan ^ memiliki makna khusus. Semua karakter lainnya dicocokkan sebagai string literal.
-
*mencocokkan string apa pun. -
^mengaitkan pencocokan ke awal string.
|
Matching rule |
Replacement rule |
Original URI |
Rewritten URI |
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
Mismatch |
||
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Mismatch |
Regex Rewrite
Pada regex rewrite, aturan pencocokan dan aturan penggantian mengikuti sintaks ekspresi reguler standar. Untuk informasi lebih lanjut mengenai sintaks tersebut, lihat sintaks ekspresi reguler.
Regex rewrite merupakan fitur tingkat lanjut dengan sintaks kompleks dan ditujukan untuk kasus penggunaan khusus. Untuk sebagian besar skenario, kami menyarankan Anda menggunakan wildcard rewrite.
|
Matching rule |
Replacement rule |
Original URI |
Rewritten URI |
|
|
|
|
|
|
|
Mismatch |
||
|
|
|
|
|
|
|
|
Urutan dan Prioritas Pencocokan
Prioritas ketiga pola rewrite, dari tertinggi ke terendah, adalah: exact rewrite → wildcard rewrite → regex rewrite.
Anda dapat mengonfigurasi beberapa kebijakan rewrite untuk satu aturan routing. Jika suatu permintaan cocok dengan beberapa kebijakan dari jenis yang sama, Function Compute menerapkan kebijakan pertama sesuai urutan yang ditentukan dan mengabaikan sisanya.
Sebagai contoh, pertimbangkan kebijakan wildcard rewrite berikut:
var rule1 = &WildcardRules{
Match: "/api/v1/*",
Replacement: "/api/v2/$1",
}
var rule2 = &WildcardRules{
Match: "/api/*/*",
Replacement: "/api/v3/$2",
}
-
Jika kebijakan rewrite diurutkan sebagai [rule1, rule2], permintaan untuk
/api/v1/getFunctionNameakan ditulis ulang menjadi/api/v2/getFunctionName. -
Jika kebijakan rewrite diurutkan sebagai [rule2, rule1], permintaan untuk
/api/v1/getFunctionNameakan ditulis ulang menjadi/api/v3/getFunctionName.
Prasyarat
Prosedur
Anda dapat menambahkan kebijakan rewrite ke nama domain kustom baru atau yang sudah ada.
Nama Domain Baru
-
Masuk ke Konsol Function Compute. Di panel navigasi kiri, pilih .
-
Di bilah navigasi atas, pilih Wilayah. Pada halaman Custom Domains, klik Add Custom Domain Name.
-
Pada halaman Add Custom Domain Name, masukkan nama domain. Di bagian Routing Settings, klik Configure di bawah Configuration.
-
Di panel Configure Rewrite Policy, klik + Add Rewrite Policy, konfigurasi kebijakan tersebut, lalu klik OK.
Kebijakan rewrite mendukung tiga opsi Policy Type: exact rewrite (misalnya, aturan pencocokan
/olddan aturan penggantian/new), wildcard rewrite (misalnya, aturan pencocokan/api/*dan aturan penggantian$1), dan regex rewrite (misalnya, aturan pencocokan^/api/.+?/(.*)dan aturan penggantian/api/v2/$1). Untuk setiap kebijakan, Anda harus mengonfigurasi Matching rule dan Replacement rule.
Nama Domain yang Sudah Ada
-
Masuk ke Konsol Function Compute. Di panel navigasi kiri, pilih .
-
Di bilah navigasi atas, pilih Wilayah. Di daftar nama domain, temukan nama domain target dan klik Modify pada kolom Actions.
-
Pada halaman Modify Custom Domain Name, buka bagian Routing Settings dan klik Configure di bawah Configuration.
-
Di panel Configure Rewrite Policy, klik + Add Rewrite Policy, konfigurasi kebijakan tersebut, lalu klik OK.