如何為 CloudFront 網頁分佈後的多個 API Gateway API 設定自訂網域端點?

2 分的閱讀內容
0

我想在 Amazon CloudFront 網頁分佈後使用 Amazon API Gateway 自定義網域端點。然後,我想使用基本路徑映射將 API 請求轉發到多個 API。該如何進行?

解決方案

為您的 REST API、HTTP API 或 WebSocket API 建立自訂網域名稱

如果您尚未這麼做,請建立自訂網域名稱,然後將其與兩個不同的 API 建立關聯。

**注意:**WebSocket API 的自訂網域名稱無法對應至 REST API 或 HTTP API。

如果是 REST API,請遵循設定 REST API 的自訂網域名稱中的指示進行。

如果是 HTTP API,請依照設定 HTTP API 的自訂網域名稱中的指示進行。

如果是 WebSocket API,請依照設定 WebSocket API 的自訂網域名稱中的指示進行。

**注意:**在 API Gateway 中建立自訂網域名稱後,您必須建立或更新 DNS 供應商的資源記錄,以對應至您的 API 端點。如需詳細資訊,請參閱註冊網域名稱

本文中的範例使用 REST API 地區自訂網域名稱設定。

API 端點 URL 範例

https://restapiId1.execute-api.us-west-2.amazonaws.com/example1/home
https://restapiId2.execute-api.us-west-2.amazonaws.com/example2/home

自訂網域 URL 範例 (沒有基本路徑對應)

https://apigw.customdomain.com/example1/home
https://apigw.customdomain.com/example2/home

建立 CloudFront 網頁分佈

1.    開啟 CloudFront console (CloudFront 主控台),然後選擇 Create Distribution (建立分佈)。

2.    在 Select a delivery method for your content (選取內容的傳送方式) 頁面上,選擇 Web 下方的 Get Started (開始使用)。

3.    在 Create Distribution (建立分佈) 頁面上,針對 Origin Domain (原始網域),貼上 API 的自訂網域 URL,如下列範例所示:

原始網域名稱範例

https://apigw.customdomain.com

4.請將 Origin path (原始路徑) 保留空白。**備註:**呼叫 CloudFront 網頁分佈時,輸入不正確的來源路徑基礎路徑可能會導致錯誤。例如,未經授權的請求錯誤會傳回 Missing Authentication Token (缺少身分驗證字符) 錯誤和 403 Forbidden (403 禁止) 回應代碼。

5.    對於 Minimum Origin SSL Protocol (最低源 SSL 協定),最佳做法是選擇 TLSv1.2 。請不要選擇 SSLv3。API Gateway 不支援 SSLv3 通訊協定。

6.    在 Protocal (協定) 中,選擇 HTTPS Only (僅限 HPPTS)。**注意:**API Gateway 不支援未加密的 HTTP 端點。如需詳細資訊,請參閱 Amazon API Gateway 常見問答集

7.    (可選) 若要轉發自訂標頭給原始伺服器,請選擇 Add header (新增標頭),然後輸入您的 **Header name (標頭名稱)**和 Value (值)。**備註:**若 CloudFront 無法新增自訂標頭清單,請參閱 CloudFront 無法添加到原始伺服器請求的自訂標頭

8.    選擇 Create Distribution (建立分佈)。

CloudFront 建立分佈之後,分佈的 Status (狀態) 欄的值會從 InProgress 變更為 Deployed

如需詳細資訊,請參閱建立分佈

測試您的 CloudFront 網頁分佈

1.    開啟 CloudFront console (主控台),將網頁分佈的 Domain Name (網域名稱) 複製到剪貼簿,如下列範例所示:

非自訂網域名稱範例

a222222bcdefg5.cloudfront.net

2.    按照測試分佈的指示進行操作。

成功的測試會傳回 200 OK 回應。如果您收到 500 server error 碼,則網頁分佈可能未部署。如果您沒有收到任何回應,表示 CloudFront DNS 記錄尚未傳播。

建立 CloudFront 分佈之後,您的設定會依照下列方式進行設定:

a222222bcdefg5.cloudfront.net/example1/home --> apigw.customdomain.com/example1/home --> API-1

a222222bcdefg5.cloudfront.net/example2/home --> apigw.customdomain.com/example2/home --> API-2

您現在可以使用 API Gateway 自訂網域名稱,從單一 CloudFront ffbu 向兩個 API 提出要求。

若要為 CloudFront 網頁分佈的傳入授權標頭設定轉寄功能,請參閱如何使用我自己的 CloudFront 分布設定 API Gateway?


相關資訊

選擇要設定 API Gateway API 的端點類型

使用對應的 Websocket APIs

使用 REST API 的 API 映射

使用 HTTP API 的 API 映射

AWS 官方
AWS 官方已更新 2 年前