Amazon-Web-Services
AWS HTTP Gateway:沒有路徑變數的私有集成路由
我第一次設置 HTTP 網關時遇到了私有集成的問題。我希望我的所有集成都是私有的,但它不適用於路由。
我與
$default
路線進行了私人集成,效果很好。現在,我希望將另一個私有集成安裝在下面,例如,/microservice/
並代理其所有端點。然而,這似乎是不可能的,因為私有集成要求您提供後端 ARN 而不是 URI,因此無法使用
{proxy+}
. 這導致只有我的微服務的根可以通過網關訪問——所有其他路徑都只是去$default
路由。如何建立這樣的私有集成?理想情況下,我想要這樣的東西:
- /microservice1/{proxy+} - /microservice2/{proxy+} - $default
目前據我了解,我只有兩個選擇:
- 向世界公開我的服務並使用貪婪路徑變數的公共集成
{proxy+}
- 不理想- 保留私有集成,但將每個微服務端點定義為網關上自己的路由 - 維護起來非常煩人
有沒有我想念的好方法?
要回答我自己的問題 - 這可以通過在請求到達後端之前轉換請求的請求參數映射來實現:
- 使用貪婪路徑變數創建路由:
/microservice/${proxy}
- 在您的私有集成中創建路徑映射:
overwrite:path = /$request.path.proxy