AWS CloudFormation
User Guide (API Version 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 } }

YAML

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

属性

CertificateArn

存储在 AWS Certificate Manager 中的 AWS 托管证书的 Amazon 资源名称 (ARN)。有关设置证书的要求和其他信息,请参阅 API 网关 开发人员指南 中的在 AWS Certificate Manager 中准备好证书

Required: Yes

Type: String

更新要求无需中断

DomainName

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

Required: Yes

Type: String

更新要求替换

返回值

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

本页内容: