在閘道中設定地區自訂API網域名稱 - Amazon API 网关

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

在閘道中設定地區自訂API網域名稱

使用地區自訂網域名稱建立易於使用的API基礎URL。使用區域自訂網域名稱,您可以對應HTTP並RESTAPI分階段到相同的自訂網域名稱,並使用相互TLS驗證。

考量事項

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

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

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

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

建立地區自訂網域名稱

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

AWS Management Console
  1. https://console.aws.amazon.com/ap igateway 登入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閘道

AWS CLI

若要設定您的DNS記錄,將地區自訂網域名稱對應至指定託管區域 ID 的主機名稱,請先建立一個JSON檔案,其中包含設定區域網域名稱DNS記錄的組態。

以下說setup-dns-record.json明如何建立DNSA記錄,將地區自訂網域名稱 (regional.example.com) 對應至其區域主機名稱 (d-numh1z56v6.execute-api.us-west-2.amazonaws.com),做為建立自訂網域名稱的一部分。DNSNameHostedZoneIdAliasTarget 屬性可分別接受自訂網域名稱的 regionalDomainNameregionalHostedZoneId 值。您也可以IDs在 Amazon API 閘道端點和配額中取得區域 Route 53 託管區域。

{ "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 託管區域 ID 取代。change-batch參數值指向一個JSON檔案 (setup-dns-record.json)在文件夾中(path/to/your).

為您的區域自訂網域名稱建立基本路徑對應

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

AWS Management Console
  1. https://console.aws.amazon.com/ap igateway 登入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和RESTAPI分級到相同的自定義域名。如需詳細資訊,請參閱將API階段映射到自定義域名 REST APIs