API Gateway 中 WebSocket API 的自訂網域名稱 - Amazon API Gateway

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

API Gateway 中 WebSocket API 的自訂網域名稱

自訂網域名稱是更簡單且更直觀的 URL,可提供給 API 使用者。

部署 API 之後,您 (和您的客戶) 可以使用下列格式的預設基本 URL 來呼叫 API:

https://api-id.execute-api.region.amazonaws.com/stage

其中 api-id 是由 API Gateway 生成的,區域是 AWS 區域,並且階段由您在部署 API 時指定。

URL 的主機名稱部分api-id.execute-api.region.amazonaws.com是指 API 端點。默認的 API 端點名稱是隨機生成的,難以調用,並且不是用戶友好的。

使用自訂網域名稱,您就能設定 API 的主機名稱,並選擇基本路徑 (例如,myservice) 將替代 URL 對應至您的 API。例如,更方便使用者使用的 API 基本 URL 可以成為:

https://api.example.com/myservice

考量事項

下列考量可能會影響您使用自訂網域名稱。

  • 如果將自定義域名映射到 WebSocket API,則無法將其映射到 REST API 或 HTTP API。

  • 僅支援地區自訂網域名稱。

  • 對於最低 TLS 版本,僅支援 TLS 1.2。

  • 您必須建立或更新 DNS 提供者的資源記錄,才能對應至您的 API 端點。如果沒有這種對應,送往自訂網域名稱的 API 請求無法到達 API Gateway。

  • 您可以使用萬用字元憑證來支援幾乎無限數量的網域名稱,而不會超過預設配額。如需詳細資訊,請參閱 萬用字元自訂網域名稱

必要條件

以下是自訂網域名稱的先決條件。

註冊網域名稱

您必須具有已註冊的網際網路網域名稱,才能為您的 API 設定自訂網域名稱。您可以使用 Amazon Route 53 或使用您選擇的第三方網域註冊商註冊您的網際網路網域名稱。您的自訂網域名稱可以是已註冊網際網路網域的子網域名稱或根網域 (也稱為「zone apex」)。

您的網域名稱必須遵循 RFC 1035 規範,且每個標籤最多可有 63 個八位元組,總共 255 個八位元組。

自訂網域名稱的憑證

在為 API 設定自訂網域名稱之前,您必須在 ACM 中準備好 SSL/TLS 憑證。如果您要建立自訂網域名稱的 AWS 地區無法使用 ACM,則必須將憑證匯入該區域的 API Gateway。

若要匯入 SSL/TLS 憑證,您必須提供 PEM 格式化 SSL/TLS 憑證內文、私有金鑰,以及自訂網域名稱的憑證鏈。

ACM 中所存放的每個憑證都是透過其 ARN 進行識別。使用 ACM 所發出的憑證,就不需要擔心公開任何敏感的憑證詳細資訊,例如私有金鑰。若要將受 AWS 管理憑證用於網域名稱,您只需參考其 ARN 即可。

如果您的應用程式使用憑證釘選 (有時稱為 SSL 釘選) 來釘選 ACM 憑證,則應用程式在續訂憑證後 AWS 可能無法連線到您的網域。如需詳細資訊,請參閱 AWS Certificate Manager 使用者指南中的憑證關聯問題

萬用字元自訂網域名稱

使用萬用字元自訂網域名稱,您可以支援幾乎無限數目的網域名稱,而不會超過預設配額。例如,您可以為每個客戶提供其自己的網域名稱,customername.api.example.com

若要建立萬用字元自訂網域名稱,可以指定萬用字元 (*) 作為自訂網域的第一個子網域,藉以表示根網域所有可能的子網域。

例如,萬用字元自訂網域名稱 *.example.com 會產生如 a.example.comb.example.comc.example.com 等子網域,而這些子網域全都路由至相同的網域。

萬用字元自訂網域名稱支援來自 API Gateway 標準自訂網域名稱的相異組態。例如,在單一 AWS 帳戶中,您可以設定*.example.com和行a.example.com為不同。

您可以使用 $context.domainName$context.domainPrefix 內容變數來判斷用戶端用來呼叫 API 的網域名稱。若要進一步了解環境變數,請參閱 API 閘道映射範本和存取日誌變數參考

若要建立萬用字元自訂網域名稱,您必須提供由 ACM 發行並已經使用 DNS 或電子郵件驗證方法驗證的憑證。

注意

如果不同的 AWS 帳戶建立了與萬用字元自訂網域名稱衝突的自訂網域名稱,您就無法建立萬用字元自訂網域名稱。例如,如果帳戶 A 已建立 a.example.com,則帳戶 B 無法建立萬用字元自訂網域名稱 *.example.com

如果帳戶 A 和帳戶 B 共用擁有者,您可以聯絡 AWS 支援中心,以請求例外狀況。

自訂網域名稱的後續步驟

若要為 HTTP API 設定自訂網域名稱,請使用 API Gateway 開發人員指南中 REST API 一節中的說明文件。

首先,為您的自訂網域名稱指定憑證。如需詳細資訊,請參閱 在 中備妥憑證 AWS Certificate Manager。接下來,您要建立區域自訂網域名稱。如需更多詳細資訊,請參閱 在 API Gateway 中設定區域自訂網域名稱