@@ -11,7 +11,10 @@ import {
1111 ApplicationLoadBalancedFargateService ,
1212 NetworkLoadBalancedFargateService ,
1313} from "aws-cdk-lib/aws-ecs-patterns" ;
14- import { NetworkLoadBalancer } from "aws-cdk-lib/aws-elasticloadbalancingv2" ;
14+ import {
15+ NetworkLoadBalancer ,
16+ NetworkTargetGroup ,
17+ } from "aws-cdk-lib/aws-elasticloadbalancingv2" ;
1518
1619import { AlarmWithAnnotation , FargateServiceMonitoring } from "../../../lib" ;
1720import { addMonitoringDashboardsToStack } from "../../utils/SnapshotUtil" ;
@@ -483,3 +486,46 @@ test("snapshot test: with imported service", () => {
483486 addMonitoringDashboardsToStack ( stack , monitoring ) ;
484487 expect ( Template . fromStack ( stack ) ) . toMatchSnapshot ( ) ;
485488} ) ;
489+
490+ test ( "snapshot test: with imported NLB" , ( ) => {
491+ const stack = new Stack ( ) ;
492+
493+ const scope = new TestMonitoringScope ( stack , "Scope" ) ;
494+
495+ const cluster = new Cluster ( stack , "Cluster" ) ;
496+ const image = new EcrImage ( new Repository ( stack , "Repository" ) , "DummyImage" ) ;
497+ const taskDefinition = new FargateTaskDefinition ( stack , "TaskDef" , { } ) ;
498+
499+ taskDefinition
500+ . addContainer ( "Container" , { image } )
501+ . addPortMappings ( { containerPort : 8080 } ) ;
502+
503+ const fargateService = new FargateService ( stack , "Service" , {
504+ cluster,
505+ taskDefinition,
506+ } ) ;
507+ const networkLoadBalancer =
508+ NetworkLoadBalancer . fromNetworkLoadBalancerAttributes ( stack , "NLB" , {
509+ loadBalancerArn :
510+ "arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/net/LoadBalancer/123" ,
511+ } ) ;
512+ const networkTargetGroup = NetworkTargetGroup . fromTargetGroupAttributes (
513+ stack ,
514+ "NTG" ,
515+ {
516+ targetGroupArn :
517+ "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/TargetGroup/123" ,
518+ loadBalancerArns : networkLoadBalancer . loadBalancerArn ,
519+ }
520+ ) ;
521+
522+ const monitoring = new FargateServiceMonitoring ( scope , {
523+ fargateService,
524+ loadBalancer : networkLoadBalancer ,
525+ targetGroup : networkTargetGroup ,
526+ alarmFriendlyName : "DummyFargateService" ,
527+ } ) ;
528+
529+ addMonitoringDashboardsToStack ( stack , monitoring ) ;
530+ expect ( Template . fromStack ( stack ) ) . toMatchSnapshot ( ) ;
531+ } ) ;
0 commit comments