簡體   English   中英

連接 AWS Api 網關和私有 ALB

[英]Connecting AWS Api Gateway and private ALB

我的任務是配置 API 網關以將流量路由到 Lambda 或負載均衡器(內部,在 VPC 下)。 我認為可以使用簡單的 HTTP 集成或 AWS 服務為 ALB 創建簡單的集成。 但經過一段時間的谷歌搜索后,我發現只有一種解決方案 - 配置 NLB,然后使用VPC_Link 集成 在這種情況下,一切看起來都正常。

但是我仍然發現了一些類似這樣的文章,其中人們描述了如何在沒有 VPC_links 的情況下集成 Api 網關和 LB。 在我的情況下,將我的內部 ALB 與我的 apigateway 集成時,我總是看到invalid endpoint address錯誤。 我想這僅適用於公共資源(面向互聯網的 LB)?

問題的第二部分。 當我配置 VPC_link 時,我仍然需要為證書檢查和其他東西提供一些集成端點。 但看起來這個端點仍然必須是可公開訪問的? 問題是我在 ALB 下的服務有多個端點,我需要在這個Endpoint URL中提供這個端點的路徑,並且這個端點應該是公共的,正如我現在看到的那樣。 因此,出於測試原因,我提供了我需要執行的公共資源和端點路徑的 url。 這可行,但對我來說看起來太丑了。 可能有任何漂亮的解決方案。

標記為正確的答案已過時。 現在可以使用 VPC Link 通過 HTTP 私有集成將 API Gateway 與面向內部的 ALB 集成。 有關分步配置,請參閱https://stackoverflow.com/a/67413951/2948212

我也一直在為此苦苦掙扎。 對於 REST API,您可以創建指向 NLB 的 VPC 鏈接,但不能創建 ALB(這是您一直看到的invalid endpoint address問題)。 可以將 HTTP API 直接連接到 API 網關(大約一個月前發布 - API 網關提供與 AWS ELB 和 AWS CloudMap 的私有集成,作為 HTTP API GA 版本的一部分)。 這令人沮喪,我希望他們為 REST API 的 VPC 鏈接添加 ALB 支持,但現在這是不可能的。

至於你問題的第二部分,我不確定你所說的“端點集成”是什么意思,所以恐怕我無法幫助你。

第一部分被接受了,所以我想更多地關注問題的第二部分。 可以通過 VPC Link 為 HTTP 提供的請求修改來傳播 Path。

API 網關路由可以定義為/foo/api/{param}

然后繼續將此路由與預配置的 VPC 鏈接集成

導航到VPC 集成->編輯參數映射->所有傳入請求,然后提供以下配置;

要修改的參數path | 修改類型Overwrite | /api/$request.path.param

請注意,這是一級通配符,因此/foo/api/bar將通過代理,但/foo/api/bar/xyz不會。

潛在的解決方案是將 Route 指定為/foo/api/{param+}以支持多級,但我沒有嘗試過,所以請隨意測試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM