在 API Gateway 中設定區域自訂網域名稱 - Amazon API Gateway

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

在 API Gateway 中設定區域自訂網域名稱

使用區域自訂網域名稱來建立易於使用API的基礎 URL。使用區域自訂網域名稱,您可以將 HTTP和 REST API 階段映射至相同的自訂網域名稱,並使用相互TLS身分驗證。

考量事項

以下是區域自訂網域名稱的考量事項。

  • 您必須提供區域特定的ACM憑證。此憑證必須與 位於相同的 區域中API。如需建立或上傳自訂網域名稱憑證的詳細資訊,請參閱「在 中備妥憑證 AWS Certificate Manager」。

  • 當您使用ACM憑證建立區域自訂網域名稱 (或遷移名稱) 時,APIGateway 會在您的帳戶中建立服務連結角色。需要服務連結角色,才能將ACM憑證連接至區域端點。角色已命名AWSServiceRoleForAPIGateway並將連接受APIGatewayServiceRolePolicy管政策。如需使用服務連結角色的詳細資訊,請參閱使用服務連結角色

  • 建立區域自訂網域名稱之後,您必須建立「A」類型DNS記錄,以將自訂網域名稱指向區域網域名稱。這可讓繫結至自訂網域名稱的流量路由至 API的區域主機名稱。

建立區域自訂網域名稱

下列程序說明如何建立區域自訂網域名稱。完成此程序後,您必須建立DNS記錄,以將自訂網域名稱指向區域網域名稱。

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

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

  3. 選擇 Create (建立)。

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

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

  6. 端點組態 下,針對API端點類型 ,選擇區域

  7. 選擇 ACM 憑證。憑證必須與 位於相同的 區域中API。

  8. 選擇 Create (建立)。

AWS CLI

下列create-domain-name命令可用來建立自訂網域名稱:

aws apigatewayv2 create-domain-name \ --domain-name 'regional.example.com' \ --domain-name-configurations CertificateArn=arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678

如果成功,呼叫會傳回類似如下的結果:

{ "ApiMappingSelectionExpression": "$request.basepath", "DomainName": "regional.example.com", "DomainNameConfigurations": [ { "ApiGatewayDomainName": "d-numh1z56v6.execute-api.us-west-2.amazonaws.com", "CertificateArn": "arn:aws:acm:us-west-2:123456789012:certificate/123456789012-1234-1234-1234-12345678", "DomainNameStatus": "AVAILABLE", "EndpointType": "REGIONAL", "HostedZoneId": "Z2OJLYMUO9EFXC", "SecurityPolicy": "TLS_1_2" } ] }

DomainNameConfigurations 屬性值會傳回區域 API的主機名稱。您必須建立DNS記錄,以將自訂網域名稱指向此區域網域名稱。這可讓繫結至自訂網域名稱的流量路由至此區域 API的主機名稱。

為您的區域自訂網域名稱建立DNS記錄

下列程序說明如何建立DNS記錄,以指向新建立的區域網域名稱的自訂網域名稱。

AWS Management Console

若要使用 AWS Management Console,請遵循 Route 53 文件設定 Route 53 將流量路由至 API Gateway

AWS CLI

若要設定您的DNS記錄以將區域自訂網域名稱映射至指定託管區域 ID 的主機名稱,請先建立包含設定區域網域名稱DNS記錄組態JSON的檔案。

下列setup-dns-record.json顯示如何建立DNSA記錄,以將區域自訂網域名稱 (regional.example.com) 映射至佈建為自訂網域名稱建立一部分的區域主機名稱 (d-numh1z56v6.execute-api.us-west-2.amazonaws.com)。DNSNameHostedZoneIdAliasTarget 屬性可分別接受自訂網域名稱的 regionalDomainNameregionalHostedZoneId 值。您也可以在 Amazon API Gateway Endpoints 和 Quotas IDs中取得 Regional Route 53 Hosted Zone。

{ "Changes": [ { "Action": "CREATE", "ResourceRecordSet": { "Name": "regional.example.com", "Type": "A", "AliasTarget": { "DNSName": "d-numh1z56v6.execute-api.us-west-2.amazonaws.com", "HostedZoneId": "Z2OJLYMUO9EFXC", "EvaluateTargetHealth": false } } } ] }

以下change-resource-record-sets說明如何為您的區域自訂網域名稱建立DNS記錄:

aws route53 change-resource-record-sets \ --hosted-zone-id Z2OJLYMUO9EFXC \ --change-batch file://path/to/your/setup-dns-record.json

hosted-zone-id取代為帳戶中DNS記錄集的 Route 53 Hosted Zone ID。change-batch 參數值指向JSON檔案 (setup-dns-record.json) 在 資料夾中 (path/to/your).

為您的區域自訂網域名稱建立基礎路徑映射

建立DNS記錄後,您可以建立基本路徑映射,將 映射API到自訂網域名稱。例如,您可以使用 test的映射金鑰,將 API ID 的階段regional.example.comAPI映射abc123至自訂網域名稱myApi。這會將 映射APIhttps://abcd1234.execute-api.us-west-2.amazonaws.com/testhttps://regional.example.com/myApi

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

  2. 選擇自訂網域名稱。

  3. 選擇 設定API映射

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

  5. 為映射指定 、API階段 路徑

  6. 選擇 Save (儲存)。

AWS CLI

下列create-api-mapping命令可用來建立基礎路徑映射:

aws apigatewayv2 create-api-mapping \ --domain-name 'regional.example.com' \ --api-mapping-key 'myApi' \ --api-id abcd1234 \ --stage 'test'

因此,在階段中部署的 URL使用自訂網域名稱API的 基礎會變成 https://regional.example.com/myAPI

使用區域自訂網域名稱,您可以建立具有多個層級的API映射,例如 https://regional.example.com/orders/v1/items/123。您也可以將 HTTP和 REST API 階段映射至相同的自訂網域名稱。如需詳細資訊,請參閱將API階段映射至 的自訂網域名稱 REST APIs