Skip to content

DomainName

The DomainName resource lets you manage AWS ApiGatewayV2 DomainNames for your APIs. This resource allows you to create custom domain names and configure settings such as mutual TLS authentication.

Minimal Example

Create a basic domain name with mutual TLS authentication.

ts
import AWS from "alchemy/aws/control";

const domainName = await AWS.ApiGatewayV2.DomainName("myDomainName", {
  DomainName: "api.mywebsite.com",
  MutualTlsAuthentication: {
    TruststoreUri: "s3://mybucket/truststore.pem",
    TruststoreVersion: "1",
    ServerCertificateId: "arn:aws:acm:us-west-2:123456789012:certificate/abcd1234-efgh-5678-ijkl-1234567890ab"
  },
  Tags: {
    Environment: "production",
    Project: "myApiProject"
  }
});

Advanced Configuration

Configure a domain name with multiple domain name configurations and custom tags.

ts
const advancedDomainName = await AWS.ApiGatewayV2.DomainName("advancedDomainName", {
  DomainName: "api.mywebsite.com",
  DomainNameConfigurations: [
    {
      ApiGatewayDomainName: "api.mywebsite.com",
      CertificateArn: "arn:aws:acm:us-west-2:123456789012:certificate/abcd1234-efgh-5678-ijkl-1234567890ab",
      EndpointType: "REGIONAL",
      SecurityPolicy: "TLS_1_2"
    }
  ],
  Tags: {
    Environment: "staging",
    Owner: "team@example.com"
  }
});

Custom Domain Name with No TLS

Create a basic domain name without mutual TLS authentication.

ts
const simpleDomainName = await AWS.ApiGatewayV2.DomainName("simpleDomainName", {
  DomainName: "public.mywebsite.com",
  Tags: {
    Environment: "development",
    Project: "publicApi"
  }
});

Domain Name with Multiple Configurations

Setting up a domain name with both regional and edge-optimized configurations.

ts
const multiConfigDomainName = await AWS.ApiGatewayV2.DomainName("multiConfigDomainName", {
  DomainName: "multi-config.mywebsite.com",
  DomainNameConfigurations: [
    {
      ApiGatewayDomainName: "multi-config.mywebsite.com",
      CertificateArn: "arn:aws:acm:us-east-1:123456789012:certificate/abcd1234-efgh-5678-ijkl-1234567890ab",
      EndpointType: "EDGE",
      SecurityPolicy: "TLS_1_2"
    },
    {
      ApiGatewayDomainName: "multi-config.mywebsite.com",
      CertificateArn: "arn:aws:acm:us-west-2:123456789012:certificate/wxyz1234-ijkl-5678-qrst-1234567890ab",
      EndpointType: "REGIONAL",
      SecurityPolicy: "TLS_1_2"
    }
  ],
  Tags: {
    Environment: "production",
    Project: "multiApiProject"
  }
});