UNPKG

ness

Version:

✪ No-effort static sites deployed to your AWS account.

99 lines (94 loc) 3.94 kB
AWSTemplateFormatVersion: '2010-09-09' Parameters: DomainStack: Description: 'Stack name of domain stack.' Type: String WebStack: Description: 'Stack name of web stack.' Type: String SubDomainNameWithDot: Description: 'Primary name that is used to create the DNS entry with trailing dot. Leave blank for naked (or apex and bare) domain.' Type: String Default: '' RedirectSubDomainNameWithDot: Description: 'Optional sub domain name redirecting to DomainName (e.g. www.).' Type: String Default: '' Conditions: HasRedirectDomainName: !Not [!Equals [!Ref RedirectSubDomainNameWithDot, '']] Resources: Certificate: Type: 'AWS::CertificateManager::Certificate' Properties: DomainName: {'Fn::ImportValue': !Sub '${DomainStack}-HostedZoneName'} DomainValidationOptions: - DomainName: {'Fn::ImportValue': !Sub '${DomainStack}-HostedZoneName'} HostedZoneId: {'Fn::ImportValue': !Sub '${DomainStack}-HostedZoneId'} SubjectAlternativeNames: - !Sub - '*.${HostedZoneName}' - HostedZoneName: {'Fn::ImportValue': !Sub '${DomainStack}-HostedZoneName'} ValidationMethod: DNS Route53Record: Type: 'AWS::Route53::RecordSetGroup' Properties: HostedZoneId: {'Fn::ImportValue': !Sub '${DomainStack}-HostedZoneId'} RecordSets: - Name: !Sub - '${SubDomainNameWithDot}${HostedZoneName}' - SubDomainNameWithDot: !Ref SubDomainNameWithDot HostedZoneName: {'Fn::ImportValue': !Sub '${DomainStack}-HostedZoneName'} Type: A AliasTarget: HostedZoneId: Z2FDTNDATAQYW2 # Magic CloudFront number DNSName: {'Fn::ImportValue': !Sub '${WebStack}-DistributionDomainName'} Route53RecordIPv6: Type: 'AWS::Route53::RecordSetGroup' Properties: HostedZoneId: {'Fn::ImportValue': !Sub '${DomainStack}-HostedZoneId'} RecordSets: - Name: !Sub - '${SubDomainNameWithDot}${HostedZoneName}' - SubDomainNameWithDot: !Ref SubDomainNameWithDot HostedZoneName: {'Fn::ImportValue': !Sub '${DomainStack}-HostedZoneName'} Type: AAAA AliasTarget: HostedZoneId: Z2FDTNDATAQYW2 # Magic CloudFront number DNSName: {'Fn::ImportValue': !Sub '${WebStack}-DistributionDomainName'} Route53RecordRedirectV2: Condition: HasRedirectDomainName Type: 'AWS::Route53::RecordSetGroup' Properties: HostedZoneId: {'Fn::ImportValue': !Sub '${DomainStack}-HostedZoneId'} RecordSets: - Name: !Sub - '${RedirectSubDomainNameWithDot}${HostedZoneName}' - RedirectSubDomainNameWithDot: !Ref RedirectSubDomainNameWithDot HostedZoneName: {'Fn::ImportValue': !Sub '${DomainStack}-HostedZoneName'} Type: A AliasTarget: HostedZoneId: Z2FDTNDATAQYW2 # Magic CloudFront number DNSName: {'Fn::ImportValue': !Sub '${WebStack}-DistributionDomainName'} Route53RecordRedirectIPv6: Condition: HasRedirectDomainName Type: 'AWS::Route53::RecordSetGroup' Properties: HostedZoneId: {'Fn::ImportValue': !Sub '${DomainStack}-HostedZoneId'} RecordSets: - Name: !Sub - '${RedirectSubDomainNameWithDot}${HostedZoneName}' - RedirectSubDomainNameWithDot: !Ref RedirectSubDomainNameWithDot HostedZoneName: {'Fn::ImportValue': !Sub '${DomainStack}-HostedZoneName'} Type: AAAA AliasTarget: HostedZoneId: Z2FDTNDATAQYW2 # Magic CloudFront number DNSName: {'Fn::ImportValue': !Sub '${WebStack}-DistributionDomainName'} Outputs: StackName: Description: 'Stack name.' Value: !Sub '${AWS::StackName}' CertificateArn: Description: 'ACM Certificate ARN' Value: !Ref Certificate Export: Name: !Sub '${AWS::StackName}-CertificateArn'