@aws-solutions-constructs/aws-alb-lambda 2.44.0 → 2.46.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +105 -14
- package/lib/index.js +6 -5
- package/package.json +6 -6
- package/test/alb-lambda.test.js +90 -1
- package/test/{integ.privateApiExistingResources.expected.json → integ.alblam-privateApiExistingResources.expected.json} +121 -120
- package/test/integ.alblam-privateApiExistingResources.js +80 -0
- package/test/{integ.privateApiNewResources.expected.json → integ.alblam-privateApiNewResources.expected.json} +54 -53
- package/test/integ.alblam-privateApiNewResources.js +58 -0
- package/test/{integ.publicApiExistingResources.expected.json → integ.alblam-publicApiExistingResources.expected.json} +121 -120
- package/test/integ.alblam-publicApiExistingResources.js +88 -0
- package/test/{integ.publicApiNewResources.expected.json → integ.alblam-publicApiNewResources.expected.json} +121 -120
- package/test/integ.alblam-publicApiNewResources.js +58 -0
- package/test/{integ.twoTargets.expected.json → integ.alblam-twoTargets.expected.json} +130 -129
- package/test/integ.alblam-twoTargets.js +74 -0
- package/test/integ.privateApiExistingResources.js +0 -80
- package/test/integ.privateApiNewResources.js +0 -58
- package/test/integ.publicApiExistingResources.js +0 -88
- package/test/integ.publicApiNewResources.js +0 -58
- package/test/integ.twoTargets.js +0 -74
- /package/test/{integ.privateApiExistingResources.d.ts → integ.alblam-privateApiExistingResources.d.ts} +0 -0
- /package/test/{integ.privateApiNewResources.d.ts → integ.alblam-privateApiNewResources.d.ts} +0 -0
- /package/test/{integ.publicApiExistingResources.d.ts → integ.alblam-publicApiExistingResources.d.ts} +0 -0
- /package/test/{integ.publicApiNewResources.d.ts → integ.alblam-publicApiNewResources.d.ts} +0 -0
- /package/test/{integ.twoTargets.d.ts → integ.alblam-twoTargets.d.ts} +0 -0
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
"testonetestonealbSecurityGroup4DED9E2A": {
|
|
62
62
|
"Type": "AWS::EC2::SecurityGroup",
|
|
63
63
|
"Properties": {
|
|
64
|
-
"GroupDescription": "Automatically created Security Group for ELB
|
|
64
|
+
"GroupDescription": "Automatically created Security Group for ELB alblampublicApiNewResourcestestonetestonealbE07397A7",
|
|
65
65
|
"SecurityGroupEgress": [
|
|
66
66
|
{
|
|
67
67
|
"CidrIp": "255.255.255.255/32",
|
|
@@ -193,6 +193,7 @@
|
|
|
193
193
|
},
|
|
194
194
|
{
|
|
195
195
|
"Action": [
|
|
196
|
+
"s3:PutBucketPolicy",
|
|
196
197
|
"s3:GetBucket*",
|
|
197
198
|
"s3:List*",
|
|
198
199
|
"s3:DeleteObject*"
|
|
@@ -435,7 +436,7 @@
|
|
|
435
436
|
"testoneReplaceDefaultSecurityGroupsecuritygroupE46270FE": {
|
|
436
437
|
"Type": "AWS::EC2::SecurityGroup",
|
|
437
438
|
"Properties": {
|
|
438
|
-
"GroupDescription": "publicApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group",
|
|
439
|
+
"GroupDescription": "alblam-publicApiNewResources/test-one/ReplaceDefaultSecurityGroup-security-group",
|
|
439
440
|
"SecurityGroupEgress": [
|
|
440
441
|
{
|
|
441
442
|
"CidrIp": "0.0.0.0/0",
|
|
@@ -471,18 +472,18 @@
|
|
|
471
472
|
},
|
|
472
473
|
"S3Key": "7caf594b8ad91abecca72f7f10a23a5cf446d05dc00d6194619935e7e3fd5a79.zip"
|
|
473
474
|
},
|
|
474
|
-
"Role": {
|
|
475
|
-
"Fn::GetAtt": [
|
|
476
|
-
"testoneLambdaFunctionServiceRoleE92573D3",
|
|
477
|
-
"Arn"
|
|
478
|
-
]
|
|
479
|
-
},
|
|
480
475
|
"Environment": {
|
|
481
476
|
"Variables": {
|
|
482
477
|
"AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1"
|
|
483
478
|
}
|
|
484
479
|
},
|
|
485
480
|
"Handler": "index.handler",
|
|
481
|
+
"Role": {
|
|
482
|
+
"Fn::GetAtt": [
|
|
483
|
+
"testoneLambdaFunctionServiceRoleE92573D3",
|
|
484
|
+
"Arn"
|
|
485
|
+
]
|
|
486
|
+
},
|
|
486
487
|
"Runtime": "nodejs16.x",
|
|
487
488
|
"TracingConfig": {
|
|
488
489
|
"Mode": "Active"
|
|
@@ -593,6 +594,7 @@
|
|
|
593
594
|
"testonetg2tg6459EC7C": {
|
|
594
595
|
"Type": "AWS::ElasticLoadBalancingV2::TargetGroup",
|
|
595
596
|
"Properties": {
|
|
597
|
+
"TargetType": "lambda",
|
|
596
598
|
"Targets": [
|
|
597
599
|
{
|
|
598
600
|
"Id": {
|
|
@@ -602,8 +604,7 @@
|
|
|
602
604
|
]
|
|
603
605
|
}
|
|
604
606
|
}
|
|
605
|
-
]
|
|
606
|
-
"TargetType": "lambda"
|
|
607
|
+
]
|
|
607
608
|
},
|
|
608
609
|
"DependsOn": [
|
|
609
610
|
"testoneLambdaFunctionInvoke2UTWxhlfyqbT5FTn5jvgbLgjFfJwzswGk55DU1HY508A8518"
|
|
@@ -619,7 +620,7 @@
|
|
|
619
620
|
"Tags": [
|
|
620
621
|
{
|
|
621
622
|
"Key": "Name",
|
|
622
|
-
"Value": "publicApiNewResources/Vpc"
|
|
623
|
+
"Value": "alblam-publicApiNewResources/Vpc"
|
|
623
624
|
}
|
|
624
625
|
]
|
|
625
626
|
}
|
|
@@ -627,9 +628,6 @@
|
|
|
627
628
|
"VpcPublicSubnet1Subnet5C2D37C4": {
|
|
628
629
|
"Type": "AWS::EC2::Subnet",
|
|
629
630
|
"Properties": {
|
|
630
|
-
"VpcId": {
|
|
631
|
-
"Ref": "Vpc8378EB38"
|
|
632
|
-
},
|
|
633
631
|
"AvailabilityZone": "test-region-1a",
|
|
634
632
|
"CidrBlock": "10.0.0.0/19",
|
|
635
633
|
"MapPublicIpOnLaunch": true,
|
|
@@ -644,9 +642,12 @@
|
|
|
644
642
|
},
|
|
645
643
|
{
|
|
646
644
|
"Key": "Name",
|
|
647
|
-
"Value": "publicApiNewResources/Vpc/PublicSubnet1"
|
|
645
|
+
"Value": "alblam-publicApiNewResources/Vpc/PublicSubnet1"
|
|
648
646
|
}
|
|
649
|
-
]
|
|
647
|
+
],
|
|
648
|
+
"VpcId": {
|
|
649
|
+
"Ref": "Vpc8378EB38"
|
|
650
|
+
}
|
|
650
651
|
},
|
|
651
652
|
"Metadata": {
|
|
652
653
|
"cfn_nag": {
|
|
@@ -662,15 +663,15 @@
|
|
|
662
663
|
"VpcPublicSubnet1RouteTable6C95E38E": {
|
|
663
664
|
"Type": "AWS::EC2::RouteTable",
|
|
664
665
|
"Properties": {
|
|
665
|
-
"VpcId": {
|
|
666
|
-
"Ref": "Vpc8378EB38"
|
|
667
|
-
},
|
|
668
666
|
"Tags": [
|
|
669
667
|
{
|
|
670
668
|
"Key": "Name",
|
|
671
|
-
"Value": "publicApiNewResources/Vpc/PublicSubnet1"
|
|
669
|
+
"Value": "alblam-publicApiNewResources/Vpc/PublicSubnet1"
|
|
672
670
|
}
|
|
673
|
-
]
|
|
671
|
+
],
|
|
672
|
+
"VpcId": {
|
|
673
|
+
"Ref": "Vpc8378EB38"
|
|
674
|
+
}
|
|
674
675
|
}
|
|
675
676
|
},
|
|
676
677
|
"VpcPublicSubnet1RouteTableAssociation97140677": {
|
|
@@ -687,12 +688,12 @@
|
|
|
687
688
|
"VpcPublicSubnet1DefaultRoute3DA9E72A": {
|
|
688
689
|
"Type": "AWS::EC2::Route",
|
|
689
690
|
"Properties": {
|
|
690
|
-
"RouteTableId": {
|
|
691
|
-
"Ref": "VpcPublicSubnet1RouteTable6C95E38E"
|
|
692
|
-
},
|
|
693
691
|
"DestinationCidrBlock": "0.0.0.0/0",
|
|
694
692
|
"GatewayId": {
|
|
695
693
|
"Ref": "VpcIGWD7BA715C"
|
|
694
|
+
},
|
|
695
|
+
"RouteTableId": {
|
|
696
|
+
"Ref": "VpcPublicSubnet1RouteTable6C95E38E"
|
|
696
697
|
}
|
|
697
698
|
},
|
|
698
699
|
"DependsOn": [
|
|
@@ -706,7 +707,7 @@
|
|
|
706
707
|
"Tags": [
|
|
707
708
|
{
|
|
708
709
|
"Key": "Name",
|
|
709
|
-
"Value": "publicApiNewResources/Vpc/PublicSubnet1"
|
|
710
|
+
"Value": "alblam-publicApiNewResources/Vpc/PublicSubnet1"
|
|
710
711
|
}
|
|
711
712
|
]
|
|
712
713
|
}
|
|
@@ -714,19 +715,19 @@
|
|
|
714
715
|
"VpcPublicSubnet1NATGateway4D7517AA": {
|
|
715
716
|
"Type": "AWS::EC2::NatGateway",
|
|
716
717
|
"Properties": {
|
|
717
|
-
"SubnetId": {
|
|
718
|
-
"Ref": "VpcPublicSubnet1Subnet5C2D37C4"
|
|
719
|
-
},
|
|
720
718
|
"AllocationId": {
|
|
721
719
|
"Fn::GetAtt": [
|
|
722
720
|
"VpcPublicSubnet1EIPD7E02669",
|
|
723
721
|
"AllocationId"
|
|
724
722
|
]
|
|
725
723
|
},
|
|
724
|
+
"SubnetId": {
|
|
725
|
+
"Ref": "VpcPublicSubnet1Subnet5C2D37C4"
|
|
726
|
+
},
|
|
726
727
|
"Tags": [
|
|
727
728
|
{
|
|
728
729
|
"Key": "Name",
|
|
729
|
-
"Value": "publicApiNewResources/Vpc/PublicSubnet1"
|
|
730
|
+
"Value": "alblam-publicApiNewResources/Vpc/PublicSubnet1"
|
|
730
731
|
}
|
|
731
732
|
]
|
|
732
733
|
},
|
|
@@ -738,9 +739,6 @@
|
|
|
738
739
|
"VpcPublicSubnet2Subnet691E08A3": {
|
|
739
740
|
"Type": "AWS::EC2::Subnet",
|
|
740
741
|
"Properties": {
|
|
741
|
-
"VpcId": {
|
|
742
|
-
"Ref": "Vpc8378EB38"
|
|
743
|
-
},
|
|
744
742
|
"AvailabilityZone": "test-region-1b",
|
|
745
743
|
"CidrBlock": "10.0.32.0/19",
|
|
746
744
|
"MapPublicIpOnLaunch": true,
|
|
@@ -755,9 +753,12 @@
|
|
|
755
753
|
},
|
|
756
754
|
{
|
|
757
755
|
"Key": "Name",
|
|
758
|
-
"Value": "publicApiNewResources/Vpc/PublicSubnet2"
|
|
756
|
+
"Value": "alblam-publicApiNewResources/Vpc/PublicSubnet2"
|
|
759
757
|
}
|
|
760
|
-
]
|
|
758
|
+
],
|
|
759
|
+
"VpcId": {
|
|
760
|
+
"Ref": "Vpc8378EB38"
|
|
761
|
+
}
|
|
761
762
|
},
|
|
762
763
|
"Metadata": {
|
|
763
764
|
"cfn_nag": {
|
|
@@ -773,15 +774,15 @@
|
|
|
773
774
|
"VpcPublicSubnet2RouteTable94F7E489": {
|
|
774
775
|
"Type": "AWS::EC2::RouteTable",
|
|
775
776
|
"Properties": {
|
|
776
|
-
"VpcId": {
|
|
777
|
-
"Ref": "Vpc8378EB38"
|
|
778
|
-
},
|
|
779
777
|
"Tags": [
|
|
780
778
|
{
|
|
781
779
|
"Key": "Name",
|
|
782
|
-
"Value": "publicApiNewResources/Vpc/PublicSubnet2"
|
|
780
|
+
"Value": "alblam-publicApiNewResources/Vpc/PublicSubnet2"
|
|
783
781
|
}
|
|
784
|
-
]
|
|
782
|
+
],
|
|
783
|
+
"VpcId": {
|
|
784
|
+
"Ref": "Vpc8378EB38"
|
|
785
|
+
}
|
|
785
786
|
}
|
|
786
787
|
},
|
|
787
788
|
"VpcPublicSubnet2RouteTableAssociationDD5762D8": {
|
|
@@ -798,12 +799,12 @@
|
|
|
798
799
|
"VpcPublicSubnet2DefaultRoute97F91067": {
|
|
799
800
|
"Type": "AWS::EC2::Route",
|
|
800
801
|
"Properties": {
|
|
801
|
-
"RouteTableId": {
|
|
802
|
-
"Ref": "VpcPublicSubnet2RouteTable94F7E489"
|
|
803
|
-
},
|
|
804
802
|
"DestinationCidrBlock": "0.0.0.0/0",
|
|
805
803
|
"GatewayId": {
|
|
806
804
|
"Ref": "VpcIGWD7BA715C"
|
|
805
|
+
},
|
|
806
|
+
"RouteTableId": {
|
|
807
|
+
"Ref": "VpcPublicSubnet2RouteTable94F7E489"
|
|
807
808
|
}
|
|
808
809
|
},
|
|
809
810
|
"DependsOn": [
|
|
@@ -817,7 +818,7 @@
|
|
|
817
818
|
"Tags": [
|
|
818
819
|
{
|
|
819
820
|
"Key": "Name",
|
|
820
|
-
"Value": "publicApiNewResources/Vpc/PublicSubnet2"
|
|
821
|
+
"Value": "alblam-publicApiNewResources/Vpc/PublicSubnet2"
|
|
821
822
|
}
|
|
822
823
|
]
|
|
823
824
|
}
|
|
@@ -825,19 +826,19 @@
|
|
|
825
826
|
"VpcPublicSubnet2NATGateway9182C01D": {
|
|
826
827
|
"Type": "AWS::EC2::NatGateway",
|
|
827
828
|
"Properties": {
|
|
828
|
-
"SubnetId": {
|
|
829
|
-
"Ref": "VpcPublicSubnet2Subnet691E08A3"
|
|
830
|
-
},
|
|
831
829
|
"AllocationId": {
|
|
832
830
|
"Fn::GetAtt": [
|
|
833
831
|
"VpcPublicSubnet2EIP3C605A87",
|
|
834
832
|
"AllocationId"
|
|
835
833
|
]
|
|
836
834
|
},
|
|
835
|
+
"SubnetId": {
|
|
836
|
+
"Ref": "VpcPublicSubnet2Subnet691E08A3"
|
|
837
|
+
},
|
|
837
838
|
"Tags": [
|
|
838
839
|
{
|
|
839
840
|
"Key": "Name",
|
|
840
|
-
"Value": "publicApiNewResources/Vpc/PublicSubnet2"
|
|
841
|
+
"Value": "alblam-publicApiNewResources/Vpc/PublicSubnet2"
|
|
841
842
|
}
|
|
842
843
|
]
|
|
843
844
|
},
|
|
@@ -849,9 +850,6 @@
|
|
|
849
850
|
"VpcPublicSubnet3SubnetBE12F0B6": {
|
|
850
851
|
"Type": "AWS::EC2::Subnet",
|
|
851
852
|
"Properties": {
|
|
852
|
-
"VpcId": {
|
|
853
|
-
"Ref": "Vpc8378EB38"
|
|
854
|
-
},
|
|
855
853
|
"AvailabilityZone": "test-region-1c",
|
|
856
854
|
"CidrBlock": "10.0.64.0/19",
|
|
857
855
|
"MapPublicIpOnLaunch": true,
|
|
@@ -866,9 +864,12 @@
|
|
|
866
864
|
},
|
|
867
865
|
{
|
|
868
866
|
"Key": "Name",
|
|
869
|
-
"Value": "publicApiNewResources/Vpc/PublicSubnet3"
|
|
867
|
+
"Value": "alblam-publicApiNewResources/Vpc/PublicSubnet3"
|
|
870
868
|
}
|
|
871
|
-
]
|
|
869
|
+
],
|
|
870
|
+
"VpcId": {
|
|
871
|
+
"Ref": "Vpc8378EB38"
|
|
872
|
+
}
|
|
872
873
|
},
|
|
873
874
|
"Metadata": {
|
|
874
875
|
"cfn_nag": {
|
|
@@ -884,15 +885,15 @@
|
|
|
884
885
|
"VpcPublicSubnet3RouteTable93458DBB": {
|
|
885
886
|
"Type": "AWS::EC2::RouteTable",
|
|
886
887
|
"Properties": {
|
|
887
|
-
"VpcId": {
|
|
888
|
-
"Ref": "Vpc8378EB38"
|
|
889
|
-
},
|
|
890
888
|
"Tags": [
|
|
891
889
|
{
|
|
892
890
|
"Key": "Name",
|
|
893
|
-
"Value": "publicApiNewResources/Vpc/PublicSubnet3"
|
|
891
|
+
"Value": "alblam-publicApiNewResources/Vpc/PublicSubnet3"
|
|
894
892
|
}
|
|
895
|
-
]
|
|
893
|
+
],
|
|
894
|
+
"VpcId": {
|
|
895
|
+
"Ref": "Vpc8378EB38"
|
|
896
|
+
}
|
|
896
897
|
}
|
|
897
898
|
},
|
|
898
899
|
"VpcPublicSubnet3RouteTableAssociation1F1EDF02": {
|
|
@@ -909,12 +910,12 @@
|
|
|
909
910
|
"VpcPublicSubnet3DefaultRoute4697774F": {
|
|
910
911
|
"Type": "AWS::EC2::Route",
|
|
911
912
|
"Properties": {
|
|
912
|
-
"RouteTableId": {
|
|
913
|
-
"Ref": "VpcPublicSubnet3RouteTable93458DBB"
|
|
914
|
-
},
|
|
915
913
|
"DestinationCidrBlock": "0.0.0.0/0",
|
|
916
914
|
"GatewayId": {
|
|
917
915
|
"Ref": "VpcIGWD7BA715C"
|
|
916
|
+
},
|
|
917
|
+
"RouteTableId": {
|
|
918
|
+
"Ref": "VpcPublicSubnet3RouteTable93458DBB"
|
|
918
919
|
}
|
|
919
920
|
},
|
|
920
921
|
"DependsOn": [
|
|
@@ -928,7 +929,7 @@
|
|
|
928
929
|
"Tags": [
|
|
929
930
|
{
|
|
930
931
|
"Key": "Name",
|
|
931
|
-
"Value": "publicApiNewResources/Vpc/PublicSubnet3"
|
|
932
|
+
"Value": "alblam-publicApiNewResources/Vpc/PublicSubnet3"
|
|
932
933
|
}
|
|
933
934
|
]
|
|
934
935
|
}
|
|
@@ -936,19 +937,19 @@
|
|
|
936
937
|
"VpcPublicSubnet3NATGateway7640CD1D": {
|
|
937
938
|
"Type": "AWS::EC2::NatGateway",
|
|
938
939
|
"Properties": {
|
|
939
|
-
"SubnetId": {
|
|
940
|
-
"Ref": "VpcPublicSubnet3SubnetBE12F0B6"
|
|
941
|
-
},
|
|
942
940
|
"AllocationId": {
|
|
943
941
|
"Fn::GetAtt": [
|
|
944
942
|
"VpcPublicSubnet3EIP3A666A23",
|
|
945
943
|
"AllocationId"
|
|
946
944
|
]
|
|
947
945
|
},
|
|
946
|
+
"SubnetId": {
|
|
947
|
+
"Ref": "VpcPublicSubnet3SubnetBE12F0B6"
|
|
948
|
+
},
|
|
948
949
|
"Tags": [
|
|
949
950
|
{
|
|
950
951
|
"Key": "Name",
|
|
951
|
-
"Value": "publicApiNewResources/Vpc/PublicSubnet3"
|
|
952
|
+
"Value": "alblam-publicApiNewResources/Vpc/PublicSubnet3"
|
|
952
953
|
}
|
|
953
954
|
]
|
|
954
955
|
},
|
|
@@ -960,9 +961,6 @@
|
|
|
960
961
|
"VpcPrivateSubnet1Subnet536B997A": {
|
|
961
962
|
"Type": "AWS::EC2::Subnet",
|
|
962
963
|
"Properties": {
|
|
963
|
-
"VpcId": {
|
|
964
|
-
"Ref": "Vpc8378EB38"
|
|
965
|
-
},
|
|
966
964
|
"AvailabilityZone": "test-region-1a",
|
|
967
965
|
"CidrBlock": "10.0.96.0/19",
|
|
968
966
|
"MapPublicIpOnLaunch": false,
|
|
@@ -977,23 +975,26 @@
|
|
|
977
975
|
},
|
|
978
976
|
{
|
|
979
977
|
"Key": "Name",
|
|
980
|
-
"Value": "publicApiNewResources/Vpc/PrivateSubnet1"
|
|
978
|
+
"Value": "alblam-publicApiNewResources/Vpc/PrivateSubnet1"
|
|
981
979
|
}
|
|
982
|
-
]
|
|
980
|
+
],
|
|
981
|
+
"VpcId": {
|
|
982
|
+
"Ref": "Vpc8378EB38"
|
|
983
|
+
}
|
|
983
984
|
}
|
|
984
985
|
},
|
|
985
986
|
"VpcPrivateSubnet1RouteTableB2C5B500": {
|
|
986
987
|
"Type": "AWS::EC2::RouteTable",
|
|
987
988
|
"Properties": {
|
|
988
|
-
"VpcId": {
|
|
989
|
-
"Ref": "Vpc8378EB38"
|
|
990
|
-
},
|
|
991
989
|
"Tags": [
|
|
992
990
|
{
|
|
993
991
|
"Key": "Name",
|
|
994
|
-
"Value": "publicApiNewResources/Vpc/PrivateSubnet1"
|
|
992
|
+
"Value": "alblam-publicApiNewResources/Vpc/PrivateSubnet1"
|
|
995
993
|
}
|
|
996
|
-
]
|
|
994
|
+
],
|
|
995
|
+
"VpcId": {
|
|
996
|
+
"Ref": "Vpc8378EB38"
|
|
997
|
+
}
|
|
997
998
|
}
|
|
998
999
|
},
|
|
999
1000
|
"VpcPrivateSubnet1RouteTableAssociation70C59FA6": {
|
|
@@ -1010,21 +1011,18 @@
|
|
|
1010
1011
|
"VpcPrivateSubnet1DefaultRouteBE02A9ED": {
|
|
1011
1012
|
"Type": "AWS::EC2::Route",
|
|
1012
1013
|
"Properties": {
|
|
1013
|
-
"RouteTableId": {
|
|
1014
|
-
"Ref": "VpcPrivateSubnet1RouteTableB2C5B500"
|
|
1015
|
-
},
|
|
1016
1014
|
"DestinationCidrBlock": "0.0.0.0/0",
|
|
1017
1015
|
"NatGatewayId": {
|
|
1018
1016
|
"Ref": "VpcPublicSubnet1NATGateway4D7517AA"
|
|
1017
|
+
},
|
|
1018
|
+
"RouteTableId": {
|
|
1019
|
+
"Ref": "VpcPrivateSubnet1RouteTableB2C5B500"
|
|
1019
1020
|
}
|
|
1020
1021
|
}
|
|
1021
1022
|
},
|
|
1022
1023
|
"VpcPrivateSubnet2Subnet3788AAA1": {
|
|
1023
1024
|
"Type": "AWS::EC2::Subnet",
|
|
1024
1025
|
"Properties": {
|
|
1025
|
-
"VpcId": {
|
|
1026
|
-
"Ref": "Vpc8378EB38"
|
|
1027
|
-
},
|
|
1028
1026
|
"AvailabilityZone": "test-region-1b",
|
|
1029
1027
|
"CidrBlock": "10.0.128.0/19",
|
|
1030
1028
|
"MapPublicIpOnLaunch": false,
|
|
@@ -1039,23 +1037,26 @@
|
|
|
1039
1037
|
},
|
|
1040
1038
|
{
|
|
1041
1039
|
"Key": "Name",
|
|
1042
|
-
"Value": "publicApiNewResources/Vpc/PrivateSubnet2"
|
|
1040
|
+
"Value": "alblam-publicApiNewResources/Vpc/PrivateSubnet2"
|
|
1043
1041
|
}
|
|
1044
|
-
]
|
|
1042
|
+
],
|
|
1043
|
+
"VpcId": {
|
|
1044
|
+
"Ref": "Vpc8378EB38"
|
|
1045
|
+
}
|
|
1045
1046
|
}
|
|
1046
1047
|
},
|
|
1047
1048
|
"VpcPrivateSubnet2RouteTableA678073B": {
|
|
1048
1049
|
"Type": "AWS::EC2::RouteTable",
|
|
1049
1050
|
"Properties": {
|
|
1050
|
-
"VpcId": {
|
|
1051
|
-
"Ref": "Vpc8378EB38"
|
|
1052
|
-
},
|
|
1053
1051
|
"Tags": [
|
|
1054
1052
|
{
|
|
1055
1053
|
"Key": "Name",
|
|
1056
|
-
"Value": "publicApiNewResources/Vpc/PrivateSubnet2"
|
|
1054
|
+
"Value": "alblam-publicApiNewResources/Vpc/PrivateSubnet2"
|
|
1057
1055
|
}
|
|
1058
|
-
]
|
|
1056
|
+
],
|
|
1057
|
+
"VpcId": {
|
|
1058
|
+
"Ref": "Vpc8378EB38"
|
|
1059
|
+
}
|
|
1059
1060
|
}
|
|
1060
1061
|
},
|
|
1061
1062
|
"VpcPrivateSubnet2RouteTableAssociationA89CAD56": {
|
|
@@ -1072,21 +1073,18 @@
|
|
|
1072
1073
|
"VpcPrivateSubnet2DefaultRoute060D2087": {
|
|
1073
1074
|
"Type": "AWS::EC2::Route",
|
|
1074
1075
|
"Properties": {
|
|
1075
|
-
"RouteTableId": {
|
|
1076
|
-
"Ref": "VpcPrivateSubnet2RouteTableA678073B"
|
|
1077
|
-
},
|
|
1078
1076
|
"DestinationCidrBlock": "0.0.0.0/0",
|
|
1079
1077
|
"NatGatewayId": {
|
|
1080
1078
|
"Ref": "VpcPublicSubnet2NATGateway9182C01D"
|
|
1079
|
+
},
|
|
1080
|
+
"RouteTableId": {
|
|
1081
|
+
"Ref": "VpcPrivateSubnet2RouteTableA678073B"
|
|
1081
1082
|
}
|
|
1082
1083
|
}
|
|
1083
1084
|
},
|
|
1084
1085
|
"VpcPrivateSubnet3SubnetF258B56E": {
|
|
1085
1086
|
"Type": "AWS::EC2::Subnet",
|
|
1086
1087
|
"Properties": {
|
|
1087
|
-
"VpcId": {
|
|
1088
|
-
"Ref": "Vpc8378EB38"
|
|
1089
|
-
},
|
|
1090
1088
|
"AvailabilityZone": "test-region-1c",
|
|
1091
1089
|
"CidrBlock": "10.0.160.0/19",
|
|
1092
1090
|
"MapPublicIpOnLaunch": false,
|
|
@@ -1101,23 +1099,26 @@
|
|
|
1101
1099
|
},
|
|
1102
1100
|
{
|
|
1103
1101
|
"Key": "Name",
|
|
1104
|
-
"Value": "publicApiNewResources/Vpc/PrivateSubnet3"
|
|
1102
|
+
"Value": "alblam-publicApiNewResources/Vpc/PrivateSubnet3"
|
|
1105
1103
|
}
|
|
1106
|
-
]
|
|
1104
|
+
],
|
|
1105
|
+
"VpcId": {
|
|
1106
|
+
"Ref": "Vpc8378EB38"
|
|
1107
|
+
}
|
|
1107
1108
|
}
|
|
1108
1109
|
},
|
|
1109
1110
|
"VpcPrivateSubnet3RouteTableD98824C7": {
|
|
1110
1111
|
"Type": "AWS::EC2::RouteTable",
|
|
1111
1112
|
"Properties": {
|
|
1112
|
-
"VpcId": {
|
|
1113
|
-
"Ref": "Vpc8378EB38"
|
|
1114
|
-
},
|
|
1115
1113
|
"Tags": [
|
|
1116
1114
|
{
|
|
1117
1115
|
"Key": "Name",
|
|
1118
|
-
"Value": "publicApiNewResources/Vpc/PrivateSubnet3"
|
|
1116
|
+
"Value": "alblam-publicApiNewResources/Vpc/PrivateSubnet3"
|
|
1119
1117
|
}
|
|
1120
|
-
]
|
|
1118
|
+
],
|
|
1119
|
+
"VpcId": {
|
|
1120
|
+
"Ref": "Vpc8378EB38"
|
|
1121
|
+
}
|
|
1121
1122
|
}
|
|
1122
1123
|
},
|
|
1123
1124
|
"VpcPrivateSubnet3RouteTableAssociation16BDDC43": {
|
|
@@ -1134,12 +1135,12 @@
|
|
|
1134
1135
|
"VpcPrivateSubnet3DefaultRoute94B74F0D": {
|
|
1135
1136
|
"Type": "AWS::EC2::Route",
|
|
1136
1137
|
"Properties": {
|
|
1137
|
-
"RouteTableId": {
|
|
1138
|
-
"Ref": "VpcPrivateSubnet3RouteTableD98824C7"
|
|
1139
|
-
},
|
|
1140
1138
|
"DestinationCidrBlock": "0.0.0.0/0",
|
|
1141
1139
|
"NatGatewayId": {
|
|
1142
1140
|
"Ref": "VpcPublicSubnet3NATGateway7640CD1D"
|
|
1141
|
+
},
|
|
1142
|
+
"RouteTableId": {
|
|
1143
|
+
"Ref": "VpcPrivateSubnet3RouteTableD98824C7"
|
|
1143
1144
|
}
|
|
1144
1145
|
}
|
|
1145
1146
|
},
|
|
@@ -1149,7 +1150,7 @@
|
|
|
1149
1150
|
"Tags": [
|
|
1150
1151
|
{
|
|
1151
1152
|
"Key": "Name",
|
|
1152
|
-
"Value": "publicApiNewResources/Vpc"
|
|
1153
|
+
"Value": "alblam-publicApiNewResources/Vpc"
|
|
1153
1154
|
}
|
|
1154
1155
|
]
|
|
1155
1156
|
}
|
|
@@ -1157,11 +1158,11 @@
|
|
|
1157
1158
|
"VpcVPCGWBF912B6E": {
|
|
1158
1159
|
"Type": "AWS::EC2::VPCGatewayAttachment",
|
|
1159
1160
|
"Properties": {
|
|
1160
|
-
"VpcId": {
|
|
1161
|
-
"Ref": "Vpc8378EB38"
|
|
1162
|
-
},
|
|
1163
1161
|
"InternetGatewayId": {
|
|
1164
1162
|
"Ref": "VpcIGWD7BA715C"
|
|
1163
|
+
},
|
|
1164
|
+
"VpcId": {
|
|
1165
|
+
"Ref": "Vpc8378EB38"
|
|
1165
1166
|
}
|
|
1166
1167
|
}
|
|
1167
1168
|
},
|
|
@@ -1183,7 +1184,7 @@
|
|
|
1183
1184
|
"Tags": [
|
|
1184
1185
|
{
|
|
1185
1186
|
"Key": "Name",
|
|
1186
|
-
"Value": "publicApiNewResources/Vpc"
|
|
1187
|
+
"Value": "alblam-publicApiNewResources/Vpc/FlowLog"
|
|
1187
1188
|
}
|
|
1188
1189
|
]
|
|
1189
1190
|
}
|
|
@@ -1235,7 +1236,7 @@
|
|
|
1235
1236
|
"Tags": [
|
|
1236
1237
|
{
|
|
1237
1238
|
"Key": "Name",
|
|
1238
|
-
"Value": "publicApiNewResources/Vpc"
|
|
1239
|
+
"Value": "alblam-publicApiNewResources/Vpc/FlowLog"
|
|
1239
1240
|
}
|
|
1240
1241
|
]
|
|
1241
1242
|
},
|
|
@@ -1255,11 +1256,6 @@
|
|
|
1255
1256
|
"VpcFlowLog8FF33A73": {
|
|
1256
1257
|
"Type": "AWS::EC2::FlowLog",
|
|
1257
1258
|
"Properties": {
|
|
1258
|
-
"ResourceId": {
|
|
1259
|
-
"Ref": "Vpc8378EB38"
|
|
1260
|
-
},
|
|
1261
|
-
"ResourceType": "VPC",
|
|
1262
|
-
"TrafficType": "ALL",
|
|
1263
1259
|
"DeliverLogsPermissionArn": {
|
|
1264
1260
|
"Fn::GetAtt": [
|
|
1265
1261
|
"VpcFlowLogIAMRole6A475D41",
|
|
@@ -1270,12 +1266,17 @@
|
|
|
1270
1266
|
"LogGroupName": {
|
|
1271
1267
|
"Ref": "VpcFlowLogLogGroup7B5C56B9"
|
|
1272
1268
|
},
|
|
1269
|
+
"ResourceId": {
|
|
1270
|
+
"Ref": "Vpc8378EB38"
|
|
1271
|
+
},
|
|
1272
|
+
"ResourceType": "VPC",
|
|
1273
1273
|
"Tags": [
|
|
1274
1274
|
{
|
|
1275
1275
|
"Key": "Name",
|
|
1276
|
-
"Value": "publicApiNewResources/Vpc"
|
|
1276
|
+
"Value": "alblam-publicApiNewResources/Vpc/FlowLog"
|
|
1277
1277
|
}
|
|
1278
|
-
]
|
|
1278
|
+
],
|
|
1279
|
+
"TrafficType": "ALL"
|
|
1279
1280
|
}
|
|
1280
1281
|
},
|
|
1281
1282
|
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092": {
|
|
@@ -1307,18 +1308,18 @@
|
|
|
1307
1308
|
"S3Bucket": {
|
|
1308
1309
|
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"
|
|
1309
1310
|
},
|
|
1310
|
-
"S3Key": "
|
|
1311
|
+
"S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
|
|
1311
1312
|
},
|
|
1312
1313
|
"Timeout": 900,
|
|
1313
1314
|
"MemorySize": 128,
|
|
1314
|
-
"Handler": "
|
|
1315
|
+
"Handler": "index.handler",
|
|
1315
1316
|
"Role": {
|
|
1316
1317
|
"Fn::GetAtt": [
|
|
1317
1318
|
"CustomS3AutoDeleteObjectsCustomResourceProviderRole3B1BD092",
|
|
1318
1319
|
"Arn"
|
|
1319
1320
|
]
|
|
1320
1321
|
},
|
|
1321
|
-
"Runtime": "
|
|
1322
|
+
"Runtime": "nodejs18.x",
|
|
1322
1323
|
"Description": {
|
|
1323
1324
|
"Fn::Join": [
|
|
1324
1325
|
"",
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
|
|
6
|
+
* with the License. A copy of the License is located at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES
|
|
11
|
+
* OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions
|
|
12
|
+
* and limitations under the License.
|
|
13
|
+
*/
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
// Imports
|
|
16
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
17
|
+
const lib_1 = require("../lib");
|
|
18
|
+
const core_1 = require("@aws-solutions-constructs/core");
|
|
19
|
+
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
20
|
+
const defaults = require("@aws-solutions-constructs/core");
|
|
21
|
+
// Note: All integration tests for alb are for HTTP APIs, as certificates require
|
|
22
|
+
// validation through DNS and email. This validation is impossible during our integration
|
|
23
|
+
// tests and the stack will fail to launch with an unvalidated certificate.
|
|
24
|
+
// Setup
|
|
25
|
+
const app = new aws_cdk_lib_1.App();
|
|
26
|
+
const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename), {
|
|
27
|
+
env: { account: aws_cdk_lib_1.Aws.ACCOUNT_ID, region: 'us-east-1' },
|
|
28
|
+
});
|
|
29
|
+
stack.templateOptions.description = 'Integration Test for public HTTP API with a new function and ALB';
|
|
30
|
+
const props = {
|
|
31
|
+
lambdaFunctionProps: {
|
|
32
|
+
code: lambda.Code.fromAsset(`${__dirname}/lambda`),
|
|
33
|
+
runtime: lambda.Runtime.NODEJS_16_X,
|
|
34
|
+
handler: 'index.handler'
|
|
35
|
+
},
|
|
36
|
+
listenerProps: {
|
|
37
|
+
protocol: 'HTTP'
|
|
38
|
+
},
|
|
39
|
+
publicApi: true,
|
|
40
|
+
albLoggingBucketProps: {
|
|
41
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
|
|
42
|
+
autoDeleteObjects: true
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const albToLambda = new lib_1.AlbToLambda(stack, 'test-one', props);
|
|
46
|
+
defaults.addCfnSuppressRules(albToLambda.listener, [
|
|
47
|
+
{ id: 'W56', reason: 'All integration tests must be HTTP because of certificate limitations.' },
|
|
48
|
+
]);
|
|
49
|
+
const newSecurityGroup = albToLambda.loadBalancer.connections.securityGroups[0].node.defaultChild;
|
|
50
|
+
defaults.addCfnSuppressRules(newSecurityGroup, [
|
|
51
|
+
{ id: 'W29', reason: 'CDK created rule that blocks all traffic.' },
|
|
52
|
+
{ id: 'W2', reason: 'Rule does not apply for ELB.' },
|
|
53
|
+
{ id: 'W9', reason: 'Rule does not apply for ELB.' }
|
|
54
|
+
]);
|
|
55
|
+
defaults.suppressAutoDeleteHandlerWarnings(stack);
|
|
56
|
+
// Synth
|
|
57
|
+
app.synth();
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuYWxibGFtLXB1YmxpY0FwaU5ld1Jlc291cmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVnLmFsYmxhbS1wdWJsaWNBcGlOZXdSZXNvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILFVBQVU7QUFDViw2Q0FBNkQ7QUFDN0QsZ0NBQXVEO0FBQ3ZELHlEQUF3RTtBQUN4RSxpREFBaUQ7QUFDakQsMkRBQTJEO0FBRzNELGlGQUFpRjtBQUNqRix5RkFBeUY7QUFDekYsMkVBQTJFO0FBRTNFLFFBQVE7QUFDUixNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsR0FBRyxFQUFFLDZCQUFzQixDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQy9ELEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFO0NBQ3RELENBQUMsQ0FBQztBQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLGtFQUFrRSxDQUFDO0FBRXZHLE1BQU0sS0FBSyxHQUFxQjtJQUM5QixtQkFBbUIsRUFBRTtRQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLFNBQVMsQ0FBQztRQUNsRCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1FBQ25DLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsUUFBUSxFQUFFLE1BQU07S0FDakI7SUFDRCxTQUFTLEVBQUUsSUFBSTtJQUNmLHFCQUFxQixFQUFFO1FBQ3JCLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87UUFDcEMsaUJBQWlCLEVBQUUsSUFBSTtLQUN4QjtDQUNGLENBQUM7QUFDRixNQUFNLFdBQVcsR0FBRyxJQUFJLGlCQUFXLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUU5RCxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtJQUNqRCxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLHdFQUF3RSxFQUFFO0NBQ2hHLENBQUMsQ0FBQztBQUVILE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFnQyxDQUFDO0FBQ3RILFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRTtJQUM3QyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLDJDQUEyQyxFQUFDO0lBQ2pFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsOEJBQThCLEVBQUM7SUFDbkQsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSw4QkFBOEIsRUFBQztDQUNwRCxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsaUNBQWlDLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbEQsUUFBUTtBQUNSLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIEltcG9ydHNcbmltcG9ydCB7IEF3cywgQXBwLCBTdGFjaywgUmVtb3ZhbFBvbGljeSB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQWxiVG9MYW1iZGEsIEFsYlRvTGFtYmRhUHJvcHMgfSBmcm9tIFwiLi4vbGliXCI7XG5pbXBvcnQgeyBnZW5lcmF0ZUludGVnU3RhY2tOYW1lIH0gZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5pbXBvcnQgeyBDZm5TZWN1cml0eUdyb3VwIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcblxuLy8gTm90ZTogQWxsIGludGVncmF0aW9uIHRlc3RzIGZvciBhbGIgYXJlIGZvciBIVFRQIEFQSXMsIGFzIGNlcnRpZmljYXRlcyByZXF1aXJlXG4vLyB2YWxpZGF0aW9uIHRocm91Z2ggRE5TIGFuZCBlbWFpbC4gVGhpcyB2YWxpZGF0aW9uIGlzIGltcG9zc2libGUgZHVyaW5nIG91ciBpbnRlZ3JhdGlvblxuLy8gdGVzdHMgYW5kIHRoZSBzdGFjayB3aWxsIGZhaWwgdG8gbGF1bmNoIHdpdGggYW4gdW52YWxpZGF0ZWQgY2VydGlmaWNhdGUuXG5cbi8vIFNldHVwXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5jb25zdCBzdGFjayA9IG5ldyBTdGFjayhhcHAsIGdlbmVyYXRlSW50ZWdTdGFja05hbWUoX19maWxlbmFtZSksIHtcbiAgZW52OiB7IGFjY291bnQ6IEF3cy5BQ0NPVU5UX0lELCByZWdpb246ICd1cy1lYXN0LTEnIH0sXG59KTtcbnN0YWNrLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9ICdJbnRlZ3JhdGlvbiBUZXN0IGZvciBwdWJsaWMgSFRUUCBBUEkgd2l0aCBhIG5ldyBmdW5jdGlvbiBhbmQgQUxCJztcblxuY29uc3QgcHJvcHM6IEFsYlRvTGFtYmRhUHJvcHMgPSB7XG4gIGxhbWJkYUZ1bmN0aW9uUHJvcHM6IHtcbiAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoYCR7X19kaXJuYW1lfS9sYW1iZGFgKSxcbiAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTZfWCxcbiAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcidcbiAgfSxcbiAgbGlzdGVuZXJQcm9wczoge1xuICAgIHByb3RvY29sOiAnSFRUUCdcbiAgfSxcbiAgcHVibGljQXBpOiB0cnVlLFxuICBhbGJMb2dnaW5nQnVja2V0UHJvcHM6IHtcbiAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWVcbiAgfVxufTtcbmNvbnN0IGFsYlRvTGFtYmRhID0gbmV3IEFsYlRvTGFtYmRhKHN0YWNrLCAndGVzdC1vbmUnLCBwcm9wcyk7XG5cbmRlZmF1bHRzLmFkZENmblN1cHByZXNzUnVsZXMoYWxiVG9MYW1iZGEubGlzdGVuZXIsIFtcbiAgeyBpZDogJ1c1NicsIHJlYXNvbjogJ0FsbCBpbnRlZ3JhdGlvbiB0ZXN0cyBtdXN0IGJlIEhUVFAgYmVjYXVzZSBvZiBjZXJ0aWZpY2F0ZSBsaW1pdGF0aW9ucy4nIH0sXG5dKTtcblxuY29uc3QgbmV3U2VjdXJpdHlHcm91cCA9IGFsYlRvTGFtYmRhLmxvYWRCYWxhbmNlci5jb25uZWN0aW9ucy5zZWN1cml0eUdyb3Vwc1swXS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5TZWN1cml0eUdyb3VwO1xuZGVmYXVsdHMuYWRkQ2ZuU3VwcHJlc3NSdWxlcyhuZXdTZWN1cml0eUdyb3VwLCBbXG4gIHsgaWQ6ICdXMjknLCByZWFzb246ICdDREsgY3JlYXRlZCBydWxlIHRoYXQgYmxvY2tzIGFsbCB0cmFmZmljLid9LFxuICB7IGlkOiAnVzInLCByZWFzb246ICdSdWxlIGRvZXMgbm90IGFwcGx5IGZvciBFTEIuJ30sXG4gIHsgaWQ6ICdXOScsIHJlYXNvbjogJ1J1bGUgZG9lcyBub3QgYXBwbHkgZm9yIEVMQi4nfVxuXSk7XG5cbmRlZmF1bHRzLnN1cHByZXNzQXV0b0RlbGV0ZUhhbmRsZXJXYXJuaW5ncyhzdGFjayk7XG4vLyBTeW50aFxuYXBwLnN5bnRoKCk7XG4iXX0=
|