Amazon-Web-Services

AWS HTTP Gateway:沒有路徑變數的私有集成路由

  • March 17, 2022

我第一次設置 HTTP 網關時遇到了私有集成的問題。我希望我的所有集成都是私有的,但它不適用於路由。

我與$default路線進行了私人集成,效果很好。現在,我希望將另一個私有集成安裝在下面,例如,/microservice/並代理其所有端點。

然而,這似乎是不可能的,因為私有集成要求您提供後端 ARN 而不是 URI,因此無法使用{proxy+}. 這導致只有我的微服務的根可以通過網關訪問——所有其他路徑都只是去$default路由。

如何建立這樣的私有集成?理想情況下,我想要這樣的東西:

- /microservice1/{proxy+}
- /microservice2/{proxy+}
- $default

目前據我了解,我只有兩個選擇:

  • 向世界公開我的服務並使用貪婪路徑變數的公共集成{proxy+}- 不理想
  • 保留私有集成,但將每個微服務端點定義為網關上自己的路由 - 維護起來非常煩人

有沒有我想念的好方法?

要回答我自己的問題 - 這可以通過在請求到達後端之前轉換請求的請求參數映射來實現:

  1. 使用貪婪路徑變數創建路由:/microservice/${proxy}
  2. 在您的私有集成中創建路徑映射:overwrite:path = /$request.path.proxy

引用自:https://serverfault.com/questions/1095830