跳到主要内容
返回文章列表

Google Cloud Load Balancer เปิด Regex Match ใน URL Maps แบบ GA

Application Load Balancer ใช้ RE2 regexMatch กับ path, header และ query parameter เพื่อกำหนด route ได้ละเอียดขึ้น

Google Cloud Load Balancer เปิด Regex Match ใน URL Maps แบบ GA

Google Cloud ประกาศใน release notes วันที่ 12 ตุลาคม 2026 ว่า regular expression matchers สำหรับ host และ route rules ใน URL maps ของ Application Load Balancer เปิดใช้ทั่วไปแล้ว จุดที่เปลี่ยนคือผู้ดูแลสามารถใช้รูปแบบ RE2 กับ path, HTTP header และ query parameter เพื่อกำหนดเส้นทางทราฟฟิกได้ละเอียดขึ้น การรองรับแบบ GA เหมาะกับระบบที่มีหลาย backend ภายใต้โดเมนเดียว แต่ regex ที่เขียนกว้างหรืออ่านยากอาจทำให้คำขอไปผิดบริการ จึงต้องทดสอบกฎเชิงระบบก่อนปล่อย

จุดที่ใช้ regex ได้

Google ระบุ regexMatch ใน routeRules สำหรับ URL path, ใน headerMatches สำหรับ HTTP header และใน queryParameterMatches สำหรับ query parameter ตัวอย่างการใช้งานคือแยกเวอร์ชัน API ตาม path ที่มีรูปแบบแน่นอน ส่งทราฟฟิกทดลองเมื่อมี header ที่ระบบตั้งเอง หรือแยกคำขอที่มี parameter แบบเฉพาะ อย่างไรก็ตาม การเลือก backend จาก header หรือ query ที่ผู้ใช้แก้ได้เองต้องระวังสิทธิ์ เพราะผู้โจมตีอาจใส่ค่าที่เข้ากฎเพื่อไปยัง backend ที่ไม่ได้ตั้งใจเปิดสาธารณะ

ฟีเจอร์นี้รองรับ Global external, Regional internal, Cross-region internal และ Regional external Application Load Balancers ตามประกาศ ผู้ดูแลต้องตรวจชนิด load balancer ของระบบตนก่อนแก้ URL map ไม่ควรคิดว่า load balancer ทุกตระกูลใช้ได้เหมือนกัน การมี regex ในหลายจุดยังทำให้กฎซ้อนกันได้ จึงควรระบุลำดับความสำคัญและผลลัพธ์ของ default route ให้ชัด

ใช้ RE2 อย่างมีวินัย

RE2 ไม่เหมือน regex engine ทุกตัว โดยตั้งใจจำกัดรูปแบบบางอย่างเพื่อให้การจับคู่มีพฤติกรรมคาดการณ์ได้ ทีมที่ย้าย pattern จาก nginx, JavaScript หรือ PCRE ควรทดสอบใหม่ ไม่คัดลอกมาวางแล้วสรุปว่าเหมือนเดิม การ match ควร anchor ต้นหรือท้ายตามความต้องการ เช่นต้องการ /api/v2/ จริงก็อย่าเขียนเพียงส่วนที่อาจตรงกับ path อื่น ตรวจการถอดรหัส URL, ตัวพิมพ์เล็กใหญ่ และ trailing slash ที่แอปใช้จริงประกอบ

ใน production ควรมีตาราง test cases ของ URL, header, query และ backend ที่คาดหวัง ครอบคลุมคำขอถูกต้อง คำขอที่ควรถูกปฏิเสธ และค่าใกล้เคียงที่ไม่ควร match ใช้สภาพแวดล้อม staging ทดสอบทั้ง route ใหม่กับ route เก่าที่อาจถูกแย่ง match แล้วดู load balancer logs หลังเปลี่ยน ถ้า backend ได้ทราฟฟิกผิดให้ rollback URL map ที่บันทึกไว้ทันที อย่ารอให้ metric ระดับแอปเริ่มเสียหายก่อน

ความปลอดภัยและการดูแลระยะยาว

Regex route เป็นเครื่องมือ routing ไม่ใช่ระบบ authorization หาก backend ภายในควรรับเฉพาะบัญชีหรือเครือข่ายที่กำหนด ต้องบังคับสิทธิ์อีกชั้น การตั้งกฎบน path ที่ดูเหมือนซ่อน เช่น /internal/ ไม่ได้ทำให้ endpoint ปลอดภัย ผู้ดูแลควรให้เจ้าของบริการ review pattern เพราะกฎที่สั้นมากอาจอ่านง่ายแต่กว้างเกิน ในทางกลับกัน pattern ที่ซับซ้อนเกินก็ยากต่อการแก้เหตุฉุกเฉิน

การเปลี่ยนจาก prefix match ไป regex ควรมีเหตุผลที่ชัด เช่นลดจำนวน route ซ้ำหรือรองรับ path หลายรูปแบบที่ prefix ธรรมดาทำไม่ได้ หาก prefix เพียงพอ ก็อาจดีกว่าในแง่ความเข้าใจง่าย ข่าวนี้เปิดทางให้ใช้ URL map ยืดหยุ่นขึ้น แต่คุณภาพของผลลัพธ์ขึ้นกับกฎและชุดทดสอบของทีมมากกว่าสถานะ GA ของฟีเจอร์

อ่าน release notes ต้นทางวันที่ 12 ตุลาคม 2026: Google Cloud release notes และ URL map concepts