diff --git a/packages/@aws-cdk/aws-ecs-patterns/lib/base/application-load-balanced-service-base.ts b/packages/@aws-cdk/aws-ecs-patterns/lib/base/application-load-balanced-service-base.ts index 6f5057edbb61e..a4893fb6471f1 100644 --- a/packages/@aws-cdk/aws-ecs-patterns/lib/base/application-load-balanced-service-base.ts +++ b/packages/@aws-cdk/aws-ecs-patterns/lib/base/application-load-balanced-service-base.ts @@ -244,19 +244,23 @@ export abstract class ApplicationLoadBalancedServiceBase extends cdk.Construct { this.listener.addCertificateArns('Arns', [this.certificate.certificateArn]); } + let domainName = this.loadBalancer.loadBalancerDnsName; if (typeof props.domainName !== 'undefined') { if (typeof props.domainZone === 'undefined') { throw new Error('A Route53 hosted domain zone name is required to configure the specified domain name'); } - new ARecord(this, "DNS", { + const record = new ARecord(this, "DNS", { zone: props.domainZone, recordName: props.domainName, target: AddressRecordTarget.fromAlias(new LoadBalancerTarget(this.loadBalancer)), }); + + domainName = record.domainName; } new cdk.CfnOutput(this, 'LoadBalancerDNS', { value: this.loadBalancer.loadBalancerDnsName }); + new cdk.CfnOutput(this, 'ServiceURL', { value: protocol.toLowerCase() + '://' + domainName }); } protected getDefaultCluster(scope: cdk.Construct, vpc?: IVpc): Cluster { diff --git a/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.asset-image.expected.json b/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.asset-image.expected.json index 60a3825326e8e..ac7622dfc9778 100644 --- a/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.asset-image.expected.json +++ b/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.asset-image.expected.json @@ -977,6 +977,22 @@ ] } }, + "FargateServiceServiceURL47701F45": { + "Value": { + "Fn::Join": [ + "", + [ + "http://", + { + "Fn::GetAtt": [ + "FargateServiceLBB353E155", + "DNSName" + ] + } + ] + ] + } + }, "LoadBalancerDNS": { "Value": { "Fn::GetAtt": [ diff --git a/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.executionrole.expected.json b/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.executionrole.expected.json index ada05e0be3baf..d6074a401aed1 100644 --- a/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.executionrole.expected.json +++ b/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.executionrole.expected.json @@ -660,6 +660,22 @@ "DNSName" ] } + }, + "L3ServiceURL0F065F2D": { + "Value": { + "Fn::Join": [ + "", + [ + "http://", + { + "Fn::GetAtt": [ + "L3LB212FC0E0", + "DNSName" + ] + } + ] + ] + } } } } diff --git a/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.https-fargate-service.lit.expected.json b/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.https-fargate-service.lit.expected.json index d6c89f83b3391..a5351e28f5f6e 100644 --- a/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.https-fargate-service.lit.expected.json +++ b/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.https-fargate-service.lit.expected.json @@ -700,6 +700,19 @@ "DNSName" ] } + }, + "HttpsServiceServiceURLA7303487": { + "Value": { + "Fn::Join": [ + "", + [ + "https://", + { + "Ref": "HttpsServiceDNS5E40A908" + } + ] + ] + } } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.l3-autocreate.expected.json b/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.l3-autocreate.expected.json index c2bb30b458300..86b3a4f78e136 100644 --- a/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.l3-autocreate.expected.json +++ b/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.l3-autocreate.expected.json @@ -960,6 +960,22 @@ ] } }, + "L3ServiceURL0F065F2D": { + "Value": { + "Fn::Join": [ + "", + [ + "http://", + { + "Fn::GetAtt": [ + "L3LB212FC0E0", + "DNSName" + ] + } + ] + ] + } + }, "L3bLoadBalancerDNSED096132": { "Value": { "Fn::GetAtt": [ @@ -967,6 +983,22 @@ "DNSName" ] } + }, + "L3bServiceURL0EDED888": { + "Value": { + "Fn::Join": [ + "", + [ + "http://", + { + "Fn::GetAtt": [ + "L3bLBB8FADA4E", + "DNSName" + ] + } + ] + ] + } } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.l3-vpconly.expected.json b/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.l3-vpconly.expected.json index bdc777776416f..bb23f680698a3 100644 --- a/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.l3-vpconly.expected.json +++ b/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.l3-vpconly.expected.json @@ -1608,6 +1608,22 @@ ] } }, + "L3ServiceURL0F065F2D": { + "Value": { + "Fn::Join": [ + "", + [ + "http://", + { + "Fn::GetAtt": [ + "L3LB212FC0E0", + "DNSName" + ] + } + ] + ] + } + }, "L3bLoadBalancerDNSED096132": { "Value": { "Fn::GetAtt": [ @@ -1616,6 +1632,22 @@ ] } }, + "L3bServiceURL0EDED888": { + "Value": { + "Fn::Join": [ + "", + [ + "http://", + { + "Fn::GetAtt": [ + "L3bLBB8FADA4E", + "DNSName" + ] + } + ] + ] + } + }, "L3cLoadBalancerDNS9409202E": { "Value": { "Fn::GetAtt": [ @@ -1623,6 +1655,22 @@ "DNSName" ] } + }, + "L3cServiceURL2E1758C7": { + "Value": { + "Fn::Join": [ + "", + [ + "http://", + { + "Fn::GetAtt": [ + "L3cLB041B1E8C", + "DNSName" + ] + } + ] + ] + } } } } \ No newline at end of file diff --git a/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.l3.expected.json b/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.l3.expected.json index 5317b86be3ffe..b29616d3fa4d1 100644 --- a/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.l3.expected.json +++ b/packages/@aws-cdk/aws-ecs-patterns/test/fargate/integ.l3.expected.json @@ -657,6 +657,22 @@ "DNSName" ] } + }, + "L3ServiceURL0F065F2D": { + "Value": { + "Fn::Join": [ + "", + [ + "http://", + { + "Fn::GetAtt": [ + "L3LB212FC0E0", + "DNSName" + ] + } + ] + ] + } } } }