@@ -17,6 +17,7 @@ import { CacheBehavior } from './private/cache-behavior';
1717import { formatDistributionArn , grant } from './private/utils' ;
1818import * as acm from '../../aws-certificatemanager' ;
1919import * as cloudwatch from '../../aws-cloudwatch' ;
20+ import * as elasticloadbalancingv2 from '../../aws-elasticloadbalancingv2' ;
2021import * as iam from '../../aws-iam' ;
2122import * as lambda from '../../aws-lambda' ;
2223import * as s3 from '../../aws-s3' ;
@@ -716,7 +717,9 @@ export class Distribution extends Resource implements IDistribution {
716717 const generatedId = Names . uniqueId ( scope ) . slice ( - ORIGIN_ID_MAX_LENGTH ) ;
717718 const distributionId = this . distributionId ;
718719 const originBindConfig = origin . bind ( scope , { originId : generatedId , distributionId : Lazy . string ( { produce : ( ) => this . distributionId } ) } ) ;
719- const originId = originBindConfig . originProperty ?. id ?? generatedId ;
720+ const originId = ( originBindConfig . originProperty ?. id as elasticloadbalancingv2 . ILoadBalancerRef ) ?. loadBalancerRef ?. loadBalancerArn
721+ ?? originBindConfig . originProperty ?. id
722+ ?? generatedId ;
720723 const duplicateId = this . boundOrigins . find ( boundOrigin => boundOrigin . originProperty ?. id === originBindConfig . originProperty ?. id ) ;
721724 if ( duplicateId ) {
722725 throw new ValidationError ( `Origin with id ${ duplicateId . originProperty ?. id } already exists. OriginIds must be unique within a distribution` , this ) ;
@@ -741,7 +744,8 @@ export class Distribution extends Resource implements IDistribution {
741744 ) ;
742745 return originGroupId ;
743746 }
744- return originBindConfig . originProperty ?. id ?? originId ;
747+ return ( originBindConfig . originProperty ?. id as elasticloadbalancingv2 . ILoadBalancerRef ) ?. loadBalancerRef ?. loadBalancerArn
748+ ?? originBindConfig . originProperty ?. id ?? originId ;
745749 }
746750 }
747751
0 commit comments