AWS API Gateway 自定義域:您提供的域已與現有 CloudFront 分配相關聯
我只是嘗試在 API Gateway 中設置自定義域。我有 ACM 證書“*.mysite.com.au”,目前用於通過 CloudFront 在“beta.mysite.com.au”提供靜態 S3 網站。我希望使用此證書為“api.mysite.com.au”創建一個自定義域。
但是,我在 AWS API Gateway 控制台中收到以下錯誤:
您提供的域名已與現有 CloudFront 分配相關聯。從現有 CloudFront 分配中刪除域名或使用其他域名。如果您擁有此域名並且未在現有 CloudFront 分配中使用它,請聯繫支持人員。
我目前沒有在 CloudFront 分配中使用“api.mysite.com.au”。所以我迷路了。有沒有人遇到過這個問題?如果是這樣,我該如何解決它?
提前致謝,
緊張的
有三種,也許是四種可能性:
- 您實際上已在 CloudFront 中將此域配置為備用域名 - 在此 AWS 賬戶或其他賬戶中,但您忘記了它,或者
- 其他人意外或故意在 CloudFront 分配上配置了此域,或者
- 您已經在 API Gateway 中進行了配置,但在不同的 AWS 區域中,或者
- 這是 API Gateway 和 CloudFront 之間集成的一個錯誤。
要進行故障排除:
轉到 CloudFront 並創建一個新的分配。
嘗試將此主機名設置為備用域名。
如果可行,那麼這似乎是 API Gateway/CloudFront 集成中的一個錯誤。從新分發的備用域名中刪除主機名,等待幾分鐘讓分發恢復
Deployed
狀態,然後在 API Gateway 中重試。(稍後,刪除分發 - 它不需要)。但是,我將假設上述方法行不通。您應該從 CloudFront 收到一個錯誤,
CNAMEAlreadyExists
. (這不是真正的 CNAME,但不幸的是,這就是他們所說的。)因此,請按照官方流程證明您的域名的所有權和控制權,並將其與新的 CloudFront 分配相關聯。
此過程應從任何 CloudFront 分配聲明的主機名中釋放該主機名。
完成後,從新發行版的備用域名設置中刪除此主機名,保存更改,等待它返回
Deployed
狀態,然後返回 API 網關並重試。(稍後,刪除未使用的發行版。)這裡的問題是——就像 S3 儲存桶命名空間一樣——CloudFront 前端
Host:
標頭命名空間是全域的。一個主機名不能與多個 CloudFront 分配相關聯,包括 API Gateway 使用的“隱形”分配。該錯誤意味著您嘗試使用的那個,由於某種原因,已經是。這應該與您可能從 ACM 獲得的萬用字元無關。