Search code examples
aws-cloudformationaws-api-gatewayamazon-route53aws-cdk

How to target Route53 A record to ApiGateway v2


There's an alias for ApiGateway 1, but it's interface doesn't conform to V2:

enter image description here

Here's domainName:

  const domainName = new apigw2.DomainName(config.scope, config.id + 'DomainName', {
    domainName: config.domainName,
    certificate: config.certificate,
  });
  

Solution

  • It doesn't look like aws-route53-targets packages supports apigatewayv2 yet. In the meantime you can probably wrap the v2 object in the v1 interface like this:

    new route53.ARecord(config.scope, config.id + "AliasRecord", {
      recordName: config.domainName,
      target: route53.RecordTarget.fromAlias(
        new route53targets.ApiGatewayDomain({
          ...domainName,
          domainNameAliasDomainName: domainName.regionalDomainName,
          domainNameAliasHostedZoneId: domainName.regionalHostedZoneId
        })
      ),
      zone: config.hostedZone
    });