@aws-solutions-constructs/aws-alb-lambda 2.45.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 +5 -5
- package/lib/index.js +1 -1
- package/package.json +6 -6
- package/test/{integ.privateApiExistingResources.expected.json → integ.alblam-privateApiExistingResources.expected.json} +27 -26
- package/test/integ.alblam-privateApiExistingResources.js +80 -0
- package/test/{integ.privateApiNewResources.expected.json → integ.alblam-privateApiNewResources.expected.json} +14 -13
- package/test/integ.alblam-privateApiNewResources.js +58 -0
- package/test/{integ.publicApiExistingResources.expected.json → integ.alblam-publicApiExistingResources.expected.json} +27 -26
- package/test/integ.alblam-publicApiExistingResources.js +88 -0
- package/test/{integ.publicApiNewResources.expected.json → integ.alblam-publicApiNewResources.expected.json} +27 -26
- package/test/integ.alblam-publicApiNewResources.js +58 -0
- package/test/{integ.twoTargets.expected.json → integ.alblam-twoTargets.expected.json} +28 -27
- 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 alblamtwoTargetstestonetestonealbCEEAAF66",
|
|
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": "twoTargets/test-one/ReplaceDefaultSecurityGroup-security-group",
|
|
439
|
+
"GroupDescription": "alblam-twoTargets/test-one/ReplaceDefaultSecurityGroup-security-group",
|
|
439
440
|
"SecurityGroupEgress": [
|
|
440
441
|
{
|
|
441
442
|
"CidrIp": "0.0.0.0/0",
|
|
@@ -646,7 +647,7 @@
|
|
|
646
647
|
"Tags": [
|
|
647
648
|
{
|
|
648
649
|
"Key": "Name",
|
|
649
|
-
"Value": "twoTargets/Vpc"
|
|
650
|
+
"Value": "alblam-twoTargets/Vpc"
|
|
650
651
|
}
|
|
651
652
|
]
|
|
652
653
|
}
|
|
@@ -668,7 +669,7 @@
|
|
|
668
669
|
},
|
|
669
670
|
{
|
|
670
671
|
"Key": "Name",
|
|
671
|
-
"Value": "twoTargets/Vpc/PublicSubnet1"
|
|
672
|
+
"Value": "alblam-twoTargets/Vpc/PublicSubnet1"
|
|
672
673
|
}
|
|
673
674
|
],
|
|
674
675
|
"VpcId": {
|
|
@@ -692,7 +693,7 @@
|
|
|
692
693
|
"Tags": [
|
|
693
694
|
{
|
|
694
695
|
"Key": "Name",
|
|
695
|
-
"Value": "twoTargets/Vpc/PublicSubnet1"
|
|
696
|
+
"Value": "alblam-twoTargets/Vpc/PublicSubnet1"
|
|
696
697
|
}
|
|
697
698
|
],
|
|
698
699
|
"VpcId": {
|
|
@@ -733,7 +734,7 @@
|
|
|
733
734
|
"Tags": [
|
|
734
735
|
{
|
|
735
736
|
"Key": "Name",
|
|
736
|
-
"Value": "twoTargets/Vpc/PublicSubnet1"
|
|
737
|
+
"Value": "alblam-twoTargets/Vpc/PublicSubnet1"
|
|
737
738
|
}
|
|
738
739
|
]
|
|
739
740
|
}
|
|
@@ -753,7 +754,7 @@
|
|
|
753
754
|
"Tags": [
|
|
754
755
|
{
|
|
755
756
|
"Key": "Name",
|
|
756
|
-
"Value": "twoTargets/Vpc/PublicSubnet1"
|
|
757
|
+
"Value": "alblam-twoTargets/Vpc/PublicSubnet1"
|
|
757
758
|
}
|
|
758
759
|
]
|
|
759
760
|
},
|
|
@@ -779,7 +780,7 @@
|
|
|
779
780
|
},
|
|
780
781
|
{
|
|
781
782
|
"Key": "Name",
|
|
782
|
-
"Value": "twoTargets/Vpc/PublicSubnet2"
|
|
783
|
+
"Value": "alblam-twoTargets/Vpc/PublicSubnet2"
|
|
783
784
|
}
|
|
784
785
|
],
|
|
785
786
|
"VpcId": {
|
|
@@ -803,7 +804,7 @@
|
|
|
803
804
|
"Tags": [
|
|
804
805
|
{
|
|
805
806
|
"Key": "Name",
|
|
806
|
-
"Value": "twoTargets/Vpc/PublicSubnet2"
|
|
807
|
+
"Value": "alblam-twoTargets/Vpc/PublicSubnet2"
|
|
807
808
|
}
|
|
808
809
|
],
|
|
809
810
|
"VpcId": {
|
|
@@ -844,7 +845,7 @@
|
|
|
844
845
|
"Tags": [
|
|
845
846
|
{
|
|
846
847
|
"Key": "Name",
|
|
847
|
-
"Value": "twoTargets/Vpc/PublicSubnet2"
|
|
848
|
+
"Value": "alblam-twoTargets/Vpc/PublicSubnet2"
|
|
848
849
|
}
|
|
849
850
|
]
|
|
850
851
|
}
|
|
@@ -864,7 +865,7 @@
|
|
|
864
865
|
"Tags": [
|
|
865
866
|
{
|
|
866
867
|
"Key": "Name",
|
|
867
|
-
"Value": "twoTargets/Vpc/PublicSubnet2"
|
|
868
|
+
"Value": "alblam-twoTargets/Vpc/PublicSubnet2"
|
|
868
869
|
}
|
|
869
870
|
]
|
|
870
871
|
},
|
|
@@ -890,7 +891,7 @@
|
|
|
890
891
|
},
|
|
891
892
|
{
|
|
892
893
|
"Key": "Name",
|
|
893
|
-
"Value": "twoTargets/Vpc/PublicSubnet3"
|
|
894
|
+
"Value": "alblam-twoTargets/Vpc/PublicSubnet3"
|
|
894
895
|
}
|
|
895
896
|
],
|
|
896
897
|
"VpcId": {
|
|
@@ -914,7 +915,7 @@
|
|
|
914
915
|
"Tags": [
|
|
915
916
|
{
|
|
916
917
|
"Key": "Name",
|
|
917
|
-
"Value": "twoTargets/Vpc/PublicSubnet3"
|
|
918
|
+
"Value": "alblam-twoTargets/Vpc/PublicSubnet3"
|
|
918
919
|
}
|
|
919
920
|
],
|
|
920
921
|
"VpcId": {
|
|
@@ -955,7 +956,7 @@
|
|
|
955
956
|
"Tags": [
|
|
956
957
|
{
|
|
957
958
|
"Key": "Name",
|
|
958
|
-
"Value": "twoTargets/Vpc/PublicSubnet3"
|
|
959
|
+
"Value": "alblam-twoTargets/Vpc/PublicSubnet3"
|
|
959
960
|
}
|
|
960
961
|
]
|
|
961
962
|
}
|
|
@@ -975,7 +976,7 @@
|
|
|
975
976
|
"Tags": [
|
|
976
977
|
{
|
|
977
978
|
"Key": "Name",
|
|
978
|
-
"Value": "twoTargets/Vpc/PublicSubnet3"
|
|
979
|
+
"Value": "alblam-twoTargets/Vpc/PublicSubnet3"
|
|
979
980
|
}
|
|
980
981
|
]
|
|
981
982
|
},
|
|
@@ -1001,7 +1002,7 @@
|
|
|
1001
1002
|
},
|
|
1002
1003
|
{
|
|
1003
1004
|
"Key": "Name",
|
|
1004
|
-
"Value": "twoTargets/Vpc/PrivateSubnet1"
|
|
1005
|
+
"Value": "alblam-twoTargets/Vpc/PrivateSubnet1"
|
|
1005
1006
|
}
|
|
1006
1007
|
],
|
|
1007
1008
|
"VpcId": {
|
|
@@ -1015,7 +1016,7 @@
|
|
|
1015
1016
|
"Tags": [
|
|
1016
1017
|
{
|
|
1017
1018
|
"Key": "Name",
|
|
1018
|
-
"Value": "twoTargets/Vpc/PrivateSubnet1"
|
|
1019
|
+
"Value": "alblam-twoTargets/Vpc/PrivateSubnet1"
|
|
1019
1020
|
}
|
|
1020
1021
|
],
|
|
1021
1022
|
"VpcId": {
|
|
@@ -1063,7 +1064,7 @@
|
|
|
1063
1064
|
},
|
|
1064
1065
|
{
|
|
1065
1066
|
"Key": "Name",
|
|
1066
|
-
"Value": "twoTargets/Vpc/PrivateSubnet2"
|
|
1067
|
+
"Value": "alblam-twoTargets/Vpc/PrivateSubnet2"
|
|
1067
1068
|
}
|
|
1068
1069
|
],
|
|
1069
1070
|
"VpcId": {
|
|
@@ -1077,7 +1078,7 @@
|
|
|
1077
1078
|
"Tags": [
|
|
1078
1079
|
{
|
|
1079
1080
|
"Key": "Name",
|
|
1080
|
-
"Value": "twoTargets/Vpc/PrivateSubnet2"
|
|
1081
|
+
"Value": "alblam-twoTargets/Vpc/PrivateSubnet2"
|
|
1081
1082
|
}
|
|
1082
1083
|
],
|
|
1083
1084
|
"VpcId": {
|
|
@@ -1125,7 +1126,7 @@
|
|
|
1125
1126
|
},
|
|
1126
1127
|
{
|
|
1127
1128
|
"Key": "Name",
|
|
1128
|
-
"Value": "twoTargets/Vpc/PrivateSubnet3"
|
|
1129
|
+
"Value": "alblam-twoTargets/Vpc/PrivateSubnet3"
|
|
1129
1130
|
}
|
|
1130
1131
|
],
|
|
1131
1132
|
"VpcId": {
|
|
@@ -1139,7 +1140,7 @@
|
|
|
1139
1140
|
"Tags": [
|
|
1140
1141
|
{
|
|
1141
1142
|
"Key": "Name",
|
|
1142
|
-
"Value": "twoTargets/Vpc/PrivateSubnet3"
|
|
1143
|
+
"Value": "alblam-twoTargets/Vpc/PrivateSubnet3"
|
|
1143
1144
|
}
|
|
1144
1145
|
],
|
|
1145
1146
|
"VpcId": {
|
|
@@ -1176,7 +1177,7 @@
|
|
|
1176
1177
|
"Tags": [
|
|
1177
1178
|
{
|
|
1178
1179
|
"Key": "Name",
|
|
1179
|
-
"Value": "twoTargets/Vpc"
|
|
1180
|
+
"Value": "alblam-twoTargets/Vpc"
|
|
1180
1181
|
}
|
|
1181
1182
|
]
|
|
1182
1183
|
}
|
|
@@ -1210,7 +1211,7 @@
|
|
|
1210
1211
|
"Tags": [
|
|
1211
1212
|
{
|
|
1212
1213
|
"Key": "Name",
|
|
1213
|
-
"Value": "twoTargets/Vpc/FlowLog"
|
|
1214
|
+
"Value": "alblam-twoTargets/Vpc/FlowLog"
|
|
1214
1215
|
}
|
|
1215
1216
|
]
|
|
1216
1217
|
}
|
|
@@ -1262,7 +1263,7 @@
|
|
|
1262
1263
|
"Tags": [
|
|
1263
1264
|
{
|
|
1264
1265
|
"Key": "Name",
|
|
1265
|
-
"Value": "twoTargets/Vpc/FlowLog"
|
|
1266
|
+
"Value": "alblam-twoTargets/Vpc/FlowLog"
|
|
1266
1267
|
}
|
|
1267
1268
|
]
|
|
1268
1269
|
},
|
|
@@ -1299,7 +1300,7 @@
|
|
|
1299
1300
|
"Tags": [
|
|
1300
1301
|
{
|
|
1301
1302
|
"Key": "Name",
|
|
1302
|
-
"Value": "twoTargets/Vpc/FlowLog"
|
|
1303
|
+
"Value": "alblam-twoTargets/Vpc/FlowLog"
|
|
1303
1304
|
}
|
|
1304
1305
|
],
|
|
1305
1306
|
"TrafficType": "ALL"
|
|
@@ -1334,7 +1335,7 @@
|
|
|
1334
1335
|
"S3Bucket": {
|
|
1335
1336
|
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-us-east-1"
|
|
1336
1337
|
},
|
|
1337
|
-
"S3Key": "
|
|
1338
|
+
"S3Key": "b7f33614a69548d6bafe224d751a7ef238cde19097415e553fe8b63a4c8fd8a6.zip"
|
|
1338
1339
|
},
|
|
1339
1340
|
"Timeout": 900,
|
|
1340
1341
|
"MemorySize": 128,
|
|
@@ -1484,7 +1485,7 @@
|
|
|
1484
1485
|
"testtwoReplaceDefaultSecurityGroupsecuritygroupE62CC6C1": {
|
|
1485
1486
|
"Type": "AWS::EC2::SecurityGroup",
|
|
1486
1487
|
"Properties": {
|
|
1487
|
-
"GroupDescription": "twoTargets/test-two/ReplaceDefaultSecurityGroup-security-group",
|
|
1488
|
+
"GroupDescription": "alblam-twoTargets/test-two/ReplaceDefaultSecurityGroup-security-group",
|
|
1488
1489
|
"SecurityGroupEgress": [
|
|
1489
1490
|
{
|
|
1490
1491
|
"CidrIp": "0.0.0.0/0",
|
|
@@ -0,0 +1,74 @@
|
|
|
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 elb = require("aws-cdk-lib/aws-elasticloadbalancingv2");
|
|
21
|
+
const defaults = require("@aws-solutions-constructs/core");
|
|
22
|
+
// Note: All integration tests for alb are for HTTP APIs, as certificates require
|
|
23
|
+
// validation through DNS and email. This validation is impossible during our integration
|
|
24
|
+
// tests and the stack will fail to launch with an unvalidated certificate.
|
|
25
|
+
// Setup
|
|
26
|
+
const app = new aws_cdk_lib_1.App();
|
|
27
|
+
const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename), {
|
|
28
|
+
env: { account: aws_cdk_lib_1.Aws.ACCOUNT_ID, region: 'us-east-1' },
|
|
29
|
+
});
|
|
30
|
+
stack.templateOptions.description = 'Integration test for alb with 2 Lambda targets';
|
|
31
|
+
const props = {
|
|
32
|
+
lambdaFunctionProps: {
|
|
33
|
+
code: lambda.Code.fromAsset(`${__dirname}/lambda`),
|
|
34
|
+
runtime: lambda.Runtime.NODEJS_16_X,
|
|
35
|
+
handler: 'index.handler'
|
|
36
|
+
},
|
|
37
|
+
listenerProps: {
|
|
38
|
+
protocol: 'HTTP'
|
|
39
|
+
},
|
|
40
|
+
publicApi: true,
|
|
41
|
+
albLoggingBucketProps: {
|
|
42
|
+
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
|
|
43
|
+
autoDeleteObjects: true
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
const firstConstruct = new lib_1.AlbToLambda(stack, 'test-one', props);
|
|
47
|
+
const secondProps = {
|
|
48
|
+
lambdaFunctionProps: {
|
|
49
|
+
code: lambda.Code.fromAsset(`${__dirname}/lambda`),
|
|
50
|
+
runtime: lambda.Runtime.NODEJS_16_X,
|
|
51
|
+
handler: 'index.handler'
|
|
52
|
+
},
|
|
53
|
+
ruleProps: {
|
|
54
|
+
conditions: [elb.ListenerCondition.pathPatterns(["*admin*"])],
|
|
55
|
+
priority: 10
|
|
56
|
+
},
|
|
57
|
+
existingVpc: firstConstruct.vpc,
|
|
58
|
+
existingLoadBalancerObj: firstConstruct.loadBalancer,
|
|
59
|
+
publicApi: true
|
|
60
|
+
};
|
|
61
|
+
new lib_1.AlbToLambda(stack, 'test-two', secondProps);
|
|
62
|
+
defaults.addCfnSuppressRules(firstConstruct.listener, [
|
|
63
|
+
{ id: 'W56', reason: 'All integration tests must be HTTP because of certificate limitations.' },
|
|
64
|
+
]);
|
|
65
|
+
const newSecurityGroup = firstConstruct.loadBalancer.connections.securityGroups[0].node.defaultChild;
|
|
66
|
+
defaults.addCfnSuppressRules(newSecurityGroup, [
|
|
67
|
+
{ id: 'W29', reason: 'CDK created rule that blocks all traffic.' },
|
|
68
|
+
{ id: 'W2', reason: 'Rule does not apply for ELB.' },
|
|
69
|
+
{ id: 'W9', reason: 'Rule does not apply for ELB.' }
|
|
70
|
+
]);
|
|
71
|
+
defaults.suppressAutoDeleteHandlerWarnings(stack);
|
|
72
|
+
// Synth
|
|
73
|
+
app.synth();
|
|
74
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuYWxibGFtLXR3b1RhcmdldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5hbGJsYW0tdHdvVGFyZ2V0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsVUFBVTtBQUNWLDZDQUE2RDtBQUM3RCxnQ0FBdUQ7QUFDdkQseURBQXdFO0FBQ3hFLGlEQUFpRDtBQUNqRCw4REFBOEQ7QUFDOUQsMkRBQTJEO0FBRzNELGlGQUFpRjtBQUNqRix5RkFBeUY7QUFDekYsMkVBQTJFO0FBRTNFLFFBQVE7QUFDUixNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsR0FBRyxFQUFFLDZCQUFzQixDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQy9ELEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFO0NBQ3RELENBQUMsQ0FBQztBQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLGdEQUFnRCxDQUFDO0FBRXJGLE1BQU0sS0FBSyxHQUFxQjtJQUM5QixtQkFBbUIsRUFBRTtRQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLFNBQVMsQ0FBQztRQUNsRCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1FBQ25DLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsUUFBUSxFQUFFLE1BQU07S0FDakI7SUFDRCxTQUFTLEVBQUUsSUFBSTtJQUNmLHFCQUFxQixFQUFFO1FBQ3JCLGFBQWEsRUFBRSwyQkFBYSxDQUFDLE9BQU87UUFDcEMsaUJBQWlCLEVBQUUsSUFBSTtLQUN4QjtDQUNGLENBQUM7QUFDRixNQUFNLGNBQWMsR0FBRyxJQUFJLGlCQUFXLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUVqRSxNQUFNLFdBQVcsR0FBcUI7SUFDcEMsbUJBQW1CLEVBQUU7UUFDbkIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxTQUFTLENBQUM7UUFDbEQsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztRQUNuQyxPQUFPLEVBQUUsZUFBZTtLQUN6QjtJQUNELFNBQVMsRUFBRTtRQUNULFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzdELFFBQVEsRUFBRSxFQUFFO0tBQ2I7SUFDRCxXQUFXLEVBQUUsY0FBYyxDQUFDLEdBQUc7SUFDL0IsdUJBQXVCLEVBQUUsY0FBYyxDQUFDLFlBQVk7SUFDcEQsU0FBUyxFQUFFLElBQUk7Q0FDaEIsQ0FBQztBQUNGLElBQUksaUJBQVcsQ0FBQyxLQUFLLEVBQUUsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBRWhELFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFO0lBQ3BELEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsd0VBQXdFLEVBQUU7Q0FDaEcsQ0FBQyxDQUFDO0FBRUgsTUFBTSxnQkFBZ0IsR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQWdDLENBQUM7QUFDekgsUUFBUSxDQUFDLG1CQUFtQixDQUFDLGdCQUFnQixFQUFFO0lBQzdDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsMkNBQTJDLEVBQUM7SUFDakUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSw4QkFBOEIsRUFBQztJQUNuRCxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLDhCQUE4QixFQUFDO0NBQ3BELENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsRCxRQUFRO0FBQ1IsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8gSW1wb3J0c1xuaW1wb3J0IHsgQXdzLCBBcHAsIFN0YWNrLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBBbGJUb0xhbWJkYSwgQWxiVG9MYW1iZGFQcm9wcyB9IGZyb20gXCIuLi9saWJcIjtcbmltcG9ydCB7IGdlbmVyYXRlSW50ZWdTdGFja05hbWUgfSBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgZWxiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1lbGFzdGljbG9hZGJhbGFuY2luZ3YyJztcbmltcG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5pbXBvcnQgeyBDZm5TZWN1cml0eUdyb3VwIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcblxuLy8gTm90ZTogQWxsIGludGVncmF0aW9uIHRlc3RzIGZvciBhbGIgYXJlIGZvciBIVFRQIEFQSXMsIGFzIGNlcnRpZmljYXRlcyByZXF1aXJlXG4vLyB2YWxpZGF0aW9uIHRocm91Z2ggRE5TIGFuZCBlbWFpbC4gVGhpcyB2YWxpZGF0aW9uIGlzIGltcG9zc2libGUgZHVyaW5nIG91ciBpbnRlZ3JhdGlvblxuLy8gdGVzdHMgYW5kIHRoZSBzdGFjayB3aWxsIGZhaWwgdG8gbGF1bmNoIHdpdGggYW4gdW52YWxpZGF0ZWQgY2VydGlmaWNhdGUuXG5cbi8vIFNldHVwXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5jb25zdCBzdGFjayA9IG5ldyBTdGFjayhhcHAsIGdlbmVyYXRlSW50ZWdTdGFja05hbWUoX19maWxlbmFtZSksIHtcbiAgZW52OiB7IGFjY291bnQ6IEF3cy5BQ0NPVU5UX0lELCByZWdpb246ICd1cy1lYXN0LTEnIH0sXG59KTtcbnN0YWNrLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9ICdJbnRlZ3JhdGlvbiB0ZXN0IGZvciBhbGIgd2l0aCAyIExhbWJkYSB0YXJnZXRzJztcblxuY29uc3QgcHJvcHM6IEFsYlRvTGFtYmRhUHJvcHMgPSB7XG4gIGxhbWJkYUZ1bmN0aW9uUHJvcHM6IHtcbiAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoYCR7X19kaXJuYW1lfS9sYW1iZGFgKSxcbiAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTZfWCxcbiAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcidcbiAgfSxcbiAgbGlzdGVuZXJQcm9wczoge1xuICAgIHByb3RvY29sOiAnSFRUUCdcbiAgfSxcbiAgcHVibGljQXBpOiB0cnVlLFxuICBhbGJMb2dnaW5nQnVja2V0UHJvcHM6IHtcbiAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWVcbiAgfVxufTtcbmNvbnN0IGZpcnN0Q29uc3RydWN0ID0gbmV3IEFsYlRvTGFtYmRhKHN0YWNrLCAndGVzdC1vbmUnLCBwcm9wcyk7XG5cbmNvbnN0IHNlY29uZFByb3BzOiBBbGJUb0xhbWJkYVByb3BzID0ge1xuICBsYW1iZGFGdW5jdGlvblByb3BzOiB7XG4gICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGAke19fZGlybmFtZX0vbGFtYmRhYCksXG4gICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE2X1gsXG4gICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInXG4gIH0sXG4gIHJ1bGVQcm9wczoge1xuICAgIGNvbmRpdGlvbnM6IFtlbGIuTGlzdGVuZXJDb25kaXRpb24ucGF0aFBhdHRlcm5zKFtcIiphZG1pbipcIl0pXSxcbiAgICBwcmlvcml0eTogMTBcbiAgfSxcbiAgZXhpc3RpbmdWcGM6IGZpcnN0Q29uc3RydWN0LnZwYyxcbiAgZXhpc3RpbmdMb2FkQmFsYW5jZXJPYmo6IGZpcnN0Q29uc3RydWN0LmxvYWRCYWxhbmNlcixcbiAgcHVibGljQXBpOiB0cnVlXG59O1xubmV3IEFsYlRvTGFtYmRhKHN0YWNrLCAndGVzdC10d28nLCBzZWNvbmRQcm9wcyk7XG5cbmRlZmF1bHRzLmFkZENmblN1cHByZXNzUnVsZXMoZmlyc3RDb25zdHJ1Y3QubGlzdGVuZXIsIFtcbiAgeyBpZDogJ1c1NicsIHJlYXNvbjogJ0FsbCBpbnRlZ3JhdGlvbiB0ZXN0cyBtdXN0IGJlIEhUVFAgYmVjYXVzZSBvZiBjZXJ0aWZpY2F0ZSBsaW1pdGF0aW9ucy4nIH0sXG5dKTtcblxuY29uc3QgbmV3U2VjdXJpdHlHcm91cCA9IGZpcnN0Q29uc3RydWN0LmxvYWRCYWxhbmNlci5jb25uZWN0aW9ucy5zZWN1cml0eUdyb3Vwc1swXS5ub2RlLmRlZmF1bHRDaGlsZCBhcyBDZm5TZWN1cml0eUdyb3VwO1xuZGVmYXVsdHMuYWRkQ2ZuU3VwcHJlc3NSdWxlcyhuZXdTZWN1cml0eUdyb3VwLCBbXG4gIHsgaWQ6ICdXMjknLCByZWFzb246ICdDREsgY3JlYXRlZCBydWxlIHRoYXQgYmxvY2tzIGFsbCB0cmFmZmljLid9LFxuICB7IGlkOiAnVzInLCByZWFzb246ICdSdWxlIGRvZXMgbm90IGFwcGx5IGZvciBFTEIuJ30sXG4gIHsgaWQ6ICdXOScsIHJlYXNvbjogJ1J1bGUgZG9lcyBub3QgYXBwbHkgZm9yIEVMQi4nfVxuXSk7XG5cbmRlZmF1bHRzLnN1cHByZXNzQXV0b0RlbGV0ZUhhbmRsZXJXYXJuaW5ncyhzdGFjayk7XG4vLyBTeW50aFxuYXBwLnN5bnRoKCk7XG4iXX0=
|
|
@@ -1,80 +0,0 @@
|
|
|
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
|
-
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
|
22
|
-
// Note: All integration tests for alb are for HTTP APIs, as certificates require
|
|
23
|
-
// validation through DNS and email. This validation is impossible during our integration
|
|
24
|
-
// tests and the stack will fail to launch with an unvalidated certificate.
|
|
25
|
-
// Setup
|
|
26
|
-
const app = new aws_cdk_lib_1.App();
|
|
27
|
-
const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename), {
|
|
28
|
-
env: { account: aws_cdk_lib_1.Aws.ACCOUNT_ID, region: 'us-east-1' },
|
|
29
|
-
});
|
|
30
|
-
stack.templateOptions.description = 'Integration Test for private HTTP API with a existing function and ALB';
|
|
31
|
-
const myVpc = defaults.getTestVpc(stack);
|
|
32
|
-
const testSg = new aws_ec2_1.SecurityGroup(stack, 'lambda-sg', { vpc: myVpc, allowAllOutbound: false });
|
|
33
|
-
const lambdaFunction = defaults.buildLambdaFunction(stack, {
|
|
34
|
-
lambdaFunctionProps: {
|
|
35
|
-
code: lambda.Code.fromAsset(`${__dirname}/lambda`),
|
|
36
|
-
runtime: lambda.Runtime.NODEJS_16_X,
|
|
37
|
-
handler: 'index.handler',
|
|
38
|
-
vpc: myVpc,
|
|
39
|
-
securityGroups: [testSg]
|
|
40
|
-
}
|
|
41
|
-
});
|
|
42
|
-
const loadBalancer = defaults.ObtainAlb(stack, 'existing-alb', {
|
|
43
|
-
vpc: myVpc,
|
|
44
|
-
publicApi: false,
|
|
45
|
-
loadBalancerProps: {
|
|
46
|
-
internetFacing: false,
|
|
47
|
-
vpc: myVpc,
|
|
48
|
-
},
|
|
49
|
-
logAccessLogs: true,
|
|
50
|
-
loggingBucketProps: {
|
|
51
|
-
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
|
|
52
|
-
autoDeleteObjects: true
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
const props = {
|
|
56
|
-
existingLambdaObj: lambdaFunction,
|
|
57
|
-
existingLoadBalancerObj: loadBalancer,
|
|
58
|
-
existingVpc: myVpc,
|
|
59
|
-
listenerProps: {
|
|
60
|
-
protocol: 'HTTP'
|
|
61
|
-
},
|
|
62
|
-
publicApi: false
|
|
63
|
-
};
|
|
64
|
-
const albToLambda = new lib_1.AlbToLambda(stack, 'test-one', props);
|
|
65
|
-
defaults.addCfnSuppressRules(albToLambda.listener, [
|
|
66
|
-
{ id: 'W56', reason: 'All integration tests must be HTTP because of certificate limitations.' },
|
|
67
|
-
]);
|
|
68
|
-
const newSecurityGroup = albToLambda.loadBalancer.connections.securityGroups[0].node.defaultChild;
|
|
69
|
-
defaults.addCfnSuppressRules(newSecurityGroup, [
|
|
70
|
-
{ id: 'W29', reason: 'CDK created rule that blocks all traffic.' },
|
|
71
|
-
{ id: 'W2', reason: 'Rule does not apply for ELB.' },
|
|
72
|
-
{ id: 'W9', reason: 'Rule does not apply for ELB.' }
|
|
73
|
-
]);
|
|
74
|
-
defaults.addCfnSuppressRules(testSg, [
|
|
75
|
-
{ id: 'W29', reason: 'CDK created rule that blocks all traffic.' },
|
|
76
|
-
]);
|
|
77
|
-
defaults.suppressAutoDeleteHandlerWarnings(stack);
|
|
78
|
-
// Synth
|
|
79
|
-
app.synth();
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcucHJpdmF0ZUFwaUV4aXN0aW5nUmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZWcucHJpdmF0ZUFwaUV4aXN0aW5nUmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFFSCxVQUFVO0FBQ1YsNkNBQTZEO0FBQzdELGdDQUF1RDtBQUN2RCx5REFBd0U7QUFDeEUsaURBQWlEO0FBQ2pELDJEQUEyRDtBQUMzRCxpREFBc0U7QUFFdEUsaUZBQWlGO0FBQ2pGLHlGQUF5RjtBQUN6RiwyRUFBMkU7QUFFM0UsUUFBUTtBQUNSLE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssQ0FBQyxHQUFHLEVBQUUsNkJBQXNCLENBQUMsVUFBVSxDQUFDLEVBQUU7SUFDL0QsR0FBRyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFHLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUU7Q0FDdEQsQ0FBQyxDQUFDO0FBQ0gsS0FBSyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsd0VBQXdFLENBQUM7QUFFN0csTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUV6QyxNQUFNLE1BQU0sR0FBRyxJQUFJLHVCQUFhLENBQUMsS0FBSyxFQUFFLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsS0FBSyxFQUFDLENBQUMsQ0FBQztBQUU3RixNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFO0lBQ3pELG1CQUFtQixFQUFFO1FBQ25CLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsU0FBUyxDQUFDO1FBQ2xELE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7UUFDbkMsT0FBTyxFQUFFLGVBQWU7UUFDeEIsR0FBRyxFQUFFLEtBQUs7UUFDVixjQUFjLEVBQUUsQ0FBRSxNQUFNLENBQUU7S0FDM0I7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7SUFDN0QsR0FBRyxFQUFFLEtBQUs7SUFDVixTQUFTLEVBQUUsS0FBSztJQUNoQixpQkFBaUIsRUFBRTtRQUNqQixjQUFjLEVBQUUsS0FBSztRQUNyQixHQUFHLEVBQUUsS0FBSztLQUNYO0lBQ0QsYUFBYSxFQUFFLElBQUk7SUFDbkIsa0JBQWtCLEVBQUU7UUFDbEIsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztRQUNwQyxpQkFBaUIsRUFBRSxJQUFJO0tBQ3hCO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxLQUFLLEdBQXFCO0lBQzlCLGlCQUFpQixFQUFFLGNBQWM7SUFDakMsdUJBQXVCLEVBQUUsWUFBWTtJQUNyQyxXQUFXLEVBQUUsS0FBSztJQUNsQixhQUFhLEVBQUU7UUFDYixRQUFRLEVBQUUsTUFBTTtLQUNqQjtJQUNELFNBQVMsRUFBRSxLQUFLO0NBQ2pCLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRyxJQUFJLGlCQUFXLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUU5RCxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtJQUNqRCxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLHdFQUF3RSxFQUFFO0NBQ2hHLENBQUMsQ0FBQztBQUVILE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFnQyxDQUFDO0FBQ3RILFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRTtJQUM3QyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLDJDQUEyQyxFQUFDO0lBQ2pFLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsOEJBQThCLEVBQUM7SUFDbkQsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSw4QkFBOEIsRUFBQztDQUNwRCxDQUFDLENBQUM7QUFFSCxRQUFRLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFO0lBQ25DLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsMkNBQTJDLEVBQUM7Q0FDbEUsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xELFFBQVE7QUFDUixHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgeyBBd3MsIEFwcCwgU3RhY2ssIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEFsYlRvTGFtYmRhLCBBbGJUb0xhbWJkYVByb3BzIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZSB9IGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0IHsgU2VjdXJpdHlHcm91cCwgQ2ZuU2VjdXJpdHlHcm91cCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5cbi8vIE5vdGU6IEFsbCBpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgYWxiIGFyZSBmb3IgSFRUUCBBUElzLCBhcyBjZXJ0aWZpY2F0ZXMgcmVxdWlyZVxuLy8gdmFsaWRhdGlvbiB0aHJvdWdoIEROUyBhbmQgZW1haWwuIFRoaXMgdmFsaWRhdGlvbiBpcyBpbXBvc3NpYmxlIGR1cmluZyBvdXIgaW50ZWdyYXRpb25cbi8vIHRlc3RzIGFuZCB0aGUgc3RhY2sgd2lsbCBmYWlsIHRvIGxhdW5jaCB3aXRoIGFuIHVudmFsaWRhdGVkIGNlcnRpZmljYXRlLlxuXG4vLyBTZXR1cFxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpLCB7XG4gIGVudjogeyBhY2NvdW50OiBBd3MuQUNDT1VOVF9JRCwgcmVnaW9uOiAndXMtZWFzdC0xJyB9LFxufSk7XG5zdGFjay50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24gPSAnSW50ZWdyYXRpb24gVGVzdCBmb3IgcHJpdmF0ZSBIVFRQIEFQSSB3aXRoIGEgZXhpc3RpbmcgZnVuY3Rpb24gYW5kIEFMQic7XG5cbmNvbnN0IG15VnBjID0gZGVmYXVsdHMuZ2V0VGVzdFZwYyhzdGFjayk7XG5cbmNvbnN0IHRlc3RTZyA9IG5ldyBTZWN1cml0eUdyb3VwKHN0YWNrLCAnbGFtYmRhLXNnJywgeyB2cGM6IG15VnBjLCBhbGxvd0FsbE91dGJvdW5kOiBmYWxzZX0pO1xuXG5jb25zdCBsYW1iZGFGdW5jdGlvbiA9IGRlZmF1bHRzLmJ1aWxkTGFtYmRhRnVuY3Rpb24oc3RhY2ssIHtcbiAgbGFtYmRhRnVuY3Rpb25Qcm9wczoge1xuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYWApLFxuICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xNl9YLFxuICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICB2cGM6IG15VnBjLFxuICAgIHNlY3VyaXR5R3JvdXBzOiBbIHRlc3RTZyBdXG4gIH1cbn0pO1xuXG5jb25zdCBsb2FkQmFsYW5jZXIgPSBkZWZhdWx0cy5PYnRhaW5BbGIoc3RhY2ssICdleGlzdGluZy1hbGInLCB7XG4gIHZwYzogbXlWcGMsXG4gIHB1YmxpY0FwaTogZmFsc2UsXG4gIGxvYWRCYWxhbmNlclByb3BzOiB7XG4gICAgaW50ZXJuZXRGYWNpbmc6IGZhbHNlLFxuICAgIHZwYzogbXlWcGMsXG4gIH0sXG4gIGxvZ0FjY2Vzc0xvZ3M6IHRydWUsXG4gIGxvZ2dpbmdCdWNrZXRQcm9wczoge1xuICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZVxuICB9XG59KTtcblxuY29uc3QgcHJvcHM6IEFsYlRvTGFtYmRhUHJvcHMgPSB7XG4gIGV4aXN0aW5nTGFtYmRhT2JqOiBsYW1iZGFGdW5jdGlvbixcbiAgZXhpc3RpbmdMb2FkQmFsYW5jZXJPYmo6IGxvYWRCYWxhbmNlcixcbiAgZXhpc3RpbmdWcGM6IG15VnBjLFxuICBsaXN0ZW5lclByb3BzOiB7XG4gICAgcHJvdG9jb2w6ICdIVFRQJ1xuICB9LFxuICBwdWJsaWNBcGk6IGZhbHNlXG59O1xuXG5jb25zdCBhbGJUb0xhbWJkYSA9IG5ldyBBbGJUb0xhbWJkYShzdGFjaywgJ3Rlc3Qtb25lJywgcHJvcHMpO1xuXG5kZWZhdWx0cy5hZGRDZm5TdXBwcmVzc1J1bGVzKGFsYlRvTGFtYmRhLmxpc3RlbmVyLCBbXG4gIHsgaWQ6ICdXNTYnLCByZWFzb246ICdBbGwgaW50ZWdyYXRpb24gdGVzdHMgbXVzdCBiZSBIVFRQIGJlY2F1c2Ugb2YgY2VydGlmaWNhdGUgbGltaXRhdGlvbnMuJyB9LFxuXSk7XG5cbmNvbnN0IG5ld1NlY3VyaXR5R3JvdXAgPSBhbGJUb0xhbWJkYS5sb2FkQmFsYW5jZXIuY29ubmVjdGlvbnMuc2VjdXJpdHlHcm91cHNbMF0ubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuU2VjdXJpdHlHcm91cDtcbmRlZmF1bHRzLmFkZENmblN1cHByZXNzUnVsZXMobmV3U2VjdXJpdHlHcm91cCwgW1xuICB7IGlkOiAnVzI5JywgcmVhc29uOiAnQ0RLIGNyZWF0ZWQgcnVsZSB0aGF0IGJsb2NrcyBhbGwgdHJhZmZpYy4nfSxcbiAgeyBpZDogJ1cyJywgcmVhc29uOiAnUnVsZSBkb2VzIG5vdCBhcHBseSBmb3IgRUxCLid9LFxuICB7IGlkOiAnVzknLCByZWFzb246ICdSdWxlIGRvZXMgbm90IGFwcGx5IGZvciBFTEIuJ31cbl0pO1xuXG5kZWZhdWx0cy5hZGRDZm5TdXBwcmVzc1J1bGVzKHRlc3RTZywgW1xuICB7IGlkOiAnVzI5JywgcmVhc29uOiAnQ0RLIGNyZWF0ZWQgcnVsZSB0aGF0IGJsb2NrcyBhbGwgdHJhZmZpYy4nfSxcbl0pO1xuXG5kZWZhdWx0cy5zdXBwcmVzc0F1dG9EZWxldGVIYW5kbGVyV2FybmluZ3Moc3RhY2spO1xuLy8gU3ludGhcbmFwcC5zeW50aCgpO1xuIl19
|
|
@@ -1,58 +0,0 @@
|
|
|
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 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: false,
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcucHJpdmF0ZUFwaU5ld1Jlc291cmNlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVnLnByaXZhdGVBcGlOZXdSZXNvdXJjZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILFVBQVU7QUFDViw2Q0FBNkQ7QUFDN0QsZ0NBQXVEO0FBQ3ZELHlEQUF3RTtBQUN4RSxpREFBaUQ7QUFDakQsMkRBQTJEO0FBRzNELGlGQUFpRjtBQUNqRix5RkFBeUY7QUFDekYsMkVBQTJFO0FBRTNFLFFBQVE7QUFDUixNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsR0FBRyxFQUFFLDZCQUFzQixDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQy9ELEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFO0NBQ3RELENBQUMsQ0FBQztBQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLDJEQUEyRCxDQUFDO0FBRWhHLE1BQU0sS0FBSyxHQUFxQjtJQUM5QixtQkFBbUIsRUFBRTtRQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLFNBQVMsQ0FBQztRQUNsRCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1FBQ25DLE9BQU8sRUFBRSxlQUFlO0tBQ3pCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsUUFBUSxFQUFFLE1BQU07S0FDakI7SUFDRCxTQUFTLEVBQUUsS0FBSztJQUNoQixxQkFBcUIsRUFBRTtRQUNyQixhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1FBQ3BDLGlCQUFpQixFQUFFLElBQUk7S0FDeEI7Q0FDRixDQUFDO0FBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQkFBVyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFOUQsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUU7SUFDakQsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSx3RUFBd0UsRUFBRTtDQUNoRyxDQUFDLENBQUM7QUFFSCxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBZ0MsQ0FBQztBQUN0SCxRQUFRLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUU7SUFDN0MsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSwyQ0FBMkMsRUFBQztJQUNqRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLDhCQUE4QixFQUFDO0lBQ25ELEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsOEJBQThCLEVBQUM7Q0FDcEQsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xELFFBQVE7QUFDUixHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgeyBBd3MsIEFwcCwgU3RhY2ssIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEFsYlRvTGFtYmRhLCBBbGJUb0xhbWJkYVByb3BzIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZSB9IGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0IHsgQ2ZuU2VjdXJpdHlHcm91cCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5cbi8vIE5vdGU6IEFsbCBpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgYWxiIGFyZSBmb3IgSFRUUCBBUElzLCBhcyBjZXJ0aWZpY2F0ZXMgcmVxdWlyZVxuLy8gdmFsaWRhdGlvbiB0aHJvdWdoIEROUyBhbmQgZW1haWwuIFRoaXMgdmFsaWRhdGlvbiBpcyBpbXBvc3NpYmxlIGR1cmluZyBvdXIgaW50ZWdyYXRpb25cbi8vIHRlc3RzIGFuZCB0aGUgc3RhY2sgd2lsbCBmYWlsIHRvIGxhdW5jaCB3aXRoIGFuIHVudmFsaWRhdGVkIGNlcnRpZmljYXRlLlxuXG4vLyBTZXR1cFxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpLCB7XG4gIGVudjogeyBhY2NvdW50OiBBd3MuQUNDT1VOVF9JRCwgcmVnaW9uOiAndXMtZWFzdC0xJyB9LFxufSk7XG5zdGFjay50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24gPSAnSW50ZWdyYXRpb24gVGVzdCBmb3IgSFRUUCBBUEkgd2l0aCBhIG5ldyBmdW5jdGlvbiBhbmQgQUxCJztcblxuY29uc3QgcHJvcHM6IEFsYlRvTGFtYmRhUHJvcHMgPSB7XG4gIGxhbWJkYUZ1bmN0aW9uUHJvcHM6IHtcbiAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoYCR7X19kaXJuYW1lfS9sYW1iZGFgKSxcbiAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTZfWCxcbiAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcidcbiAgfSxcbiAgbGlzdGVuZXJQcm9wczoge1xuICAgIHByb3RvY29sOiAnSFRUUCdcbiAgfSxcbiAgcHVibGljQXBpOiBmYWxzZSxcbiAgYWxiTG9nZ2luZ0J1Y2tldFByb3BzOiB7XG4gICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlXG4gIH1cbn07XG5jb25zdCBhbGJUb0xhbWJkYSA9IG5ldyBBbGJUb0xhbWJkYShzdGFjaywgJ3Rlc3Qtb25lJywgcHJvcHMpO1xuXG5kZWZhdWx0cy5hZGRDZm5TdXBwcmVzc1J1bGVzKGFsYlRvTGFtYmRhLmxpc3RlbmVyLCBbXG4gIHsgaWQ6ICdXNTYnLCByZWFzb246ICdBbGwgaW50ZWdyYXRpb24gdGVzdHMgbXVzdCBiZSBIVFRQIGJlY2F1c2Ugb2YgY2VydGlmaWNhdGUgbGltaXRhdGlvbnMuJyB9LFxuXSk7XG5cbmNvbnN0IG5ld1NlY3VyaXR5R3JvdXAgPSBhbGJUb0xhbWJkYS5sb2FkQmFsYW5jZXIuY29ubmVjdGlvbnMuc2VjdXJpdHlHcm91cHNbMF0ubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuU2VjdXJpdHlHcm91cDtcbmRlZmF1bHRzLmFkZENmblN1cHByZXNzUnVsZXMobmV3U2VjdXJpdHlHcm91cCwgW1xuICB7IGlkOiAnVzI5JywgcmVhc29uOiAnQ0RLIGNyZWF0ZWQgcnVsZSB0aGF0IGJsb2NrcyBhbGwgdHJhZmZpYy4nfSxcbiAgeyBpZDogJ1cyJywgcmVhc29uOiAnUnVsZSBkb2VzIG5vdCBhcHBseSBmb3IgRUxCLid9LFxuICB7IGlkOiAnVzknLCByZWFzb246ICdSdWxlIGRvZXMgbm90IGFwcGx5IGZvciBFTEIuJ31cbl0pO1xuXG5kZWZhdWx0cy5zdXBwcmVzc0F1dG9EZWxldGVIYW5kbGVyV2FybmluZ3Moc3RhY2spO1xuLy8gU3ludGhcbmFwcC5zeW50aCgpO1xuIl19
|
|
@@ -1,88 +0,0 @@
|
|
|
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
|
-
const aws_ec2_1 = require("aws-cdk-lib/aws-ec2");
|
|
22
|
-
// Note: All integration tests for alb are for HTTP APIs, as certificates require
|
|
23
|
-
// validation through DNS and email. This validation is impossible during our integration
|
|
24
|
-
// tests and the stack will fail to launch with an unvalidated certificate.
|
|
25
|
-
// Setup
|
|
26
|
-
const app = new aws_cdk_lib_1.App();
|
|
27
|
-
const stack = new aws_cdk_lib_1.Stack(app, core_1.generateIntegStackName(__filename), {
|
|
28
|
-
env: { account: aws_cdk_lib_1.Aws.ACCOUNT_ID, region: "us-east-1" },
|
|
29
|
-
});
|
|
30
|
-
stack.templateOptions.description =
|
|
31
|
-
"Integration Test for public HTTP API with a existing function and ALB";
|
|
32
|
-
const myVpc = defaults.getTestVpc(stack);
|
|
33
|
-
const testSg = new aws_ec2_1.SecurityGroup(stack, "lambda-sg", {
|
|
34
|
-
vpc: myVpc,
|
|
35
|
-
allowAllOutbound: false,
|
|
36
|
-
});
|
|
37
|
-
const lambdaFunction = defaults.buildLambdaFunction(stack, {
|
|
38
|
-
lambdaFunctionProps: {
|
|
39
|
-
code: lambda.Code.fromAsset(`${__dirname}/lambda`),
|
|
40
|
-
runtime: lambda.Runtime.NODEJS_16_X,
|
|
41
|
-
handler: "index.handler",
|
|
42
|
-
vpc: myVpc,
|
|
43
|
-
securityGroups: [testSg],
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
const loadBalancer = defaults.ObtainAlb(stack, "existing-alb", {
|
|
47
|
-
vpc: myVpc,
|
|
48
|
-
publicApi: false,
|
|
49
|
-
loadBalancerProps: {
|
|
50
|
-
internetFacing: false,
|
|
51
|
-
vpc: myVpc,
|
|
52
|
-
},
|
|
53
|
-
logAccessLogs: true,
|
|
54
|
-
loggingBucketProps: {
|
|
55
|
-
removalPolicy: aws_cdk_lib_1.RemovalPolicy.DESTROY,
|
|
56
|
-
autoDeleteObjects: true,
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
const props = {
|
|
60
|
-
existingLambdaObj: lambdaFunction,
|
|
61
|
-
existingLoadBalancerObj: loadBalancer,
|
|
62
|
-
existingVpc: myVpc,
|
|
63
|
-
listenerProps: {
|
|
64
|
-
protocol: "HTTP",
|
|
65
|
-
},
|
|
66
|
-
publicApi: true,
|
|
67
|
-
};
|
|
68
|
-
const albToLambda = new lib_1.AlbToLambda(stack, "test-one", props);
|
|
69
|
-
defaults.addCfnSuppressRules(albToLambda.listener, [
|
|
70
|
-
{
|
|
71
|
-
id: "W56",
|
|
72
|
-
reason: "All integration tests must be HTTP because of certificate limitations.",
|
|
73
|
-
},
|
|
74
|
-
]);
|
|
75
|
-
const newSecurityGroup = albToLambda.loadBalancer.connections.securityGroups[0]
|
|
76
|
-
.node.defaultChild;
|
|
77
|
-
defaults.addCfnSuppressRules(newSecurityGroup, [
|
|
78
|
-
{ id: "W29", reason: "CDK created rule that blocks all traffic." },
|
|
79
|
-
{ id: "W2", reason: "Rule does not apply for ELB." },
|
|
80
|
-
{ id: "W9", reason: "Rule does not apply for ELB." },
|
|
81
|
-
]);
|
|
82
|
-
defaults.addCfnSuppressRules(testSg, [
|
|
83
|
-
{ id: "W29", reason: "CDK created rule that blocks all traffic." },
|
|
84
|
-
]);
|
|
85
|
-
defaults.suppressAutoDeleteHandlerWarnings(stack);
|
|
86
|
-
// Synth
|
|
87
|
-
app.synth();
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcucHVibGljQXBpRXhpc3RpbmdSZXNvdXJjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbnRlZy5wdWJsaWNBcGlFeGlzdGluZ1Jlc291cmNlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsVUFBVTtBQUNWLDZDQUE2RDtBQUM3RCxnQ0FBdUQ7QUFDdkQseURBQXdFO0FBQ3hFLGlEQUFpRDtBQUNqRCwyREFBMkQ7QUFDM0QsaURBQXNFO0FBRXRFLGlGQUFpRjtBQUNqRix5RkFBeUY7QUFDekYsMkVBQTJFO0FBRTNFLFFBQVE7QUFDUixNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsR0FBRyxFQUFFLDZCQUFzQixDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQy9ELEdBQUcsRUFBRSxFQUFFLE9BQU8sRUFBRSxpQkFBRyxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFO0NBQ3RELENBQUMsQ0FBQztBQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVztJQUMvQix1RUFBdUUsQ0FBQztBQUUxRSxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBRXpDLE1BQU0sTUFBTSxHQUFHLElBQUksdUJBQWEsQ0FBQyxLQUFLLEVBQUUsV0FBVyxFQUFFO0lBQ25ELEdBQUcsRUFBRSxLQUFLO0lBQ1YsZ0JBQWdCLEVBQUUsS0FBSztDQUN4QixDQUFDLENBQUM7QUFFSCxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFO0lBQ3pELG1CQUFtQixFQUFFO1FBQ25CLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsU0FBUyxDQUFDO1FBQ2xELE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFdBQVc7UUFDbkMsT0FBTyxFQUFFLGVBQWU7UUFDeEIsR0FBRyxFQUFFLEtBQUs7UUFDVixjQUFjLEVBQUUsQ0FBQyxNQUFNLENBQUM7S0FDekI7Q0FDRixDQUFDLENBQUM7QUFFSCxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7SUFDN0QsR0FBRyxFQUFFLEtBQUs7SUFDVixTQUFTLEVBQUUsS0FBSztJQUNoQixpQkFBaUIsRUFBRTtRQUNqQixjQUFjLEVBQUUsS0FBSztRQUNyQixHQUFHLEVBQUUsS0FBSztLQUNYO0lBQ0QsYUFBYSxFQUFFLElBQUk7SUFDbkIsa0JBQWtCLEVBQUU7UUFDbEIsYUFBYSxFQUFFLDJCQUFhLENBQUMsT0FBTztRQUNwQyxpQkFBaUIsRUFBRSxJQUFJO0tBQ3hCO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsTUFBTSxLQUFLLEdBQXFCO0lBQzlCLGlCQUFpQixFQUFFLGNBQWM7SUFDakMsdUJBQXVCLEVBQUUsWUFBWTtJQUNyQyxXQUFXLEVBQUUsS0FBSztJQUNsQixhQUFhLEVBQUU7UUFDYixRQUFRLEVBQUUsTUFBTTtLQUNqQjtJQUNELFNBQVMsRUFBRSxJQUFJO0NBQ2hCLENBQUM7QUFDRixNQUFNLFdBQVcsR0FBRyxJQUFJLGlCQUFXLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUU5RCxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRTtJQUNqRDtRQUNFLEVBQUUsRUFBRSxLQUFLO1FBQ1QsTUFBTSxFQUNKLHdFQUF3RTtLQUMzRTtDQUNGLENBQUMsQ0FBQztBQUVILE1BQU0sZ0JBQWdCLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQztLQUM1RSxJQUFJLENBQUMsWUFBZ0MsQ0FBQztBQUN6QyxRQUFRLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUU7SUFDN0MsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSwyQ0FBMkMsRUFBRTtJQUNsRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLDhCQUE4QixFQUFFO0lBQ3BELEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsOEJBQThCLEVBQUU7Q0FDckQsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sRUFBRTtJQUNuQyxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLDJDQUEyQyxFQUFFO0NBQ25FLENBQUMsQ0FBQztBQUVILFFBQVEsQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUNsRCxRQUFRO0FBQ1IsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8gSW1wb3J0c1xuaW1wb3J0IHsgQXdzLCBBcHAsIFN0YWNrLCBSZW1vdmFsUG9saWN5IH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBBbGJUb0xhbWJkYSwgQWxiVG9MYW1iZGFQcm9wcyB9IGZyb20gXCIuLi9saWJcIjtcbmltcG9ydCB7IGdlbmVyYXRlSW50ZWdTdGFja05hbWUgfSBmcm9tIFwiQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlXCI7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIjtcbmltcG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gXCJAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmVcIjtcbmltcG9ydCB7IFNlY3VyaXR5R3JvdXAsIENmblNlY3VyaXR5R3JvdXAgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuXG4vLyBOb3RlOiBBbGwgaW50ZWdyYXRpb24gdGVzdHMgZm9yIGFsYiBhcmUgZm9yIEhUVFAgQVBJcywgYXMgY2VydGlmaWNhdGVzIHJlcXVpcmVcbi8vIHZhbGlkYXRpb24gdGhyb3VnaCBETlMgYW5kIGVtYWlsLiBUaGlzIHZhbGlkYXRpb24gaXMgaW1wb3NzaWJsZSBkdXJpbmcgb3VyIGludGVncmF0aW9uXG4vLyB0ZXN0cyBhbmQgdGhlIHN0YWNrIHdpbGwgZmFpbCB0byBsYXVuY2ggd2l0aCBhbiB1bnZhbGlkYXRlZCBjZXJ0aWZpY2F0ZS5cblxuLy8gU2V0dXBcbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbmNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZShfX2ZpbGVuYW1lKSwge1xuICBlbnY6IHsgYWNjb3VudDogQXdzLkFDQ09VTlRfSUQsIHJlZ2lvbjogXCJ1cy1lYXN0LTFcIiB9LFxufSk7XG5zdGFjay50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24gPVxuICBcIkludGVncmF0aW9uIFRlc3QgZm9yIHB1YmxpYyBIVFRQIEFQSSB3aXRoIGEgZXhpc3RpbmcgZnVuY3Rpb24gYW5kIEFMQlwiO1xuXG5jb25zdCBteVZwYyA9IGRlZmF1bHRzLmdldFRlc3RWcGMoc3RhY2spO1xuXG5jb25zdCB0ZXN0U2cgPSBuZXcgU2VjdXJpdHlHcm91cChzdGFjaywgXCJsYW1iZGEtc2dcIiwge1xuICB2cGM6IG15VnBjLFxuICBhbGxvd0FsbE91dGJvdW5kOiBmYWxzZSxcbn0pO1xuXG5jb25zdCBsYW1iZGFGdW5jdGlvbiA9IGRlZmF1bHRzLmJ1aWxkTGFtYmRhRnVuY3Rpb24oc3RhY2ssIHtcbiAgbGFtYmRhRnVuY3Rpb25Qcm9wczoge1xuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYWApLFxuICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xNl9YLFxuICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgIHZwYzogbXlWcGMsXG4gICAgc2VjdXJpdHlHcm91cHM6IFt0ZXN0U2ddLFxuICB9LFxufSk7XG5cbmNvbnN0IGxvYWRCYWxhbmNlciA9IGRlZmF1bHRzLk9idGFpbkFsYihzdGFjaywgXCJleGlzdGluZy1hbGJcIiwge1xuICB2cGM6IG15VnBjLFxuICBwdWJsaWNBcGk6IGZhbHNlLFxuICBsb2FkQmFsYW5jZXJQcm9wczoge1xuICAgIGludGVybmV0RmFjaW5nOiBmYWxzZSxcbiAgICB2cGM6IG15VnBjLFxuICB9LFxuICBsb2dBY2Nlc3NMb2dzOiB0cnVlLFxuICBsb2dnaW5nQnVja2V0UHJvcHM6IHtcbiAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgYXV0b0RlbGV0ZU9iamVjdHM6IHRydWUsXG4gIH1cbn0pO1xuXG5jb25zdCBwcm9wczogQWxiVG9MYW1iZGFQcm9wcyA9IHtcbiAgZXhpc3RpbmdMYW1iZGFPYmo6IGxhbWJkYUZ1bmN0aW9uLFxuICBleGlzdGluZ0xvYWRCYWxhbmNlck9iajogbG9hZEJhbGFuY2VyLFxuICBleGlzdGluZ1ZwYzogbXlWcGMsXG4gIGxpc3RlbmVyUHJvcHM6IHtcbiAgICBwcm90b2NvbDogXCJIVFRQXCIsXG4gIH0sXG4gIHB1YmxpY0FwaTogdHJ1ZSxcbn07XG5jb25zdCBhbGJUb0xhbWJkYSA9IG5ldyBBbGJUb0xhbWJkYShzdGFjaywgXCJ0ZXN0LW9uZVwiLCBwcm9wcyk7XG5cbmRlZmF1bHRzLmFkZENmblN1cHByZXNzUnVsZXMoYWxiVG9MYW1iZGEubGlzdGVuZXIsIFtcbiAge1xuICAgIGlkOiBcIlc1NlwiLFxuICAgIHJlYXNvbjpcbiAgICAgIFwiQWxsIGludGVncmF0aW9uIHRlc3RzIG11c3QgYmUgSFRUUCBiZWNhdXNlIG9mIGNlcnRpZmljYXRlIGxpbWl0YXRpb25zLlwiLFxuICB9LFxuXSk7XG5cbmNvbnN0IG5ld1NlY3VyaXR5R3JvdXAgPSBhbGJUb0xhbWJkYS5sb2FkQmFsYW5jZXIuY29ubmVjdGlvbnMuc2VjdXJpdHlHcm91cHNbMF1cbiAgLm5vZGUuZGVmYXVsdENoaWxkIGFzIENmblNlY3VyaXR5R3JvdXA7XG5kZWZhdWx0cy5hZGRDZm5TdXBwcmVzc1J1bGVzKG5ld1NlY3VyaXR5R3JvdXAsIFtcbiAgeyBpZDogXCJXMjlcIiwgcmVhc29uOiBcIkNESyBjcmVhdGVkIHJ1bGUgdGhhdCBibG9ja3MgYWxsIHRyYWZmaWMuXCIgfSxcbiAgeyBpZDogXCJXMlwiLCByZWFzb246IFwiUnVsZSBkb2VzIG5vdCBhcHBseSBmb3IgRUxCLlwiIH0sXG4gIHsgaWQ6IFwiVzlcIiwgcmVhc29uOiBcIlJ1bGUgZG9lcyBub3QgYXBwbHkgZm9yIEVMQi5cIiB9LFxuXSk7XG5cbmRlZmF1bHRzLmFkZENmblN1cHByZXNzUnVsZXModGVzdFNnLCBbXG4gIHsgaWQ6IFwiVzI5XCIsIHJlYXNvbjogXCJDREsgY3JlYXRlZCBydWxlIHRoYXQgYmxvY2tzIGFsbCB0cmFmZmljLlwiIH0sXG5dKTtcblxuZGVmYXVsdHMuc3VwcHJlc3NBdXRvRGVsZXRlSGFuZGxlcldhcm5pbmdzKHN0YWNrKTtcbi8vIFN5bnRoXG5hcHAuc3ludGgoKTtcbiJdfQ==
|
|
@@ -1,58 +0,0 @@
|
|
|
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcucHVibGljQXBpTmV3UmVzb3VyY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZWcucHVibGljQXBpTmV3UmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFFSCxVQUFVO0FBQ1YsNkNBQTZEO0FBQzdELGdDQUF1RDtBQUN2RCx5REFBd0U7QUFDeEUsaURBQWlEO0FBQ2pELDJEQUEyRDtBQUczRCxpRkFBaUY7QUFDakYseUZBQXlGO0FBQ3pGLDJFQUEyRTtBQUUzRSxRQUFRO0FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSw2QkFBc0IsQ0FBQyxVQUFVLENBQUMsRUFBRTtJQUMvRCxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsaUJBQUcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRTtDQUN0RCxDQUFDLENBQUM7QUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLFdBQVcsR0FBRyxrRUFBa0UsQ0FBQztBQUV2RyxNQUFNLEtBQUssR0FBcUI7SUFDOUIsbUJBQW1CLEVBQUU7UUFDbkIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxTQUFTLENBQUM7UUFDbEQsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztRQUNuQyxPQUFPLEVBQUUsZUFBZTtLQUN6QjtJQUNELGFBQWEsRUFBRTtRQUNiLFFBQVEsRUFBRSxNQUFNO0tBQ2pCO0lBQ0QsU0FBUyxFQUFFLElBQUk7SUFDZixxQkFBcUIsRUFBRTtRQUNyQixhQUFhLEVBQUUsMkJBQWEsQ0FBQyxPQUFPO1FBQ3BDLGlCQUFpQixFQUFFLElBQUk7S0FDeEI7Q0FDRixDQUFDO0FBQ0YsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQkFBVyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFFOUQsUUFBUSxDQUFDLG1CQUFtQixDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUU7SUFDakQsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSx3RUFBd0UsRUFBRTtDQUNoRyxDQUFDLENBQUM7QUFFSCxNQUFNLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBZ0MsQ0FBQztBQUN0SCxRQUFRLENBQUMsbUJBQW1CLENBQUMsZ0JBQWdCLEVBQUU7SUFDN0MsRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSwyQ0FBMkMsRUFBQztJQUNqRSxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLDhCQUE4QixFQUFDO0lBQ25ELEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsOEJBQThCLEVBQUM7Q0FDcEQsQ0FBQyxDQUFDO0FBRUgsUUFBUSxDQUFDLGlDQUFpQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2xELFFBQVE7QUFDUixHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgeyBBd3MsIEFwcCwgU3RhY2ssIFJlbW92YWxQb2xpY3kgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEFsYlRvTGFtYmRhLCBBbGJUb0xhbWJkYVByb3BzIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZSB9IGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0IHsgQ2ZuU2VjdXJpdHlHcm91cCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5cbi8vIE5vdGU6IEFsbCBpbnRlZ3JhdGlvbiB0ZXN0cyBmb3IgYWxiIGFyZSBmb3IgSFRUUCBBUElzLCBhcyBjZXJ0aWZpY2F0ZXMgcmVxdWlyZVxuLy8gdmFsaWRhdGlvbiB0aHJvdWdoIEROUyBhbmQgZW1haWwuIFRoaXMgdmFsaWRhdGlvbiBpcyBpbXBvc3NpYmxlIGR1cmluZyBvdXIgaW50ZWdyYXRpb25cbi8vIHRlc3RzIGFuZCB0aGUgc3RhY2sgd2lsbCBmYWlsIHRvIGxhdW5jaCB3aXRoIGFuIHVudmFsaWRhdGVkIGNlcnRpZmljYXRlLlxuXG4vLyBTZXR1cFxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soYXBwLCBnZW5lcmF0ZUludGVnU3RhY2tOYW1lKF9fZmlsZW5hbWUpLCB7XG4gIGVudjogeyBhY2NvdW50OiBBd3MuQUNDT1VOVF9JRCwgcmVnaW9uOiAndXMtZWFzdC0xJyB9LFxufSk7XG5zdGFjay50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24gPSAnSW50ZWdyYXRpb24gVGVzdCBmb3IgcHVibGljIEhUVFAgQVBJIHdpdGggYSBuZXcgZnVuY3Rpb24gYW5kIEFMQic7XG5cbmNvbnN0IHByb3BzOiBBbGJUb0xhbWJkYVByb3BzID0ge1xuICBsYW1iZGFGdW5jdGlvblByb3BzOiB7XG4gICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGAke19fZGlybmFtZX0vbGFtYmRhYCksXG4gICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzE2X1gsXG4gICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInXG4gIH0sXG4gIGxpc3RlbmVyUHJvcHM6IHtcbiAgICBwcm90b2NvbDogJ0hUVFAnXG4gIH0sXG4gIHB1YmxpY0FwaTogdHJ1ZSxcbiAgYWxiTG9nZ2luZ0J1Y2tldFByb3BzOiB7XG4gICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlXG4gIH1cbn07XG5jb25zdCBhbGJUb0xhbWJkYSA9IG5ldyBBbGJUb0xhbWJkYShzdGFjaywgJ3Rlc3Qtb25lJywgcHJvcHMpO1xuXG5kZWZhdWx0cy5hZGRDZm5TdXBwcmVzc1J1bGVzKGFsYlRvTGFtYmRhLmxpc3RlbmVyLCBbXG4gIHsgaWQ6ICdXNTYnLCByZWFzb246ICdBbGwgaW50ZWdyYXRpb24gdGVzdHMgbXVzdCBiZSBIVFRQIGJlY2F1c2Ugb2YgY2VydGlmaWNhdGUgbGltaXRhdGlvbnMuJyB9LFxuXSk7XG5cbmNvbnN0IG5ld1NlY3VyaXR5R3JvdXAgPSBhbGJUb0xhbWJkYS5sb2FkQmFsYW5jZXIuY29ubmVjdGlvbnMuc2VjdXJpdHlHcm91cHNbMF0ubm9kZS5kZWZhdWx0Q2hpbGQgYXMgQ2ZuU2VjdXJpdHlHcm91cDtcbmRlZmF1bHRzLmFkZENmblN1cHByZXNzUnVsZXMobmV3U2VjdXJpdHlHcm91cCwgW1xuICB7IGlkOiAnVzI5JywgcmVhc29uOiAnQ0RLIGNyZWF0ZWQgcnVsZSB0aGF0IGJsb2NrcyBhbGwgdHJhZmZpYy4nfSxcbiAgeyBpZDogJ1cyJywgcmVhc29uOiAnUnVsZSBkb2VzIG5vdCBhcHBseSBmb3IgRUxCLid9LFxuICB7IGlkOiAnVzknLCByZWFzb246ICdSdWxlIGRvZXMgbm90IGFwcGx5IGZvciBFTEIuJ31cbl0pO1xuXG5kZWZhdWx0cy5zdXBwcmVzc0F1dG9EZWxldGVIYW5kbGVyV2FybmluZ3Moc3RhY2spO1xuLy8gU3ludGhcbmFwcC5zeW50aCgpO1xuIl19
|