簡體   English   中英

AWS API Gateway HTTP API 自定義域,帶有到 ALB 的 VPC 鏈接

[英]AWS API Gateway HTTP API custom domain with VPC Link to ALB

我正在嘗試使用將 HTTP 請求路由到 ALB 的 REGIONAL 自定義域來設置 API。 該域已在另一個 DNS 提供商處注冊,因此我不會使用 Route53。

概念: /path/to/service --> ALB (Listener: /path/* ) --> ECS

我首先嘗試使用原始調用 URL https://cuxxxxmvk0.execute-api.ap-east-1.amazonaws.com/stage/path/to/service ,它返回 ALB 上下文路徑錯誤(這是預期的,因為 ALB 獲取/stage/path/to/service沒有打任何前綴)。

然后我創建了一個帶有映射到舞台的 API 映射(沒有基本路徑)的自定義域,並嘗試使用提供的“API 網關域名”(由自定義域生成的域名)調用它。 Full URL: https://d-yjexxxds3.execute-api.ap-east-1.amazonaws.com/path/to/service但是,它返回{"message":"Not Found"}

API網關域名


所以我的問題是:

自定義域生成的“API網關域名”是如何工作的? 我可以用它直接調用 API 嗎?

是否必須對它進行 CNAME(即CAME api.mydomain.com d-yjexxxds3.execute-api.ap-east-1.amazonaws.com )?

我可以讓我的最終端點成為api.mydomain.com/path/to/service而沒有路徑中的階段嗎?

從問題中我可以看到您正在嘗試使用CNAME解析為 URL/some/path 但這不是它的工作原理。 DNS 服務只會將您的 CNAME 映射到其他一些 URL。 路徑 (/some/path) 部分將與您的域或 API-GW URL 保持相同。

這里要注意的另一件事是,既然你不使用Route53,你不需要Custom Domain Name API-GW的。 創建一個類似於example.com CNAME d-yjexxxds3.execute-api.ap-east-1.amazonaws.com CNAME

我建議您在 ALB 前綴中添加/stage ,以便 API-GW 和您自己的域可以訪問它。

自定義域生成的“API網關域名”是如何工作的? 我可以用它直接調用 API 嗎?

是的你可以

是否必須對它進行 CNAME(即 CAME api.mydomain.com d-yjexxxds3.execute-api.ap-east-1.amazonaws.com)?

它可以是 CNAME(當 DNS 由外部提供商管理時),也可以是 ALIAS(如果您在 Route53 中管理 DNS,則直接返回 A 記錄)。 請注意,您需要在證書管理器中獲得經過驗證的證書。

我可以讓我的最終端點成為 api.mydomain.com/path/to/service 而沒有路徑中的階段嗎?
https://d-xxxxxxds3.execute-api...

據我所知,您應該通過定義的自定義域名 (api.mydomain.com) 來調用 API。 如果調用d-..域會起作用,我不確定

https://api.mydomain.com/path/to/api

我不確定什么在您的設置中不起作用。 實際上,在自定義域映射中,您可以直接映射到某個階段,因此您可以將 API 調用為https://customdomain/path/to/api我們https://customdomain/path/to/api這種方式工作。

長話短說,您的設置/想法通常很好。 您可以在 API 網關或階段啟用登錄以找出不工作的內容(如果 API GW 或后端 ELB 重新調整了 NOT FOUND)

暫無
暫無

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

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