Có thể trong chúng ta khi triển khai micro-services, ít nhiều cũng biết qua khái niệm API Gateway. Kong Gateway(Open Source) https://github.com/Kong/kong cũng tương tự, bài này mình không nói đến vấn đề cài đặt kong, mà là mình hướng dẫn triển khai route một service thông qua Kong Gateway thông qua API thay vì dùng giao diện.
Tạo một service
Để tạo một service bạn dùng câu lệnh sau đây
curl -i -X POST \ --url https://10.121.14.196:9904/services/ \ --data 'name=auth' \ --data 'url=http://10.121.14.196:9909' \ --insecure
Trong đó https://10.121.14.196:9904 là thông tin của con Kong của mình
http://10.121.14.196:9909 là service của mình và name=auth tức là tên service
Sau khi thực hiện câu lệnh kết quả như sau
Lấy service ID
Để lấy service ID bạn có thể dùng kết quả của câu lệnh trên, trong chuỗi json có thuộc tính “id”. Hoặc truy cập vào kong API theo đường dẫn
http://king_url:port/services, copy nó để dùng cho bước sau
Thêm route
Dùng lệnh sau
curl -i -X POST --url https://10.121.14.196:9904/routes \\ --data 'paths[]=/auth' \\ --data 'service.id=62aec9a1-20fb-4995-XXXXXXXX-6236a' --insecure
Sau đó thử vào https://kong_url:port/routes để xem kết quả
Kiểm thử
Như vậy mình vừa thực hiện route một service đơn giản qua kong API như sau
khi user request https://10.121.14.196:9901/auth nó sẽ redirect sang service phía sau http://10.121.14.196:9909
Vậy cú pháp tổng quá là
https://kong_url:port/service1 => http://ip_service_1:port1
https://kong_url:port/service2 => http://ip_service_2:port2
Chúc các bạn thành công!!