在 API Gateway 中設定邊緣最佳化自訂網域名稱 - Amazon API Gateway

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

在 API Gateway 中設定邊緣最佳化自訂網域名稱

當您為邊緣最佳化 建立自訂網域名稱時API,APIGateway 會設定 CloudFront 分佈和DNS記錄,以將API網域名稱對應至 CloudFront 分佈網域名稱。然後, 的請求API會透過映射 CloudFront 分佈路由至 API Gateway。此映射適用於透過映射 CloudFront 分佈路由至API閘道的自訂網域名稱繫結的API請求。

考量事項

以下是邊緣最佳化自訂網域名稱的考量事項。

  • 若要設定邊緣最佳化自訂網域名稱或更新其憑證,您必須擁有更新 CloudFront 分佈的許可。

    更新 CloudFront 分佈需要下列許可:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowCloudFrontUpdateDistribution", "Effect": "Allow", "Action": [ "cloudfront:updateDistribution" ], "Resource": [ "*" ] } ] }
  • 您必須為美國東部 (維吉尼亞北部) – us-east-1區域中的邊緣最佳化自訂網域名稱請求或匯入憑證。

  • API Gateway 建立的 CloudFront 分佈由與 API Gateway 關聯的區域特定帳戶擁有。在 中追蹤操作以建立和更新此類 CloudFront 分佈時 CloudTrail,您必須使用此API閘道帳戶 ID。如需詳細資訊,請參閱在 中記錄自訂網域名稱建立 CloudTrail

  • API Gateway 透過在 CloudFront 分佈上利用伺服器名稱指示 (SNI) 來支援邊緣最佳化的自訂網域名稱。如需在 CloudFront 分佈上使用自訂網域名稱的詳細資訊,包括所需的憑證格式和憑證金鑰長度的大小上限,請參閱使用替代網域名稱和 HTTPS Amazon CloudFront 開發人員指南中的

  • 邊緣最佳化自訂網域名稱大約需要 40 分鐘才能準備就緒。

  • 建立邊緣最佳化自訂網域名稱之後,您必須建立DNS記錄,以將自訂網域名稱對應至 CloudFront 分佈名稱。

建立邊緣最佳化自訂網域名稱

下列程序說明如何為 建立邊緣最佳化的自訂網域名稱API。

AWS Management Console
  1. https://console.aws.amazon.com/apigateway 登入API閘道主控台。

  2. 從主要導覽窗格中,選擇 Custom Domain Names (自訂網域名稱)

  3. 選擇 Create (建立)。

  4. Domain name (網域名稱) 中,輸入網域名稱。

  5. 針對最低TLS版本 ,選取版本。

  6. 端點組態 下,針對API端點類型 ,選擇 Edge 最佳化

  7. 針對ACM憑證 ,選擇ACM憑證。

  8. 選擇 Create domain name (建立網域名稱)。

REST API
  1. 呼叫網域名稱:建立 ,指定儲存在 中的憑證ARN的自訂網域名稱和 AWS Certificate Manager。

    成功API呼叫會傳回201 Created回應,其中包含憑證ARN及其承載中相關聯的 CloudFront 分佈名稱。

  2. 請注意輸出中顯示的 CloudFront 分佈網域名稱。您需要在下一個步驟中設定自訂網域的 A 記錄別名目標DNS。

如需此RESTAPI呼叫的程式碼範例,請參閱 domainname:create

邊緣最佳化自訂網域名稱需要約 40 分鐘才能準備好,但主控台會立即以 的形式顯示關聯的 CloudFront 分佈網域名稱distribution-id.cloudfront.net,以及憑證 ARN。同時,您可以繼續下一個步驟,並設定DNS記錄別名,將自訂網域名稱映射至相關聯的 CloudFront分佈網域名稱。

為您的邊緣最佳化自訂網域名稱建立DNS記錄

開始建立邊緣最佳化自訂網域名稱後,請設定DNS記錄別名。

我們建議您使用 Route 53 為自訂網域名稱建立 A 記錄別名, CloudFront並將分佈網域名稱指定為別名目標。這表示 Route 53 可以路由自訂網域名稱,即使是 Zone Apex 也是一樣。如需詳細資訊,請參閱《Amazon Route 53 開發人員指南》中的在別名與非別名資源記錄集之間選擇

如需 Amazon Route 53 的指示,請參閱 Amazon Route 53 開發人員指南 中的APIAPI使用您的網域名稱將流量路由至 Amazon Gateway。

在 中記錄自訂網域名稱建立 CloudTrail

當 CloudTrail 已啟用記錄您帳戶進行的 API Gateway 呼叫時,APIGateway 會在為 建立或更新自訂網域名稱時記錄相關聯的 CloudFront分佈更新API。這些日誌可在 中使用us-east-1。由於這些 CloudFront分佈是 API Gateway 所擁有,因此每個報告的 CloudFront 分佈都會由下列其中一個區域特定的 API Gateway 帳戶 來識別IDs,而不是API擁有者的帳戶 ID。

區域

帳戶 ID

us-east-1 392220576650
us-east-2 718770453195
us-west-1 968246515281
us-west-2 109351309407
ca-central-1 796887884028
eu-west-1 631144002099
eu-west-2 544388816663
eu-west-3 061510835048
eu-central-1 474240146802
eu-central-2 166639821150
eu-north-1 394634713161
eu-south-1 753362059629
eu-south-2 359345898052
ap-northeast-1 969236854626
ap-northeast-2 020402002396
ap-northeast-3 360671645888
ap-southeast-1 195145609632
ap-southeast-2 798376113853
ap-southeast-3 652364314486
ap-southeast-4 849137399833
ap-south-1 507069717855
ap-south-2 644042651268
ap-east-1 174803364771
sa-east-1 287228555773
me-south-1 855739686837
me-central-1 614065512851

使用自訂網域名稱作為主機名稱API,設定 的基本路徑映射

您可以使用基本路徑映射,將單一自訂網域名稱用作多個 的主機名稱APIs。這可讓 可透過自訂網域名稱和相關聯基礎路徑的組合API存取。

例如,如果您在 API Gateway 中建立了API名為 的 PetStore和另一個API名為 的 ,Dogs然後設定 的自訂網域名稱api.example.com,則可以將 PetStore APIURL的 設定為 https://api.example.com

這會將 PetStoreAPI與空字串的基本路徑建立關聯。如果您將 PetStore APIURL的 設定為 https://api.example.com/PetStore,這會將 PetStoreAPI與 的基本路徑建立關聯PetStore。您可以MyDogList為 指派 Dogs 的基本路徑API。URL 的 https://api.example.com/MyDogListDogs URL的根API。

若要在多個層級上設定API映射,您只能使用區域自訂網域名稱。不支援邊緣最佳化的自訂網域名稱。如需詳細資訊,請參閱將API階段映射至 的自訂網域名稱 REST APIs

下列程序會設定API映射,將路徑從自訂網域名稱映射至API階段。

AWS Management Console
  1. https://console.aws.amazon.com/apigateway 登入API閘道主控台。

  2. 從API閘道主控台主導覽窗格中選擇自訂網域名稱

  3. 選擇自訂網域名稱。

  4. 選擇 設定API映射

  5. 選擇 Add new mapping (新增對應)

  6. 為映射指定 API階段 路徑 (選用)。

  7. 選擇 Save (儲存)。

REST API

在特定自訂網域名稱上呼叫 basepathmapping:create,並在請求承載中指定 basePathrestApiId 和部署 stage 屬性。

成功API呼叫會傳回201 Created回應。

如需RESTAPI通話的程式碼範例,請參閱 basepathmapping:create

輪換匯入至 ACM 的憑證

ACM 會自動處理其發行的憑證續約。您不需要輪換自訂網域名稱的任何 ACM發行憑證。 會代表您 CloudFront 處理它。

不過,如果您將憑證匯入 ACM並用於自訂網域名稱,則必須在憑證過期之前輪換憑證。這包含匯入網域名稱的新第三方憑證,並將現有憑證輪換為新的憑證。新匯入的憑證過期時,您需要重複進行此程序。或者,您可以請求為網域名稱ACM發出新憑證,並將現有憑證輪換為新發行ACM的憑證。之後,您可以離開 ACM和 CloudFront 自動為您處理憑證輪換。若要建立新憑證或匯入新ACM憑證,請遵循 中的步驟若要建立或匯入 SSL/TLS 憑證至 ACM

下列程序說明如何輪換網域名稱的憑證。

注意

輪換匯入 的憑證大約需要 40 分鐘ACM。

AWS Management Console
  1. 在 中請求或匯入憑證ACM。

  2. https://console.aws.amazon.com/apigateway 登入API閘道主控台。

  3. 從API閘道主控台主導覽窗格中選擇自訂網域名稱

  4. 選擇自訂網域名稱。

  5. 選擇 Edit (編輯)。

  6. 從憑證下拉式清單中選擇所需的ACM憑證

  7. 選擇 Save (儲存),開始輪換自訂網域名稱的憑證。

  8. 輪換完成後,您可以選擇ACM憑證旁的雙向箭頭圖示,以復原至原始憑證。

REST API

呼叫 domainname:update 動作,為指定的網域名稱指定新ACM憑證ARN的 。

API 使用自訂網域名稱呼叫您的

API 使用自訂網域名稱呼叫 與API使用預設網域名稱呼叫 相同,前提是URL使用正確的 。

下列範例比較和對照指定區域 APIs(udxjefqf3duz) 中兩個 URLs ( 和 ) URLs和指定自訂網域名稱 (us-east-1) 中的一組預設和對應的自訂api.example.com

API ID 階段 預設 URL 基本路徑 自訂 URL
udxjef prod https://udxjef.execute-api.us-east-1.amazonaws.com/prod /petstore https://api.example.com/petstore
udxjef tst https://udxjef.execute-api.us-east-1.amazonaws.com/tst /petdepot https://api.example.com/petdepot
qf3duz dev https://qf3duz.execute-api.us-east-1.amazonaws.com/dev /bookstore https://api.example.com/書店
qf3duz tst https://qf3duz.execute-api.us-east-1.amazonaws.com/tst /bookstand https://api.example.com/bookstand

API Gateway API 使用伺服器名稱指示 (SNI) 支援 的自訂網域名稱。您可以使用支援 的瀏覽器或用戶端程式庫API,以自訂網域名稱叫用 SNI。

API Gateway 會在 CloudFront 分佈SNI上強制執行 。如需 CloudFront 如何使用自訂網域名稱的資訊,請參閱 Amazon CloudFront Custom SSL