Skip to content

Domain ​

The Domain resource lets you manage AWS Amplify Domains and their configuration settings.

Minimal Example ​

Create a basic Amplify Domain with required properties and one optional property.

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

const amplifyDomain = await AWS.Amplify.Domain("myAmplifyDomain", {
  SubDomainSettings: [
    {
      DomainPrefix: "app",
      BranchName: "main"
    }
  ],
  AppId: "abcdefgh123456",
  DomainName: "myapp.com",
  EnableAutoSubDomain: true
});

Advanced Configuration ​

Configure an Amplify Domain with custom certificate settings.

ts
const secureAmplifyDomain = await AWS.Amplify.Domain("secureAmplifyDomain", {
  SubDomainSettings: [
    {
      DomainPrefix: "blog",
      BranchName: "blog"
    }
  ],
  AppId: "abcdefgh123456",
  DomainName: "myapp.com",
  EnableAutoSubDomain: true,
  CertificateSettings: {
    CertificateArn: "arn:aws:acm:us-east-1:123456789012:certificate/abcd1234-5678-90ef-ghij-klmnopqrstuv"
  }
});

Custom IAM Role for Auto Subdomains ​

Create an Amplify Domain with a custom IAM role for automatic subdomain management.

ts
const domainWithCustomRole = await AWS.Amplify.Domain("customRoleAmplifyDomain", {
  SubDomainSettings: [
    {
      DomainPrefix: "shop",
      BranchName: "main"
    }
  ],
  AppId: "abcdefgh123456",
  DomainName: "myapp.com",
  EnableAutoSubDomain: true,
  AutoSubDomainIAMRole: "arn:aws:iam::123456789012:role/MyCustomRole"
});

Multiple Subdomains Configuration ​

Manage multiple subdomains under a single Amplify Domain.

ts
const multiSubdomainAmplifyDomain = await AWS.Amplify.Domain("multiSubDomainAmplifyDomain", {
  SubDomainSettings: [
    {
      DomainPrefix: "app",
      BranchName: "main"
    },
    {
      DomainPrefix: "admin",
      BranchName: "admin"
    }
  ],
  AppId: "abcdefgh123456",
  DomainName: "myapp.com"
});