簡體   English   中英

API 網關的自定義域返回 403

[英]Custom domain for API Gateway returning 403

我正在使用 API Gateway 和 Lambda 創建一個 api。 使用 API Gateway Stage 編輯器中指定的 url 一切正常; 但是,當我嘗試移動到自定義域時,我遇到了一些問題。

我嘗試的第一件事是使用 Route 53 中的 CNAME 記錄直接從我的域到我從 API 網關獲得的域。 那是返回一些錯誤,我認為這是不正確的解決方案是正確的嗎?

接下來我嘗試了 API Gateway 中的自定義域名功能。 我的理解是,這將匯總一個 CloudFront 分配,然后我可以從 Route 53 映射到該分配。當我創建自定義域並添加域映射時,它為我提供了一個我認為是 CloudFront 分配的 URL。 該鏈接返回 403 響應,並且未在 CloudFront 中進行分配。 調試此問題的好方法是什么?

如果您還沒有看過,這里是開發者指南。 http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-custom-domains.html

您需要做的就是設置一個 CNAME,讓您的 DNS 提供商指向 API Gateway 為您提供的 CF 分發。 您將無法直接對 CF 分發進行 API 調用。 API Gateway 從您在 API Gateway 中設置的基本路徑映射映射 API/階段,因此只有指向域名的 API 調用才能正常工作。

您需要在請求中使用主機標頭。 主機應該是您的自定義域。

curl https://<cf-id>.cloudfront.net/myapi -H "Host: api.myapi.com"

就我而言,我必須添加基本路徑映射。

就我而言,舊版緩存設置標頭是問題所在。

如果您在 cloud-front 行為中選擇了 Legacy cache settings 在 cloud-front distribution 下的 behavior-> Legacy cache settings-> Header 下拉

將值選擇為 None 后解決了我的問題

相關問題:

恰好在回應以下:

{"message":"Forbidden"}

在瀏覽器中

F12 > Network > ( select error line) > Response (on right side)

也許意味着
網址路徑中出現問題

就我而言,問題是我沒有在 api-gateway 的自定義域名配置中創建 API 映射。

Api網關主菜單->自定義域名->在列表中選擇你新創建的自定義域名->點擊右邊的api mappings->創建你部署的api和自定義域名的映射。

暫無
暫無

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

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