@aws-solutions-constructs/aws-apigateway-lambda 2.98.0 → 2.100.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 +36 -9
- package/README.adoc +1 -1
- package/lib/index.js +3 -2
- package/package.json +6 -7
- package/test/apigateway-lambda.test.js +211 -0
- package/test/integ.apilam-deployFunction.js +2 -2
- package/test/integ.apilam-deployFunction.js.snapshot/apilam-deployFunction.assets.json +4 -18
- package/test/integ.apilam-deployFunction.js.snapshot/apilam-deployFunction.template.json +1 -4
- package/test/integ.apilam-deployFunction.js.snapshot/apilamdeployFunctionIntegDefaultTestDeployAssert281C111D.assets.json +1 -1
- package/test/integ.apilam-deployFunction.js.snapshot/cdk.out +1 -1
- package/test/integ.apilam-deployFunction.js.snapshot/integ.json +2 -2
- package/test/integ.apilam-deployFunction.js.snapshot/manifest.json +23 -25
- package/test/integ.apilam-deployFunction.js.snapshot/tree.json +1 -1
- package/test/integ.apilam-existingFunction.js +2 -2
- package/test/integ.apilam-existingFunction.js.snapshot/apilam-existingFunction.assets.json +4 -18
- package/test/integ.apilam-existingFunction.js.snapshot/apilam-existingFunction.template.json +1 -4
- package/test/integ.apilam-existingFunction.js.snapshot/apilamexistingFunctionIntegDefaultTestDeployAssert4238FD03.assets.json +1 -1
- package/test/integ.apilam-existingFunction.js.snapshot/cdk.out +1 -1
- package/test/integ.apilam-existingFunction.js.snapshot/integ.json +2 -2
- package/test/integ.apilam-existingFunction.js.snapshot/manifest.json +23 -25
- package/test/integ.apilam-existingFunction.js.snapshot/tree.json +1 -1
- package/test/integ.apilam-no-usage-plan.js +2 -2
- package/test/integ.apilam-no-usage-plan.js.snapshot/apilam-no-usage-plan.assets.json +4 -18
- package/test/integ.apilam-no-usage-plan.js.snapshot/apilam-no-usage-plan.template.json +1 -4
- package/test/integ.apilam-no-usage-plan.js.snapshot/apilamnousageplanIntegDefaultTestDeployAssertFA088EA5.assets.json +1 -1
- package/test/integ.apilam-no-usage-plan.js.snapshot/cdk.out +1 -1
- package/test/integ.apilam-no-usage-plan.js.snapshot/integ.json +2 -2
- package/test/integ.apilam-no-usage-plan.js.snapshot/manifest.json +23 -25
- package/test/integ.apilam-no-usage-plan.js.snapshot/tree.json +1 -1
- package/test/integ.apilam-deployFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js +0 -21
- package/test/integ.apilam-existingFunction.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js +0 -21
- package/test/integ.apilam-no-usage-plan.js.snapshot/asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640/index.js +0 -21
- package/test/test.apigateway-lambda.test.js +0 -194
- /package/test/{test.apigateway-lambda.test.d.ts → apigateway-lambda.test.d.ts} +0 -0
package/.jsii
CHANGED
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"@aws-solutions-constructs/core": "2.
|
|
12
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"@aws-solutions-constructs/core": "2.100.0",
|
|
12
|
+
"aws-cdk-lib": "^2.239.0",
|
|
13
13
|
"constructs": "^10.0.0"
|
|
14
14
|
},
|
|
15
15
|
"dependencyClosure": {
|
|
@@ -100,8 +100,7 @@
|
|
|
100
100
|
"dotnet": {
|
|
101
101
|
"iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png",
|
|
102
102
|
"namespace": "Amazon.SolutionsConstructs.AWS.Core",
|
|
103
|
-
"packageId": "Amazon.SolutionsConstructs.AWS.Core"
|
|
104
|
-
"signAssembly": true
|
|
103
|
+
"packageId": "Amazon.SolutionsConstructs.AWS.Core"
|
|
105
104
|
},
|
|
106
105
|
"java": {
|
|
107
106
|
"maven": {
|
|
@@ -2631,6 +2630,19 @@
|
|
|
2631
2630
|
}
|
|
2632
2631
|
}
|
|
2633
2632
|
},
|
|
2633
|
+
"aws-cdk-lib.aws_mwaaserverless": {
|
|
2634
|
+
"targets": {
|
|
2635
|
+
"dotnet": {
|
|
2636
|
+
"namespace": "Amazon.CDK.AWS.MWAAServerless"
|
|
2637
|
+
},
|
|
2638
|
+
"java": {
|
|
2639
|
+
"package": "software.amazon.awscdk.services.mwaaserverless"
|
|
2640
|
+
},
|
|
2641
|
+
"python": {
|
|
2642
|
+
"module": "aws_cdk.aws_mwaaserverless"
|
|
2643
|
+
}
|
|
2644
|
+
}
|
|
2645
|
+
},
|
|
2634
2646
|
"aws-cdk-lib.aws_neptune": {
|
|
2635
2647
|
"targets": {
|
|
2636
2648
|
"dotnet": {
|
|
@@ -6836,6 +6848,22 @@
|
|
|
6836
6848
|
}
|
|
6837
6849
|
}
|
|
6838
6850
|
},
|
|
6851
|
+
"aws-cdk-lib.interfaces.aws_mwaaserverless": {
|
|
6852
|
+
"targets": {
|
|
6853
|
+
"dotnet": {
|
|
6854
|
+
"namespace": "Amazon.CDK.Interfaces.MWAAServerless"
|
|
6855
|
+
},
|
|
6856
|
+
"go": {
|
|
6857
|
+
"packageName": "interfacesawsmwaaserverless"
|
|
6858
|
+
},
|
|
6859
|
+
"java": {
|
|
6860
|
+
"package": "software.amazon.awscdk.interfaces.mwaaserverless"
|
|
6861
|
+
},
|
|
6862
|
+
"python": {
|
|
6863
|
+
"module": "aws_cdk.interfaces.aws_mwaaserverless"
|
|
6864
|
+
}
|
|
6865
|
+
}
|
|
6866
|
+
},
|
|
6839
6867
|
"aws-cdk-lib.interfaces.aws_neptune": {
|
|
6840
6868
|
"targets": {
|
|
6841
6869
|
"dotnet": {
|
|
@@ -8492,7 +8520,7 @@
|
|
|
8492
8520
|
},
|
|
8493
8521
|
"description": "CDK constructs for defining an interaction between an API Gateway and a Lambda function.",
|
|
8494
8522
|
"homepage": "https://github.com/awslabs/aws-solutions-constructs.git",
|
|
8495
|
-
"jsiiVersion": "5.9.
|
|
8523
|
+
"jsiiVersion": "5.9.28 (build cbad63d)",
|
|
8496
8524
|
"keywords": [
|
|
8497
8525
|
"aws",
|
|
8498
8526
|
"cdk",
|
|
@@ -8523,8 +8551,7 @@
|
|
|
8523
8551
|
"dotnet": {
|
|
8524
8552
|
"iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png",
|
|
8525
8553
|
"namespace": "Amazon.SolutionsConstructs.AWS.ApiGatewayLambda",
|
|
8526
|
-
"packageId": "Amazon.SolutionsConstructs.AWS.ApiGatewayLambda"
|
|
8527
|
-
"signAssembly": true
|
|
8554
|
+
"packageId": "Amazon.SolutionsConstructs.AWS.ApiGatewayLambda"
|
|
8528
8555
|
},
|
|
8529
8556
|
"java": {
|
|
8530
8557
|
"maven": {
|
|
@@ -8753,6 +8780,6 @@
|
|
|
8753
8780
|
"symbolId": "lib/index:ApiGatewayToLambdaProps"
|
|
8754
8781
|
}
|
|
8755
8782
|
},
|
|
8756
|
-
"version": "2.
|
|
8757
|
-
"fingerprint": "
|
|
8783
|
+
"version": "2.100.0",
|
|
8784
|
+
"fingerprint": "F3qFbqq5YxzERWSo34mA5wsmOWsPzMuDECcdkYBV2lM="
|
|
8758
8785
|
}
|
package/README.adoc
CHANGED
|
@@ -69,7 +69,7 @@ from constructs import Construct
|
|
|
69
69
|
|
|
70
70
|
ApiGatewayToLambda(self, 'ApiGatewayToLambdaPattern',
|
|
71
71
|
lambda_function_props=_lambda.FunctionProps(
|
|
72
|
-
runtime=_lambda.Runtime.
|
|
72
|
+
runtime=_lambda.Runtime.PYTHON_3_14,
|
|
73
73
|
handler='index.handler',
|
|
74
74
|
code=_lambda.Code.from_asset('lambda')
|
|
75
75
|
)
|
package/lib/index.js
CHANGED
|
@@ -22,6 +22,7 @@ class ApiGatewayToLambda extends constructs_1.Construct {
|
|
|
22
22
|
super(scope, id);
|
|
23
23
|
defaults.CheckLambdaProps(props);
|
|
24
24
|
defaults.CheckApiProps(props);
|
|
25
|
+
defaults.ValidateLambdaRestApiProps(this, props.apiGatewayProps);
|
|
25
26
|
// Setup the Lambda function
|
|
26
27
|
this.lambdaFunction = defaults.buildLambdaFunction(this, {
|
|
27
28
|
existingLambdaObj: props.existingLambdaObj,
|
|
@@ -36,5 +37,5 @@ class ApiGatewayToLambda extends constructs_1.Construct {
|
|
|
36
37
|
}
|
|
37
38
|
exports.ApiGatewayToLambda = ApiGatewayToLambda;
|
|
38
39
|
_a = JSII_RTTI_SYMBOL_1;
|
|
39
|
-
ApiGatewayToLambda[_a] = { fqn: "@aws-solutions-constructs/aws-apigateway-lambda.ApiGatewayToLambda", version: "2.
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
ApiGatewayToLambda[_a] = { fqn: "@aws-solutions-constructs/aws-apigateway-lambda.ApiGatewayToLambda", version: "2.100.0" };
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWtCQSwyREFBMkQ7QUFDM0Qsd0ZBQXdGO0FBQ3hGLDJDQUF1QztBQXdDdkM7O0dBRUc7QUFDSCxNQUFhLGtCQUFtQixTQUFRLHNCQUFTO0lBTS9DOzs7Ozs7O09BT0c7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQThCO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakIsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUIsUUFBUSxDQUFDLDBCQUEwQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsZUFBZSxDQUFDLENBQUM7UUFFakUsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDLElBQUksRUFBRTtZQUN2RCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLG1CQUFtQixFQUFFLEtBQUssQ0FBQyxtQkFBbUI7U0FDL0MsQ0FBQyxDQUFDO1FBRUgsd0JBQXdCO1FBQ3hCLE1BQU0scUJBQXFCLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUN4RCxJQUFJLEVBQ0osSUFBSSxDQUFDLGNBQWMsRUFDbkIsS0FBSyxDQUFDLGVBQWUsRUFDckIsS0FBSyxDQUFDLGFBQWEsRUFDbkIsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcscUJBQXFCLENBQUMsR0FBRyxDQUFDO1FBQzVDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUM7UUFDM0QsSUFBSSxDQUFDLGtCQUFrQixHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQztJQUN4RCxDQUFDOztBQXBDSCxnREFxQ0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgKiBhcyBhcGkgZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXknO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogVGhlIHByb3BlcnRpZXMgZm9yIHRoZSBBcGlHYXRld2F5VG9MYW1iZGEgY2xhc3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXBpR2F0ZXdheVRvTGFtYmRhUHJvcHMge1xuICAvKipcbiAgICogRXhpc3RpbmcgaW5zdGFuY2Ugb2YgTGFtYmRhIEZ1bmN0aW9uIG9iamVjdCwgcHJvdmlkaW5nIGJvdGggdGhpcyBhbmQgYGxhbWJkYUZ1bmN0aW9uUHJvcHNgIHdpbGwgY2F1c2UgYW4gZXJyb3IuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdMYW1iZGFPYmo/OiBsYW1iZGEuRnVuY3Rpb24sXG4gIC8qKlxuICAgKiBPcHRpb25hbCAtIHVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBMYW1iZGEgZnVuY3Rpb24uIFByb3ZpZGluZyBib3RoIHRoaXMgYW5kIGBleGlzdGluZ0xhbWJkYU9iamBcbiAgICogY2F1c2VzIGFuIGVycm9yLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgcHJvcHMgYXJlIHVzZWQuXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFGdW5jdGlvblByb3BzPzogbGFtYmRhLkZ1bmN0aW9uUHJvcHMsXG4gIC8qKlxuICAgKiBPcHRpb25hbCAtIHVzZXItcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBBUEkgR2F0ZXdheSBBUEkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZC5cbiAgICovXG4gIHJlYWRvbmx5IGFwaUdhdGV3YXlQcm9wcz86IGFwaS5MYW1iZGFSZXN0QXBpUHJvcHMgfCBhbnksXG4gIC8qKlxuICAgKiBVc2VyIHByb3ZpZGVkIHByb3BzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BzIGZvciB0aGUgQ2xvdWRXYXRjaExvZ3MgTG9nR3JvdXAuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXBQcm9wcz86IGxvZ3MuTG9nR3JvdXBQcm9wcyxcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gY3JlYXRlIGEgVXNhZ2UgUGxhbiBhdHRhY2hlZCB0byB0aGUgQVBJLiBNdXN0IGJlIHRydWUgaWZcbiAgICogYXBpR2F0ZXdheVByb3BzLmRlZmF1bHRNZXRob2RPcHRpb25zLmFwaUtleVJlcXVpcmVkIGlzIHRydWVcbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlICh0byBtYXRjaCBsZWdhY3kgYmVoYXZpb3IpXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVVc2FnZVBsYW4/OiBib29sZWFuXG59XG5cbi8qKlxuICogQHN1bW1hcnkgVGhlIEFwaUdhdGV3YXlUb0xhbWJkYSBjbGFzcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFwaUdhdGV3YXlUb0xhbWJkYSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBhcGlHYXRld2F5OiBhcGkuUmVzdEFwaTtcbiAgcHVibGljIHJlYWRvbmx5IGFwaUdhdGV3YXlDbG91ZFdhdGNoUm9sZT86IGlhbS5Sb2xlO1xuICBwdWJsaWMgcmVhZG9ubHkgYXBpR2F0ZXdheUxvZ0dyb3VwOiBsb2dzLkxvZ0dyb3VwO1xuICBwdWJsaWMgcmVhZG9ubHkgbGFtYmRhRnVuY3Rpb246IGxhbWJkYS5GdW5jdGlvbjtcblxuICAvKipcbiAgICogQHN1bW1hcnkgQ29uc3RydWN0cyBhIG5ldyBpbnN0YW5jZSBvZiB0aGUgQXBpR2F0ZXdheVRvTGFtYmRhIGNsYXNzLlxuICAgKiBAcGFyYW0ge2Nkay5BcHB9IHNjb3BlIC0gcmVwcmVzZW50cyB0aGUgc2NvcGUgZm9yIGFsbCB0aGUgcmVzb3VyY2VzLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gaWQgLSB0aGlzIGlzIGEgYSBzY29wZS11bmlxdWUgaWQuXG4gICAqIEBwYXJhbSB7Q2xvdWRGcm9udFRvQXBpR2F0ZXdheVRvTGFtYmRhUHJvcHN9IHByb3BzIC0gdXNlciBwcm92aWRlZCBwcm9wcyBmb3IgdGhlIGNvbnN0cnVjdFxuICAgKiBAc2luY2UgMC44LjBcbiAgICogQGFjY2VzcyBwdWJsaWNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBcGlHYXRld2F5VG9MYW1iZGFQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgZGVmYXVsdHMuQ2hlY2tMYW1iZGFQcm9wcyhwcm9wcyk7XG4gICAgZGVmYXVsdHMuQ2hlY2tBcGlQcm9wcyhwcm9wcyk7XG4gICAgZGVmYXVsdHMuVmFsaWRhdGVMYW1iZGFSZXN0QXBpUHJvcHModGhpcywgcHJvcHMuYXBpR2F0ZXdheVByb3BzKTtcblxuICAgIC8vIFNldHVwIHRoZSBMYW1iZGEgZnVuY3Rpb25cbiAgICB0aGlzLmxhbWJkYUZ1bmN0aW9uID0gZGVmYXVsdHMuYnVpbGRMYW1iZGFGdW5jdGlvbih0aGlzLCB7XG4gICAgICBleGlzdGluZ0xhbWJkYU9iajogcHJvcHMuZXhpc3RpbmdMYW1iZGFPYmosXG4gICAgICBsYW1iZGFGdW5jdGlvblByb3BzOiBwcm9wcy5sYW1iZGFGdW5jdGlvblByb3BzXG4gICAgfSk7XG5cbiAgICAvLyBTZXR1cCB0aGUgQVBJIEdhdGV3YXlcbiAgICBjb25zdCBnbG9iYWxSZXN0QXBpUmVzcG9uc2UgPSBkZWZhdWx0cy5HbG9iYWxMYW1iZGFSZXN0QXBpKFxuICAgICAgdGhpcyxcbiAgICAgIHRoaXMubGFtYmRhRnVuY3Rpb24sXG4gICAgICBwcm9wcy5hcGlHYXRld2F5UHJvcHMsXG4gICAgICBwcm9wcy5sb2dHcm91cFByb3BzLFxuICAgICAgcHJvcHMuY3JlYXRlVXNhZ2VQbGFuKTtcbiAgICB0aGlzLmFwaUdhdGV3YXkgPSBnbG9iYWxSZXN0QXBpUmVzcG9uc2UuYXBpO1xuICAgIHRoaXMuYXBpR2F0ZXdheUNsb3VkV2F0Y2hSb2xlID0gZ2xvYmFsUmVzdEFwaVJlc3BvbnNlLnJvbGU7XG4gICAgdGhpcy5hcGlHYXRld2F5TG9nR3JvdXAgPSBnbG9iYWxSZXN0QXBpUmVzcG9uc2UuZ3JvdXA7XG4gIH1cbn0iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-solutions-constructs/aws-apigateway-lambda",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.100.0",
|
|
4
4
|
"description": "CDK constructs for defining an interaction between an API Gateway and a Lambda function.",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -45,7 +45,6 @@
|
|
|
45
45
|
"dotnet": {
|
|
46
46
|
"namespace": "Amazon.SolutionsConstructs.AWS.ApiGatewayLambda",
|
|
47
47
|
"packageId": "Amazon.SolutionsConstructs.AWS.ApiGatewayLambda",
|
|
48
|
-
"signAssembly": true,
|
|
49
48
|
"iconUrl": "https://raw.githubusercontent.com/aws/aws-cdk/master/logo/default-256-dark.png"
|
|
50
49
|
},
|
|
51
50
|
"python": {
|
|
@@ -55,15 +54,15 @@
|
|
|
55
54
|
}
|
|
56
55
|
},
|
|
57
56
|
"dependencies": {
|
|
58
|
-
"@aws-solutions-constructs/core": "2.
|
|
57
|
+
"@aws-solutions-constructs/core": "2.100.0",
|
|
59
58
|
"constructs": "^10.0.0"
|
|
60
59
|
},
|
|
61
60
|
"devDependencies": {
|
|
62
|
-
"@aws-cdk/integ-tests-alpha": "2.
|
|
61
|
+
"@aws-cdk/integ-tests-alpha": "2.239.0-alpha.0",
|
|
63
62
|
"@types/jest": "^27.4.0",
|
|
64
63
|
"@types/node": "^10.3.0",
|
|
65
64
|
"constructs": "^10.0.0",
|
|
66
|
-
"aws-cdk-lib": "2.
|
|
65
|
+
"aws-cdk-lib": "2.239.0"
|
|
67
66
|
},
|
|
68
67
|
"jest": {
|
|
69
68
|
"moduleFileExtensions": [
|
|
@@ -80,9 +79,9 @@
|
|
|
80
79
|
]
|
|
81
80
|
},
|
|
82
81
|
"peerDependencies": {
|
|
83
|
-
"@aws-solutions-constructs/core": "2.
|
|
82
|
+
"@aws-solutions-constructs/core": "2.100.0",
|
|
84
83
|
"constructs": "^10.0.0",
|
|
85
|
-
"aws-cdk-lib": "^2.
|
|
84
|
+
"aws-cdk-lib": "^2.239.0"
|
|
86
85
|
},
|
|
87
86
|
"keywords": [
|
|
88
87
|
"aws",
|
|
@@ -0,0 +1,211 @@
|
|
|
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 lambda = require("aws-cdk-lib/aws-lambda");
|
|
19
|
+
const api = require("aws-cdk-lib/aws-apigateway");
|
|
20
|
+
const assertions_1 = require("aws-cdk-lib/assertions");
|
|
21
|
+
const defaults = require("@aws-solutions-constructs/core");
|
|
22
|
+
test('Error on existingLambdaObj=undefined', () => {
|
|
23
|
+
// Initial Setup
|
|
24
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
25
|
+
const props = {};
|
|
26
|
+
const app = () => {
|
|
27
|
+
new lib_1.ApiGatewayToLambda(stack, 'test-apigateway-lambda', props);
|
|
28
|
+
};
|
|
29
|
+
// Assertion 1
|
|
30
|
+
expect(app).toThrow();
|
|
31
|
+
});
|
|
32
|
+
test('Test with lambdaFunctionProps', () => {
|
|
33
|
+
// Initial Setup
|
|
34
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
35
|
+
const props = {
|
|
36
|
+
lambdaFunctionProps: {
|
|
37
|
+
runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME,
|
|
38
|
+
handler: 'index.handler',
|
|
39
|
+
code: lambda.Code.fromAsset(`${__dirname}/lambda`),
|
|
40
|
+
environment: {
|
|
41
|
+
OVERRIDE_STATUS: 'true'
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
apiGatewayProps: {
|
|
45
|
+
description: "sampleApiProp"
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
new lib_1.ApiGatewayToLambda(stack, 'test-apigateway-lambda', props);
|
|
49
|
+
const template = assertions_1.Template.fromStack(stack);
|
|
50
|
+
template.hasResourceProperties('AWS::Lambda::Function', {
|
|
51
|
+
Environment: {
|
|
52
|
+
Variables: {
|
|
53
|
+
OVERRIDE_STATUS: "true",
|
|
54
|
+
AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1"
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
template.resourceCountIs('AWS::ApiGateway::UsagePlan', 1);
|
|
59
|
+
});
|
|
60
|
+
test('Test properties', () => {
|
|
61
|
+
// Initial Setup
|
|
62
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
63
|
+
const props = {
|
|
64
|
+
lambdaFunctionProps: {
|
|
65
|
+
runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME,
|
|
66
|
+
handler: 'index.handler',
|
|
67
|
+
code: lambda.Code.fromAsset(`${__dirname}/lambda`)
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
const app = new lib_1.ApiGatewayToLambda(stack, 'test-apigateway-lambda', props);
|
|
71
|
+
// Assertion 1
|
|
72
|
+
expect(app.lambdaFunction).toBeDefined();
|
|
73
|
+
// Assertion 2
|
|
74
|
+
expect(app.apiGateway).toBeDefined();
|
|
75
|
+
expect(app.apiGatewayCloudWatchRole).toBeDefined();
|
|
76
|
+
expect(app.apiGatewayLogGroup).toBeDefined();
|
|
77
|
+
});
|
|
78
|
+
test('Error on lambdaFunctionProps=undefined', () => {
|
|
79
|
+
// Initial Setup
|
|
80
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
81
|
+
const props = {};
|
|
82
|
+
const app = () => {
|
|
83
|
+
new lib_1.ApiGatewayToLambda(stack, 'test-apigateway-lambda', props);
|
|
84
|
+
};
|
|
85
|
+
// Assertion 1
|
|
86
|
+
expect(app).toThrow();
|
|
87
|
+
});
|
|
88
|
+
test('Test deployment ApiGateway AuthorizationType override', () => {
|
|
89
|
+
// Stack
|
|
90
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
91
|
+
// Helper declaration
|
|
92
|
+
new lib_1.ApiGatewayToLambda(stack, 'api-gateway-lambda', {
|
|
93
|
+
apiGatewayProps: {
|
|
94
|
+
defaultMethodOptions: {
|
|
95
|
+
authorizationType: api.AuthorizationType.NONE
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
lambdaFunctionProps: {
|
|
99
|
+
runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME,
|
|
100
|
+
handler: 'index.handler',
|
|
101
|
+
code: lambda.Code.fromAsset(`${__dirname}/lambda`)
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
// Assertion 1
|
|
105
|
+
const template = assertions_1.Template.fromStack(stack);
|
|
106
|
+
template.hasResourceProperties("AWS::ApiGateway::Method", {
|
|
107
|
+
HttpMethod: "ANY",
|
|
108
|
+
AuthorizationType: "NONE"
|
|
109
|
+
});
|
|
110
|
+
});
|
|
111
|
+
test('Test deployment ApiGateway override cloudWatchRole = false', () => {
|
|
112
|
+
// Stack
|
|
113
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
114
|
+
// Helper declaration
|
|
115
|
+
new lib_1.ApiGatewayToLambda(stack, 'api-gateway-lambda', {
|
|
116
|
+
apiGatewayProps: {
|
|
117
|
+
cloudWatchRole: false
|
|
118
|
+
},
|
|
119
|
+
lambdaFunctionProps: {
|
|
120
|
+
runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME,
|
|
121
|
+
handler: 'index.handler',
|
|
122
|
+
code: lambda.Code.fromAsset(`${__dirname}/lambda`)
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
// Assertion 1
|
|
126
|
+
defaults.expectNonexistence(stack, "AWS::ApiGateway::Account", {});
|
|
127
|
+
});
|
|
128
|
+
test('Confirm call to CheckLambdaProps', () => {
|
|
129
|
+
// Initial Setup
|
|
130
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
131
|
+
const lambdaFunction = new lambda.Function(stack, 'a-function', {
|
|
132
|
+
runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME,
|
|
133
|
+
handler: 'index.handler',
|
|
134
|
+
code: lambda.Code.fromAsset(`${__dirname}/lambda`),
|
|
135
|
+
});
|
|
136
|
+
const props = {
|
|
137
|
+
lambdaFunctionProps: {
|
|
138
|
+
runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME,
|
|
139
|
+
handler: 'index.handler',
|
|
140
|
+
code: lambda.Code.fromAsset(`${__dirname}/lambda`),
|
|
141
|
+
environment: {
|
|
142
|
+
OVERRIDE_STATUS: 'true'
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
existingLambdaObj: lambdaFunction,
|
|
146
|
+
apiGatewayProps: {
|
|
147
|
+
description: "sampleApiProp"
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
const app = () => {
|
|
151
|
+
new lib_1.ApiGatewayToLambda(stack, 'test-apigateway-lambda', props);
|
|
152
|
+
};
|
|
153
|
+
// Assertion
|
|
154
|
+
expect(app).toThrow('Error - Either provide lambdaFunctionProps or existingLambdaObj, but not both.\n');
|
|
155
|
+
});
|
|
156
|
+
test('Confirm call to CheckApiProps', () => {
|
|
157
|
+
// Initial Setup
|
|
158
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
159
|
+
const lambdaFunction = new lambda.Function(stack, 'a-function', {
|
|
160
|
+
runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME,
|
|
161
|
+
handler: 'index.handler',
|
|
162
|
+
code: lambda.Code.fromAsset(`${__dirname}/lambda`),
|
|
163
|
+
});
|
|
164
|
+
const props = {
|
|
165
|
+
existingLambdaObj: lambdaFunction,
|
|
166
|
+
apiGatewayProps: {
|
|
167
|
+
defaultMethodOptions: {
|
|
168
|
+
apiKeyRequired: true
|
|
169
|
+
},
|
|
170
|
+
},
|
|
171
|
+
createUsagePlan: false,
|
|
172
|
+
};
|
|
173
|
+
const app = () => {
|
|
174
|
+
new lib_1.ApiGatewayToLambda(stack, 'test-apigateway-lambda', props);
|
|
175
|
+
};
|
|
176
|
+
// Assertion
|
|
177
|
+
expect(app).toThrow('Error - if API key is required, then the Usage plan must be created\n');
|
|
178
|
+
});
|
|
179
|
+
test('Confirm suppression of Usage Plan', () => {
|
|
180
|
+
// Initial Setup
|
|
181
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
182
|
+
const props = {
|
|
183
|
+
lambdaFunctionProps: {
|
|
184
|
+
code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); return {\'statusCode\': 200, \'body\': \'\'}; }'),
|
|
185
|
+
runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME,
|
|
186
|
+
handler: 'index.handler',
|
|
187
|
+
},
|
|
188
|
+
createUsagePlan: false
|
|
189
|
+
};
|
|
190
|
+
new lib_1.ApiGatewayToLambda(stack, 'test-apigateway-lambda', props);
|
|
191
|
+
const template = assertions_1.Template.fromStack(stack);
|
|
192
|
+
template.resourceCountIs('AWS::ApiGateway::UsagePlan', 0);
|
|
193
|
+
});
|
|
194
|
+
test('Test that ValidateLambdaRestApiProps() is being called', () => {
|
|
195
|
+
const stack = new aws_cdk_lib_1.Stack();
|
|
196
|
+
const props = {
|
|
197
|
+
lambdaFunctionProps: {
|
|
198
|
+
code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); return {\'statusCode\': 200, \'body\': \'\'}; }'),
|
|
199
|
+
runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME,
|
|
200
|
+
handler: 'index.handler',
|
|
201
|
+
},
|
|
202
|
+
apiGatewayProps: {
|
|
203
|
+
invalidProperty: true
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
const app = () => {
|
|
207
|
+
new lib_1.ApiGatewayToLambda(stack, 'test-construct', props);
|
|
208
|
+
};
|
|
209
|
+
expect(app).toThrow(/ERROR - invalidProperty is not a valid property of LambdaRestApiProps/);
|
|
210
|
+
});
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpZ2F0ZXdheS1sYW1iZGEudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFwaWdhdGV3YXktbGFtYmRhLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILFVBQVU7QUFDViw2Q0FBb0M7QUFDcEMsZ0NBQXFFO0FBQ3JFLGlEQUFpRDtBQUNqRCxrREFBa0Q7QUFDbEQsdURBQWtEO0FBQ2xELDJEQUEyRDtBQUUzRCxJQUFJLENBQUMsc0NBQXNDLEVBQUUsR0FBRyxFQUFFO0lBQ2hELGdCQUFnQjtJQUNoQixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLEVBQUUsQ0FBQztJQUMxQixNQUFNLEtBQUssR0FBNEIsRUFDdEMsQ0FBQztJQUNGLE1BQU0sR0FBRyxHQUFHLEdBQUcsRUFBRTtRQUNmLElBQUksd0JBQWtCLENBQUMsS0FBSyxFQUFFLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUMsQ0FBQztJQUNBLGNBQWM7SUFDaEIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ3hCLENBQUMsQ0FBQyxDQUFDO0FBRUgsSUFBSSxDQUFDLCtCQUErQixFQUFFLEdBQUcsRUFBRTtJQUN6QyxnQkFBZ0I7SUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxFQUFFLENBQUM7SUFDMUIsTUFBTSxLQUFLLEdBQTRCO1FBQ3JDLG1CQUFtQixFQUFFO1lBQ25CLE9BQU8sRUFBRSxRQUFRLENBQUMscUNBQXFDO1lBQ3ZELE9BQU8sRUFBRSxlQUFlO1lBQ3hCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsU0FBUyxDQUFDO1lBQ2xELFdBQVcsRUFBRTtnQkFDWCxlQUFlLEVBQUUsTUFBTTthQUN4QjtTQUNGO1FBQ0QsZUFBZSxFQUFFO1lBQ2YsV0FBVyxFQUFFLGVBQWU7U0FDN0I7S0FDRixDQUFDO0lBQ0Ys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O0lBQ3pELENBQUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsdUVBQXVFLENBQUMsQ0FBQztBQUMvRixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIEltcG9ydHNcbmltcG9ydCB7IFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBBcGlHYXRld2F5VG9MYW1iZGEsIEFwaUdhdGV3YXlUb0xhbWJkYVByb3BzIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgYXBpIGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5JztcbmltcG9ydCB7IFRlbXBsYXRlIH0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcbmltcG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5cbnRlc3QoJ0Vycm9yIG9uIGV4aXN0aW5nTGFtYmRhT2JqPXVuZGVmaW5lZCcsICgpID0+IHtcbiAgLy8gSW5pdGlhbCBTZXR1cFxuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcm9wczogQXBpR2F0ZXdheVRvTGFtYmRhUHJvcHMgPSB7XG4gIH07XG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBuZXcgQXBpR2F0ZXdheVRvTGFtYmRhKHN0YWNrLCAndGVzdC1hcGlnYXRld2F5LWxhbWJkYScsIHByb3BzKTtcbiAgfTtcbiAgICAvLyBBc3NlcnRpb24gMVxuICBleHBlY3QoYXBwKS50b1Rocm93KCk7XG59KTtcblxudGVzdCgnVGVzdCB3aXRoIGxhbWJkYUZ1bmN0aW9uUHJvcHMnLCAoKSA9PiB7XG4gIC8vIEluaXRpYWwgU2V0dXBcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJvcHM6IEFwaUdhdGV3YXlUb0xhbWJkYVByb3BzID0ge1xuICAgIGxhbWJkYUZ1bmN0aW9uUHJvcHM6IHtcbiAgICAgIHJ1bnRpbWU6IGRlZmF1bHRzLkNPTU1FUkNJQUxfUkVHSU9OX0xBTUJEQV9OT0RFX1JVTlRJTUUsXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoYCR7X19kaXJuYW1lfS9sYW1iZGFgKSxcbiAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgIE9WRVJSSURFX1NUQVRVUzogJ3RydWUnXG4gICAgICB9XG4gICAgfSxcbiAgICBhcGlHYXRld2F5UHJvcHM6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcInNhbXBsZUFwaVByb3BcIlxuICAgIH1cbiAgfTtcbiAgbmV3IEFwaUdhdGV3YXlUb0xhbWJkYShzdGFjaywgJ3Rlc3QtYXBpZ2F0ZXdheS1sYW1iZGEnLCBwcm9wcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoJ0FXUzo6TGFtYmRhOjpGdW5jdGlvbicsIHtcbiAgICBFbnZpcm9ubWVudDoge1xuICAgICAgVmFyaWFibGVzOiB7XG4gICAgICAgIE9WRVJSSURFX1NUQVRVUzogXCJ0cnVlXCIsXG4gICAgICAgIEFXU19OT0RFSlNfQ09OTkVDVElPTl9SRVVTRV9FTkFCTEVEOiBcIjFcIlxuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIHRlbXBsYXRlLnJlc291cmNlQ291bnRJcygnQVdTOjpBcGlHYXRld2F5OjpVc2FnZVBsYW4nLCAxKTtcbn0pO1xuXG50ZXN0KCdUZXN0IHByb3BlcnRpZXMnLCAoKSA9PiB7XG4gIC8vIEluaXRpYWwgU2V0dXBcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgcHJvcHM6IEFwaUdhdGV3YXlUb0xhbWJkYVByb3BzID0ge1xuICAgIGxhbWJkYUZ1bmN0aW9uUHJvcHM6IHtcbiAgICAgIHJ1bnRpbWU6IGRlZmF1bHRzLkNPTU1FUkNJQUxfUkVHSU9OX0xBTUJEQV9OT0RFX1JVTlRJTUUsXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoYCR7X19kaXJuYW1lfS9sYW1iZGFgKVxuICAgIH1cbiAgfTtcbiAgY29uc3QgYXBwID0gbmV3IEFwaUdhdGV3YXlUb0xhbWJkYShzdGFjaywgJ3Rlc3QtYXBpZ2F0ZXdheS1sYW1iZGEnLCBwcm9wcyk7XG4gIC8vIEFzc2VydGlvbiAxXG4gIGV4cGVjdChhcHAubGFtYmRhRnVuY3Rpb24pLnRvQmVEZWZpbmVkKCk7XG4gIC8vIEFzc2VydGlvbiAyXG4gIGV4cGVjdChhcHAuYXBpR2F0ZXdheSkudG9CZURlZmluZWQoKTtcbiAgZXhwZWN0KGFwcC5hcGlHYXRld2F5Q2xvdWRXYXRjaFJvbGUpLnRvQmVEZWZpbmVkKCk7XG4gIGV4cGVjdChhcHAuYXBpR2F0ZXdheUxvZ0dyb3VwKS50b0JlRGVmaW5lZCgpO1xufSk7XG5cbnRlc3QoJ0Vycm9yIG9uIGxhbWJkYUZ1bmN0aW9uUHJvcHM9dW5kZWZpbmVkJywgKCkgPT4ge1xuICAvLyBJbml0aWFsIFNldHVwXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIGNvbnN0IHByb3BzOiBBcGlHYXRld2F5VG9MYW1iZGFQcm9wcyA9IHtcbiAgfTtcbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIG5ldyBBcGlHYXRld2F5VG9MYW1iZGEoc3RhY2ssICd0ZXN0LWFwaWdhdGV3YXktbGFtYmRhJywgcHJvcHMpO1xuICB9O1xuICAgIC8vIEFzc2VydGlvbiAxXG4gIGV4cGVjdChhcHApLnRvVGhyb3coKTtcbn0pO1xuXG50ZXN0KCdUZXN0IGRlcGxveW1lbnQgQXBpR2F0ZXdheSBBdXRob3JpemF0aW9uVHlwZSBvdmVycmlkZScsICgpID0+IHtcbiAgLy8gU3RhY2tcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgLy8gSGVscGVyIGRlY2xhcmF0aW9uXG4gIG5ldyBBcGlHYXRld2F5VG9MYW1iZGEoc3RhY2ssICdhcGktZ2F0ZXdheS1sYW1iZGEnLCB7XG4gICAgYXBpR2F0ZXdheVByb3BzOiB7XG4gICAgICBkZWZhdWx0TWV0aG9kT3B0aW9uczoge1xuICAgICAgICBhdXRob3JpemF0aW9uVHlwZTogYXBpLkF1dGhvcml6YXRpb25UeXBlLk5PTkVcbiAgICAgIH1cbiAgICB9LFxuICAgIGxhbWJkYUZ1bmN0aW9uUHJvcHM6IHtcbiAgICAgIHJ1bnRpbWU6IGRlZmF1bHRzLkNPTU1FUkNJQUxfUkVHSU9OX0xBTUJEQV9OT0RFX1JVTlRJTUUsXG4gICAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoYCR7X19kaXJuYW1lfS9sYW1iZGFgKVxuICAgIH1cbiAgfSk7XG4gIC8vIEFzc2VydGlvbiAxXG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFwiQVdTOjpBcGlHYXRld2F5OjpNZXRob2RcIiwge1xuICAgIEh0dHBNZXRob2Q6IFwiQU5ZXCIsXG4gICAgQXV0aG9yaXphdGlvblR5cGU6IFwiTk9ORVwiXG4gIH0pO1xufSk7XG5cbnRlc3QoJ1Rlc3QgZGVwbG95bWVudCBBcGlHYXRld2F5IG92ZXJyaWRlIGNsb3VkV2F0Y2hSb2xlID0gZmFsc2UnLCAoKSA9PiB7XG4gIC8vIFN0YWNrXG4gIGNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKCk7XG4gIC8vIEhlbHBlciBkZWNsYXJhdGlvblxuICBuZXcgQXBpR2F0ZXdheVRvTGFtYmRhKHN0YWNrLCAnYXBpLWdhdGV3YXktbGFtYmRhJywge1xuICAgIGFwaUdhdGV3YXlQcm9wczoge1xuICAgICAgY2xvdWRXYXRjaFJvbGU6IGZhbHNlXG4gICAgfSxcbiAgICBsYW1iZGFGdW5jdGlvblByb3BzOiB7XG4gICAgICBydW50aW1lOiBkZWZhdWx0cy5DT01NRVJDSUFMX1JFR0lPTl9MQU1CREFfTk9ERV9SVU5USU1FLFxuICAgICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGAke19fZGlybmFtZX0vbGFtYmRhYClcbiAgICB9XG4gIH0pO1xuICAvLyBBc3NlcnRpb24gMVxuICBkZWZhdWx0cy5leHBlY3ROb25leGlzdGVuY2Uoc3RhY2ssIFwiQVdTOjpBcGlHYXRld2F5OjpBY2NvdW50XCIsIHt9KTtcbn0pO1xuXG50ZXN0KCdDb25maXJtIGNhbGwgdG8gQ2hlY2tMYW1iZGFQcm9wcycsICgpID0+IHtcbiAgLy8gSW5pdGlhbCBTZXR1cFxuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBsYW1iZGFGdW5jdGlvbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oc3RhY2ssICdhLWZ1bmN0aW9uJywge1xuICAgIHJ1bnRpbWU6IGRlZmF1bHRzLkNPTU1FUkNJQUxfUkVHSU9OX0xBTUJEQV9OT0RFX1JVTlRJTUUsXG4gICAgaGFuZGxlcjogJ2luZGV4LmhhbmRsZXInLFxuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYWApLFxuICB9KTtcblxuICBjb25zdCBwcm9wczogQXBpR2F0ZXdheVRvTGFtYmRhUHJvcHMgPSB7XG4gICAgbGFtYmRhRnVuY3Rpb25Qcm9wczoge1xuICAgICAgcnVudGltZTogZGVmYXVsdHMuQ09NTUVSQ0lBTF9SRUdJT05fTEFNQkRBX05PREVfUlVOVElNRSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYWApLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgT1ZFUlJJREVfU1RBVFVTOiAndHJ1ZSdcbiAgICAgIH1cbiAgICB9LFxuICAgIGV4aXN0aW5nTGFtYmRhT2JqOiBsYW1iZGFGdW5jdGlvbixcbiAgICBhcGlHYXRld2F5UHJvcHM6IHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcInNhbXBsZUFwaVByb3BcIlxuICAgIH1cbiAgfTtcbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIG5ldyBBcGlHYXRld2F5VG9MYW1iZGEoc3RhY2ssICd0ZXN0LWFwaWdhdGV3YXktbGFtYmRhJywgcHJvcHMpO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvdygnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBsYW1iZGFGdW5jdGlvblByb3BzIG9yIGV4aXN0aW5nTGFtYmRhT2JqLCBidXQgbm90IGJvdGguXFxuJyk7XG59KTtcblxudGVzdCgnQ29uZmlybSBjYWxsIHRvIENoZWNrQXBpUHJvcHMnLCAoKSA9PiB7XG4gIC8vIEluaXRpYWwgU2V0dXBcbiAgY29uc3Qgc3RhY2sgPSBuZXcgU3RhY2soKTtcbiAgY29uc3QgbGFtYmRhRnVuY3Rpb24gPSBuZXcgbGFtYmRhLkZ1bmN0aW9uKHN0YWNrLCAnYS1mdW5jdGlvbicsIHtcbiAgICBydW50aW1lOiBkZWZhdWx0cy5DT01NRVJDSUFMX1JFR0lPTl9MQU1CREFfTk9ERV9SVU5USU1FLFxuICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoYCR7X19kaXJuYW1lfS9sYW1iZGFgKSxcbiAgfSk7XG5cbiAgY29uc3QgcHJvcHM6IEFwaUdhdGV3YXlUb0xhbWJkYVByb3BzID0ge1xuICAgIGV4aXN0aW5nTGFtYmRhT2JqOiBsYW1iZGFGdW5jdGlvbixcbiAgICBhcGlHYXRld2F5UHJvcHM6IHtcbiAgICAgIGRlZmF1bHRNZXRob2RPcHRpb25zOiB7XG4gICAgICAgIGFwaUtleVJlcXVpcmVkOiB0cnVlXG4gICAgICB9LFxuICAgIH0sXG4gICAgY3JlYXRlVXNhZ2VQbGFuOiBmYWxzZSxcbiAgfTtcbiAgY29uc3QgYXBwID0gKCkgPT4ge1xuICAgIG5ldyBBcGlHYXRld2F5VG9MYW1iZGEoc3RhY2ssICd0ZXN0LWFwaWdhdGV3YXktbGFtYmRhJywgcHJvcHMpO1xuICB9O1xuICAvLyBBc3NlcnRpb25cbiAgZXhwZWN0KGFwcCkudG9UaHJvdygnRXJyb3IgLSBpZiBBUEkga2V5IGlzIHJlcXVpcmVkLCB0aGVuIHRoZSBVc2FnZSBwbGFuIG11c3QgYmUgY3JlYXRlZFxcbicpO1xufSk7XG5cbnRlc3QoJ0NvbmZpcm0gc3VwcHJlc3Npb24gb2YgVXNhZ2UgUGxhbicsICgpID0+IHtcbiAgLy8gSW5pdGlhbCBTZXR1cFxuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcm9wczogQXBpR2F0ZXdheVRvTGFtYmRhUHJvcHMgPSB7XG4gICAgbGFtYmRhRnVuY3Rpb25Qcm9wczoge1xuICAgICAgIGNvZGU6IG5ldyBsYW1iZGEuSW5saW5lQ29kZSgnZXhwb3J0cy5oYW5kbGVyID0gYXN5bmMgKGV2ZW50KSA9PiB7IGNvbnNvbGUubG9nKGV2ZW50KTsgcmV0dXJuIHtcXCdzdGF0dXNDb2RlXFwnOiAyMDAsIFxcJ2JvZHlcXCc6IFxcJ1xcJ307IH0nKSxcbiAgICAgICBydW50aW1lOiBkZWZhdWx0cy5DT01NRVJDSUFMX1JFR0lPTl9MQU1CREFfTk9ERV9SVU5USU1FLFxuICAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICB9LFxuICAgIGNyZWF0ZVVzYWdlUGxhbjogZmFsc2VcbiAgfTtcbiAgbmV3IEFwaUdhdGV3YXlUb0xhbWJkYShzdGFjaywgJ3Rlc3QtYXBpZ2F0ZXdheS1sYW1iZGEnLCBwcm9wcyk7XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoJ0FXUzo6QXBpR2F0ZXdheTo6VXNhZ2VQbGFuJywgMCk7XG59KTtcblxudGVzdCgnVGVzdCB0aGF0IFZhbGlkYXRlTGFtYmRhUmVzdEFwaVByb3BzKCkgaXMgYmVpbmcgY2FsbGVkJywgKCkgPT4ge1xuICBjb25zdCBzdGFjayA9IG5ldyBTdGFjaygpO1xuICBjb25zdCBwcm9wczogQXBpR2F0ZXdheVRvTGFtYmRhUHJvcHMgPSB7XG4gICAgbGFtYmRhRnVuY3Rpb25Qcm9wczoge1xuICAgICAgY29kZTogbmV3IGxhbWJkYS5JbmxpbmVDb2RlKCdleHBvcnRzLmhhbmRsZXIgPSBhc3luYyAoZXZlbnQpID0+IHsgY29uc29sZS5sb2coZXZlbnQpOyByZXR1cm4ge1xcJ3N0YXR1c0NvZGVcXCc6IDIwMCwgXFwnYm9keVxcJzogXFwnXFwnfTsgfScpLFxuICAgICAgcnVudGltZTogZGVmYXVsdHMuQ09NTUVSQ0lBTF9SRUdJT05fTEFNQkRBX05PREVfUlVOVElNRSxcbiAgICAgIGhhbmRsZXI6ICdpbmRleC5oYW5kbGVyJyxcbiAgICB9LFxuICAgIGFwaUdhdGV3YXlQcm9wczoge1xuICAgICAgaW52YWxpZFByb3BlcnR5OiB0cnVlXG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IGFwcCA9ICgpID0+IHtcbiAgICBuZXcgQXBpR2F0ZXdheVRvTGFtYmRhKHN0YWNrLCAndGVzdC1jb25zdHJ1Y3QnLCBwcm9wcyk7XG4gIH07XG5cbiAgZXhwZWN0KGFwcCkudG9UaHJvdygvRVJST1IgLSBpbnZhbGlkUHJvcGVydHkgaXMgbm90IGEgdmFsaWQgcHJvcGVydHkgb2YgTGFtYmRhUmVzdEFwaVByb3BzLyk7XG59KTtcbiJdfQ==
|
|
@@ -29,7 +29,7 @@ const props = {
|
|
|
29
29
|
lambdaFunctionProps: {
|
|
30
30
|
runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME,
|
|
31
31
|
handler: 'index.handler',
|
|
32
|
-
code: lambda.
|
|
32
|
+
code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); return {\'statusCode\': 200, \'body\': \'\'}; }'),
|
|
33
33
|
}
|
|
34
34
|
};
|
|
35
35
|
new lib_1.ApiGatewayToLambda(stack, 'test-apigateway-lambda', props);
|
|
@@ -37,4 +37,4 @@ new lib_1.ApiGatewayToLambda(stack, 'test-apigateway-lambda', props);
|
|
|
37
37
|
new integ_tests_alpha_1.IntegTest(stack, 'Integ', { testCases: [
|
|
38
38
|
stack
|
|
39
39
|
] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcuYXBpbGFtLWRlcGxveUZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW50ZWcuYXBpbGFtLWRlcGxveUZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFFSCxVQUFVO0FBQ1YsNkNBQXlDO0FBQ3pDLGdDQUFxRTtBQUNyRSxpREFBaUQ7QUFDakQseURBQW9HO0FBQ3BHLDJEQUEyRDtBQUMzRCxrRUFBdUQ7QUFFdkQsUUFBUTtBQUNSLE1BQU0sR0FBRyxHQUFHLElBQUksaUJBQUcsRUFBRSxDQUFDO0FBQ3RCLE1BQU0sS0FBSyxHQUFHLElBQUksbUJBQUssQ0FBQyxHQUFHLEVBQUUsSUFBQSw2QkFBc0IsRUFBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQ2pFLElBQUEsZ0NBQXlCLEVBQUMsS0FBSyxDQUFDLENBQUM7QUFDakMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxXQUFXLEdBQUcsNENBQTRDLENBQUM7QUFFakYsY0FBYztBQUNkLE1BQU0sS0FBSyxHQUE0QjtJQUNyQyxtQkFBbUIsRUFBRTtRQUNuQixPQUFPLEVBQUUsUUFBUSxDQUFDLHFDQUFxQztRQUN2RCxPQUFPLEVBQUUsZUFBZTtRQUN4QixJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLDBHQUEwRyxDQUFDO0tBQ3hJO0NBQ0YsQ0FBQztBQUVGLElBQUksd0JBQWtCLENBQUMsS0FBSyxFQUFFLHdCQUF3QixFQUFFLEtBQUssQ0FBQyxDQUFDO0FBRS9ELFFBQVE7QUFDUixJQUFJLDZCQUFTLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFLFNBQVMsRUFBRTtRQUN6QyxLQUFLO0tBQ04sRUFBRSxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgeyBBcHAsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBBcGlHYXRld2F5VG9MYW1iZGEsIEFwaUdhdGV3YXlUb0xhbWJkYVByb3BzIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZSwgU2V0Q29uc2lzdGVudEZlYXR1cmVGbGFncyAgfSBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0ICogYXMgZGVmYXVsdHMgZnJvbSAnQGF3cy1zb2x1dGlvbnMtY29uc3RydWN0cy9jb3JlJztcbmltcG9ydCB7IEludGVnVGVzdCB9IGZyb20gJ0Bhd3MtY2RrL2ludGVnLXRlc3RzLWFscGhhJztcblxuLy8gU2V0dXBcbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbmNvbnN0IHN0YWNrID0gbmV3IFN0YWNrKGFwcCwgZ2VuZXJhdGVJbnRlZ1N0YWNrTmFtZShfX2ZpbGVuYW1lKSk7XG5TZXRDb25zaXN0ZW50RmVhdHVyZUZsYWdzKHN0YWNrKTtcbnN0YWNrLnRlbXBsYXRlT3B0aW9ucy5kZXNjcmlwdGlvbiA9ICdJbnRlZ3JhdGlvbiBUZXN0IGZvciBhd3MtYXBpZ2F0ZXdheS1sYW1iZGEnO1xuXG4vLyBEZWZpbml0aW9uc1xuY29uc3QgcHJvcHM6IEFwaUdhdGV3YXlUb0xhbWJkYVByb3BzID0ge1xuICBsYW1iZGFGdW5jdGlvblByb3BzOiB7XG4gICAgcnVudGltZTogZGVmYXVsdHMuQ09NTUVSQ0lBTF9SRUdJT05fTEFNQkRBX05PREVfUlVOVElNRSxcbiAgICBoYW5kbGVyOiAnaW5kZXguaGFuZGxlcicsXG4gICAgY29kZTogbmV3IGxhbWJkYS5JbmxpbmVDb2RlKCdleHBvcnRzLmhhbmRsZXIgPSBhc3luYyAoZXZlbnQpID0+IHsgY29uc29sZS5sb2coZXZlbnQpOyByZXR1cm4ge1xcJ3N0YXR1c0NvZGVcXCc6IDIwMCwgXFwnYm9keVxcJzogXFwnXFwnfTsgfScpLFxuICB9XG59O1xuXG5uZXcgQXBpR2F0ZXdheVRvTGFtYmRhKHN0YWNrLCAndGVzdC1hcGlnYXRld2F5LWxhbWJkYScsIHByb3BzKTtcblxuLy8gU3ludGhcbm5ldyBJbnRlZ1Rlc3Qoc3RhY2ssICdJbnRlZycsIHsgdGVzdENhc2VzOiBbXG4gIHN0YWNrXG5dIH0pO1xuIl19
|
|
@@ -1,30 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "50.0.0",
|
|
3
3
|
"files": {
|
|
4
|
-
"
|
|
5
|
-
"displayName": "test-apigateway-lambda/LambdaFunction/Code",
|
|
6
|
-
"source": {
|
|
7
|
-
"path": "asset.4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640",
|
|
8
|
-
"packaging": "zip"
|
|
9
|
-
},
|
|
10
|
-
"destinations": {
|
|
11
|
-
"current_account-current_region-9a75cf4c": {
|
|
12
|
-
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
13
|
-
"objectKey": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip",
|
|
14
|
-
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"bce121237a3dec989a301980688729c1681d884eb17d8ed7d712eefd7f219a4c": {
|
|
4
|
+
"4227908b88f8680da6c6f63f1432a73bd31dadd26d3674fe9b34d267c583f622": {
|
|
19
5
|
"displayName": "apilam-deployFunction Template",
|
|
20
6
|
"source": {
|
|
21
7
|
"path": "apilam-deployFunction.template.json",
|
|
22
8
|
"packaging": "file"
|
|
23
9
|
},
|
|
24
10
|
"destinations": {
|
|
25
|
-
"current_account-current_region-
|
|
11
|
+
"current_account-current_region-d9719461": {
|
|
26
12
|
"bucketName": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}",
|
|
27
|
-
"objectKey": "
|
|
13
|
+
"objectKey": "4227908b88f8680da6c6f63f1432a73bd31dadd26d3674fe9b34d267c583f622.json",
|
|
28
14
|
"assumeRoleArn": "arn:${AWS::Partition}:iam::${AWS::AccountId}:role/cdk-hnb659fds-file-publishing-role-${AWS::AccountId}-${AWS::Region}"
|
|
29
15
|
}
|
|
30
16
|
}
|
|
@@ -67,10 +67,7 @@
|
|
|
67
67
|
"Type": "AWS::Lambda::Function",
|
|
68
68
|
"Properties": {
|
|
69
69
|
"Code": {
|
|
70
|
-
"
|
|
71
|
-
"Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}"
|
|
72
|
-
},
|
|
73
|
-
"S3Key": "4085f2fc7cce70548a05ffc5162591a6b42f88398292e9c4b2739feed32a1640.zip"
|
|
70
|
+
"ZipFile": "exports.handler = async (event) => { console.log(event); return {'statusCode': 200, 'body': ''}; }"
|
|
74
71
|
},
|
|
75
72
|
"Environment": {
|
|
76
73
|
"Variables": {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"
|
|
1
|
+
{"version":"50.0.0"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "
|
|
2
|
+
"version": "50.0.0",
|
|
3
3
|
"testCases": {
|
|
4
4
|
"apilam-deployFunction/Integ/DefaultTest": {
|
|
5
5
|
"stacks": [
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
"assertionStackName": "apilamdeployFunctionIntegDefaultTestDeployAssert281C111D"
|
|
10
10
|
}
|
|
11
11
|
},
|
|
12
|
-
"minimumCliVersion": "2.
|
|
12
|
+
"minimumCliVersion": "2.1105.0"
|
|
13
13
|
}
|