本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在閘道中設定地區自訂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
-
- 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
),做為建立自訂網域名稱的一部分。DNSName
的 HostedZoneId
與 AliasTarget
屬性可分別接受自訂網域名稱的 regionalDomainName
與 regionalHostedZoneId
值。您也可以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/test
至https://regional.example.com/myApi
。
- AWS Management Console
-
- 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。