AWS CloudFormation
User Guide (API 版本 2010-05-15)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

AWS::ApiGateway::DomainName

AWS::ApiGateway::DomainName 资源为 Amazon API Gateway (API 网关) 中的 API 指定一个自定义域名。

您可以使用自定义域名来提供更直观、更易于记住的 URL。有关使用自定义域名的更多信息,请参阅 API 网关 开发人员指南 中的使用自定义域名作为 API Gateway API 主机名

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "Type": "AWS::ApiGateway::DomainName", "Properties": { "CertificateArn": String, "DomainName": String, "EndpointConfiguration" : EndpointConfiguration, "RegionalCertificateArn" : String } }

YAML

Type: "AWS::ApiGateway::DomainName" Properties: CertificateArn: String DomainName: String EndpointConfiguration: EndpointConfiguration RegionalCertificateArn: String

属性

CertificateArn

对由此域名的边缘优化终端节点使用的 AWS 托管证书的引用。AWS Certificate Manager 是唯一受支持的源。有关设置证书的要求和其他信息,请参阅 API 网关 开发人员指南 中的在 AWS Certificate Manager 中准备好证书

必需:否

Type: String

更新要求无需中断

DomainName

Amazon API Gateway 中 API 的自定义域名。

Required: Yes

Type: String

更新要求替换

EndpointConfiguration

域名的终端节点类型的列表。

必需:否

类型API 网关 DomainName EndpointConfiguration

更新要求无需中断

RegionalCertificateArn

对由域名的区域终端节点使用的 AWS 托管证书的引用。AWS Certificate Manager 是唯一受支持的源。

必需:否

类型:字符串

更新要求无需中断

返回值

Ref

当该资源的逻辑 ID 提供给 Ref 内部函数时,Ref 将返回域名。

有关使用 Ref 功能的更多信息,请参阅参考

Fn::GetAtt

Fn::GetAtt 返回一个此类型指定属性的值。此部分列出了可用属性和示例返回值。

DistributionDomainName

映射到自定义域名的 Amazon CloudFront 分配域名。

示例:d111111abcdef8.cloudfront.net

有关使用 Fn::GetAtt 的更多信息,请参见 Fn::GetAtt

示例

创建自定义域

以下示例创建一个自定义域名 api.mydomain.com

JSON

"MyDomainName": { "Type": "AWS::ApiGateway::DomainName", "Properties": { "DomainName": "api.mydomain.com", "CertificateArn": "arn:aws:acm:us-east-1:111122223333:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3" } }

YAML

MyDomainName: Type: 'AWS::ApiGateway::DomainName' Properties: DomainName: api.mydomain.com CertificateArn: arn:aws:acm:us-east-1:111122223333:certificate/fb1b9770-a305-495d-aefb-27e5e101ff3

从参数创建自定义域

以下示例创建一个自定义域名 example.mydomain.com

JSON

{ "Parameters": { "basePath": { "Type": "String", "Default": "examplepath" }, "domainName": { "Type": "String", "Default": "example.mydomain.com" }, "restApiName": { "Type": "String", "Default": "exampleapi" } }, "Resources": { "myCertificate": { "Type": "AWS::CertificateManager::Certificate", "Properties": { "DomainName": { "Ref": "domainName" } } }, "myDomainName": { "Type": "AWS::ApiGateway::DomainName", "Properties": { "CertificateArn": { "Ref": "myCertificate" }, "DomainName": { "Ref": "domainName" } } }, "myMapping": { "Type": "AWS::ApiGateway::BasePathMapping", "Properties": { "BasePath": { "Ref": "basePath" }, "DomainName": { "Ref": "myDomainName" }, "RestApiId": { "Ref": "myRestApi" } } }, "myRestApi": { "Type": "AWS::ApiGateway::RestApi", "Properties": { "Name": { "Ref": "restApiName" } } } }, "Outputs": { "domainName": { "Value": { "Fn::GetAtt": [ "myDomainName", "DistributionDomainName" ] } } } }

YAML

Parameters: basePath: Type: String Default: examplepath domainName: Type: String Default: example.mydomain.com restApiName: Type: String Default: exampleapi Resources: myCertificate: Type: 'AWS::CertificateManager::Certificate' Properties: DomainName: !Ref domainName myDomainName: Type: 'AWS::ApiGateway::DomainName' Properties: CertificateArn: !Ref myCertificate DomainName: !Ref domainName myMapping: Type: 'AWS::ApiGateway::BasePathMapping' Properties: BasePath: !Ref basePath DomainName: !Ref myDomainName RestApiId: !Ref myRestApi myRestApi: Type: 'AWS::ApiGateway::RestApi' Properties: Name: !Ref restApiName Outputs: domainName: Value: !GetAtt - myDomainName - DistributionDomainName

以下示例创建一个指定区域证书 ARN 和终端节点类型的自定义域名。

JSON

{ "Parameters": { "cfnDomainName": { "Type": "String" }, "certificateArn": { "Type": "String" }, "type": { "Type": "String" } }, "Resources": { "myDomainName": { "Type": "AWS::ApiGateway::DomainName", "Properties": { "CertificateArn": { "Ref": "certificateArn" }, "DomainName": { "Ref": "cfnDomainName" }, "EndpointConfiguration": { "Types": [ { "Ref": "type" } ] }, "RegionalCertificateArn": { "Ref": "certificateArn" } } }, "DomainName": { "Value": { "Ref": "myDomainName" } } } }

YAML

Parameters: cfnDomainName: Type: String certificateArn: Type: String type: Type: String Resources: myDomainName: Type: 'AWS::ApiGateway::DomainName' Properties: CertificateArn: !Ref certificateArn DomainName: !Ref cfnDomainName EndpointConfiguration: Types: - !Ref type RegionalCertificateArn: !Ref certificateArn DomainName: Value: !Ref myDomainName

另请参阅