【发布时间】:2022-01-05 18:40:15
【问题描述】:
使用 aws cdk,我正在创建一个由 lambda 函数支持的 apigatewayv2.HttpApi。
我想为此创建的 API 设置一个自定义域 (apiCustomDomain) 名称,但是我似乎无法找到从创建的 API 中检索 dnsName 和 hostedZoneId 以创建 @ 987654325@.
import * as apigateway2 from '@aws-cdk/aws-apigatewayv2';
const apiCustomDomain = new apigateway2.DomainName(this, 'api-custom-domain', {
domainName: subDomainName,
certificate: certificate
});
const api = new apigateway2.HttpApi(this, 'my-api', {
apiName: 'my-api',
defaultDomainMapping: {
domainName: apiCustomDomain
},
createDefaultStage: true,
disableExecuteApiEndpoint: false,
defaultAuthorizer: new HttpIamAuthorizer()
});
new route53.ARecord(this, 'a-api-record', {
zone: hostedZone,
recordName: subDomainName,
target: route53.RecordTarget.fromAlias({
bind(record: IRecordSet, zone?: IHostedZone): AliasRecordTargetConfig {
return {
dnsName: api.?????, // what to put here
hostedZoneId: api.????? // what to put here
}
}
})
});
现在在 apigateway 的 v1 中,这很简单,我们可以从 api 的 domainName 属性中获取这些值,类似于:
dnsName = api.domainName!.domainNameAliasDomainName
hostedZoneId = api.domainName!.domainNameAliasHostedZoneId
但我在 apigatewayv2 库中找不到相同的内容。
【问题讨论】:
标签: amazon-web-services aws-api-gateway amazon-route53 aws-cdk