diff --git a/CHANGELOG.md b/CHANGELOG.md index 220e5c75c..1ea918318 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,19 @@ All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines. +## [2.37.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.36.0...v2.37.0) (2023-04-11) + +Built on CDK v2.73.0 + +### Features + +* **wafwebacl-all:** allow any type for webAclProps ([#943](https://github.com/awslabs/aws-solutions-constructs/pull/943)) + +### Bug Fixes + +* **all constructs:** use aws.partition where value could refer to govcloud ([#941](https://github.com/awslabs/aws-solutions-constructs/issues/941)) ([e4cc3c0](https://github.com/awslabs/aws-solutions-constructs/commit/e4cc3c090d669a8f163adb013c26fcd3796b5d8b)) +* **s3-bucket-helper:** not populating response.loggingBucket when bucket supplied ([#934](https://github.com/awslabs/aws-solutions-constructs/issues/934)) ([b65986d](https://github.com/awslabs/aws-solutions-constructs/commit/b65986d7d1791c2ed19e62c8f39ffe42b6f2a274)) + ## [2.36.0](https://github.com/awslabs/aws-solutions-constructs/compare/v2.35.0...v2.36.0) (2023-03-29) Built on CDK v2.71.0 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 89d40167b..09f16ad94 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -208,7 +208,7 @@ Additional scripts that take part in the versioning mechanism: ```console $ cd -$ docker run -u root --rm --net=host -it -v $PWD:$PWD -w $PWD jsii/superchain:1-buster-slim-node14 +$ docker run -u root --rm --net=host -it -v $PWD:$PWD -w $PWD jsii/superchain:1-buster-slim-node16 # The build-patterns.sh command can take along time, be sure to allocate enough resources in the Docker dashboard # (6 CPUs is good) docker$ ./deployment/v2/build-patterns.sh @@ -224,7 +224,7 @@ build and test individual constructs by following the steps below. ```console $ cd -$ docker run -u root --rm --net=host -it -v $PWD:$PWD -w $PWD jsii/superchain:1-buster-slim-node14 +$ docker run -u root --rm --net=host -it -v $PWD:$PWD -w $PWD jsii/superchain:1-buster-slim-node16 docker$ source ./deployment/v2/allow-partial-builds.sh docker$ cd my-module docker$ npm run build+lint+test diff --git a/DEVELOPER_GUIDE.md b/DEVELOPER_GUIDE.md index e599ad93d..57b8e47a9 100644 --- a/DEVELOPER_GUIDE.md +++ b/DEVELOPER_GUIDE.md @@ -17,7 +17,7 @@ Disk image size: 60 GB | Using the Fork button at the upper right, Fork the repo into your github account. | While we can give some advice on what github and git commands to use, we will not attempt to be a git tutorial. Some git/github expertise is assumed.| | Clone forked repo to your local development environment | If you wish to work off a branch in your repository, create that branch now and clone that branch. You will create a PR back to Main in aws-solutions-constructs eventually, you can do that from fork/main or fork/*branch* | | `cd aws-solutions-constructs` | This is the home directory of the repo, this is where you will open your text editor, run full builds, etc.| -| `docker run -u root --rm --net=host -it -v $PWD:$PWD -w $PWD jsii/superchain:1-buster-slim-node14` | This command downloads the Docker image (if necessary) and starts the container in which you will do all builds. The container will stay open in terminal mode, allowing you to edit/build repeatedly until your code is ready.| +| `docker run -u root --rm --net=host -it -v $PWD:$PWD -w $PWD jsii/superchain:1-buster-slim-node16` | This command downloads the Docker image (if necessary) and starts the container in which you will do all builds. The container will stay open in terminal mode, allowing you to edit/build repeatedly until your code is ready.| | Optional - Open a second terminal window to the aws-solutions-constructs directory. | The docker container mounts your local drive, so shares the Solutions Constructs source code tree with the host. You may find it advantageous to maintain a second terminal not running the Docker container to run git commands, your text editor, etc. | | `./deployment/v2/build-patterns.sh` | This command will build the entire repo, which is required prior to developing constructs. Some of the steps include: Installing the correct version of tools required in the build process, setting up environment variables, running JSII in each construct, and running all integration and unit tests. Commands executed across each construct are managed via yarn, so multiple commands are running in parallel most of the time. It's because of this that adding more resources to your Docker container can greatly reduce the build time (suggested values are discussed above). | | In the top level aws-solutions-constructs folder: `./deployment/v2/align-version.sh revert` | This will reset all the version numbers back to 0.0.0. You need to do this before adding/committing code - you can't submit package.json files with version numbers. It's common to do a full build ./deployment/v2/build-patterns.sh after coding to ensure all tests still pass - if you do this it will revert all the version numbers for you.| diff --git a/deployment/v2/align-version.js b/deployment/v2/align-version.js index 366e78e53..3cf60a7a6 100755 --- a/deployment/v2/align-version.js +++ b/deployment/v2/align-version.js @@ -10,7 +10,7 @@ const findVersion = process.argv[2]; const replaceVersion = process.argv[3]; // these versions need to be sourced from a config file -const awsCdkLibVersion = '2.71.0'; +const awsCdkLibVersion = '2.73.0'; const constructsVersion = '10.0.0'; const MODULE_EXEMPTIONS = new Set([ '@aws-cdk/cloudformation-diff', diff --git a/source/lerna.json b/source/lerna.json index 7b4f508d5..e3a06aed7 100644 --- a/source/lerna.json +++ b/source/lerna.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "2.36.0" + "version": "2.37.0" } diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.md index ae473a0ec..b5adac68b 100755 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/README.md @@ -45,7 +45,7 @@ const certificate = acm.Certificate.fromCertificateArn( const constructProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -121,7 +121,7 @@ ListenerCertificate listenerCertificate = ListenerCertificate // .build()); new AlbToLambda(this, "AlbToLambdaPattern", new AlbToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts index 17273feeb..6e8f60539 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/alb-lambda.test.ts @@ -26,7 +26,7 @@ test('Test new load balancer and new lambda function', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -86,7 +86,7 @@ test('Test new load balancer and new lambda function for HTTP api', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -135,7 +135,7 @@ test('Test existing load balancer and new lambda function', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -180,7 +180,7 @@ test('Test new load balancer and existing lambda function', () => { const lambdaFunction = new lambda.Function(stack, 'existing-function', { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', functionName: testFunctionName, vpc: testExistingVpc @@ -237,7 +237,7 @@ test("Test existing load balancer and existing lambda function", () => { const lambdaFunction = new lambda.Function(stack, "existing-function", { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", functionName: testFunctionName, vpc: testExistingVpc, @@ -291,7 +291,7 @@ test('Test new load balancer and new lambda function', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', functionName: testFunctionName, }, @@ -338,7 +338,7 @@ test('Test HTTPS adding 2 lambda targets, second with rules', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -351,7 +351,7 @@ test('Test HTTPS adding 2 lambda targets, second with rules', () => { const secondProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, ruleProps: { @@ -408,7 +408,7 @@ test('Test HTTP adding 2 lambda targets, second with rules', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -421,7 +421,7 @@ test('Test HTTP adding 2 lambda targets, second with rules', () => { const secondProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, ruleProps: { @@ -478,7 +478,7 @@ test('Test new load balancer and new lambda function', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -521,7 +521,7 @@ test('Test logging turned off', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -548,7 +548,7 @@ test('Check Properties', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -573,7 +573,7 @@ test('Test custom ALB properties', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -617,7 +617,7 @@ test('Test custom logging bucket', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -664,7 +664,7 @@ test('Test providing certificateArns is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -692,7 +692,7 @@ test('Test logging off with logBucketProperties provided is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -721,7 +721,7 @@ test('Test certificate with HTTP is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -744,7 +744,7 @@ test('Test new ALB with no listenerProps is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, publicApi: true @@ -772,7 +772,7 @@ test('Test existing ALB with no listener with no listenerProps is an error', () const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, existingLoadBalancerObj: existingAlb, @@ -794,7 +794,7 @@ test('Test existing ALB with a listener with listenerProps is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -807,7 +807,7 @@ test('Test existing ALB with a listener with listenerProps is an error', () => { const secondProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, ruleProps: { @@ -837,7 +837,7 @@ test('Test second target with no rules is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -850,7 +850,7 @@ test('Test second target with no rules is an error', () => { const secondProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, existingVpc: firstConstruct.vpc, @@ -872,7 +872,7 @@ test('Test no cert for an HTTPS listener is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -901,7 +901,7 @@ test('Test existingLoadBalancerObj and loadBalancerProps is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -936,7 +936,7 @@ test('Test existingLoadBalancerObj and no existingVpc is an error', () => { const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json index ed0323e3f..c875911da 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.expected.json @@ -819,7 +819,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.ts index caf34c76e..c7a6e43bb 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiExistingResources.ts @@ -37,7 +37,7 @@ const testSg = new SecurityGroup(stack, 'lambda-sg', { vpc: myVpc, allowAllOutbo const lambdaFunction = defaults.buildLambdaFunction(stack, { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', vpc: myVpc, securityGroups: [ testSg ] diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json index 0d2851787..99f490039 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.expected.json @@ -484,7 +484,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.ts index 4d5afe122..e12327aca 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.privateApiNewResources.ts @@ -33,7 +33,7 @@ stack.templateOptions.description = 'Integration Test for HTTP API with a new fu const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json index f6e864ee1..fb4370078 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.expected.json @@ -819,7 +819,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.ts index b7ab1d2aa..d61bb786e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiExistingResources.ts @@ -41,7 +41,7 @@ const testSg = new SecurityGroup(stack, "lambda-sg", { const lambdaFunction = defaults.buildLambdaFunction(stack, { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", vpc: myVpc, securityGroups: [testSg], diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json index 644b41507..9ffa833a3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.expected.json @@ -490,7 +490,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.ts index 93986ce12..dd5b49eb8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.publicApiNewResources.ts @@ -33,7 +33,7 @@ stack.templateOptions.description = 'Integration Test for public HTTP API with a const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json index 8e0173e19..0b975d879 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.expected.json @@ -490,7 +490,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, @@ -1539,7 +1539,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.ts b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.ts index ad3b63f09..362b8d240 100644 --- a/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.ts +++ b/source/patterns/@aws-solutions-constructs/aws-alb-lambda/test/integ.twoTargets.ts @@ -34,7 +34,7 @@ stack.templateOptions.description = 'Integration test for alb with 2 Lambda targ const props: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, listenerProps: { @@ -51,7 +51,7 @@ const firstConstruct = new AlbToLambda(stack, 'test-one', props); const secondProps: AlbToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, ruleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/lib/index.ts index 14f09e23c..2ceec6366 100755 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/lib/index.ts @@ -116,14 +116,14 @@ export class ApiGatewayToIot extends Construct { Action: [ "iot:UpdateThingShadow" ], - Resource: `arn:aws:iot:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:thing/*`, + Resource: `arn:${cdk.Aws.PARTITION}:iot:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:thing/*`, Effect: "Allow" }, { Action: [ "iot:Publish" ], - Resource: `arn:aws:iot:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:topic/*`, + Resource: `arn:${cdk.Aws.PARTITION}:iot:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:topic/*`, Effect: "Allow" } ] diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.defaultParams.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.defaultParams.expected.json index 6426152bc..43342533a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.defaultParams.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.defaultParams.expected.json @@ -28,7 +28,11 @@ "Fn::Join": [ "", [ - "arn:aws:iot:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iot:", { "Ref": "AWS::Region" }, @@ -48,7 +52,11 @@ "Fn::Join": [ "", [ - "arn:aws:iot:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iot:", { "Ref": "AWS::Region" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.overrideParams.ts b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.overrideParams.ts index 9a0a8077c..e232337a1 100755 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.overrideParams.ts +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.overrideParams.ts @@ -74,4 +74,4 @@ const props: ApiGatewayToIotProps = { new ApiGatewayToIot(stack, 'test-apigateway-iot', props); // Synth -app.synth(); +app.synth(); \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.override_auth_api_keys.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.override_auth_api_keys.expected.json index 9eb60ce65..0956ec2ad 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.override_auth_api_keys.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/integ.override_auth_api_keys.expected.json @@ -28,7 +28,11 @@ "Fn::Join": [ "", [ - "arn:aws:iot:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iot:", { "Ref": "AWS::Region" }, @@ -48,7 +52,11 @@ "Fn::Join": [ "", [ - "arn:aws:iot:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iot:", { "Ref": "AWS::Region" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/test.apigateway-iot.test.ts b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/test.apigateway-iot.test.ts index c08940e8a..08167903f 100755 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/test.apigateway-iot.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-iot/test/test.apigateway-iot.test.ts @@ -72,7 +72,11 @@ test('Test for default IAM Role', () => { "Fn::Join": [ "", [ - "arn:aws:iot:", + "arn:", + { + Ref: "AWS::Partition" + }, + ":iot:", { Ref: "AWS::Region" }, @@ -92,7 +96,11 @@ test('Test for default IAM Role', () => { "Fn::Join": [ "", [ - "arn:aws:iot:", + "arn:", + { + Ref: "AWS::Partition" + }, + ":iot:", { Ref: "AWS::Region" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/README.md index f490c1f19..e7e2e4760 100755 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/README.md @@ -33,7 +33,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new ApiGatewayToLambda(this, 'ApiGatewayToLambdaPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -71,7 +71,7 @@ import software.amazon.awsconstructs.services.apigatewaylambda.*; new ApiGatewayToLambda(this, "ApiGatewayToLambdaPattern", new ApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.expected.json index 96e0c40ec..6418ca233 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.ts index e13791164..9b2c59e27 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-apigateway-lambda' // Definitions const props: ApiGatewayToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.expected.json index 786c85e51..ca87bbb51 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.ts index a4612a3b8..629413dc6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-apigateway-lambda' // Lambda function setup const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts index 2072df245..bb97187d7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/test/test.apigateway-lambda.test.ts @@ -42,7 +42,7 @@ test('Test with lambdaFunctionProps', () => { const stack = new Stack(); const props: ApiGatewayToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -74,7 +74,7 @@ test('Test properties', () => { const stack = new Stack(); const props: ApiGatewayToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } @@ -117,7 +117,7 @@ test('Test deployment ApiGateway AuthorizationType override', () => { } }, lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } @@ -142,7 +142,7 @@ test('Test deployment ApiGateway override cloudWatchRole = false', () => { cloudWatchRole: false }, lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/README.md index 3d5e99f7c..3787c1b9e 100755 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/README.md @@ -33,7 +33,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new CloudFrontToApiGatewayToLambda(this, 'test-cloudfront-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' } }); @@ -70,7 +70,7 @@ import software.amazon.awsconstructs.services.cloudfrontapigatewaylambda.*; new CloudFrontToApiGatewayToLambda(this, "test-cloudfront-apigateway-lambda", new CloudFrontToApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json index 402e24128..a37d75a11 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.ts index 7ec47ab8e..e091ed1a2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.customCloudfrontLoggingBucket.ts @@ -26,7 +26,7 @@ stack.templateOptions.description = 'Integration Test for aws-cloudfront-apigate new CloudFrontToApiGatewayToLambda(stack, 'cf-apigw-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, cloudFrontLoggingBucketProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json index 2b325a75d..9a02cb007 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.ts index eed52a636..88875587d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.no-arguments.ts @@ -24,7 +24,7 @@ stack.templateOptions.description = 'Integration Test for aws-cloudfront-apigate const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json index c6eab3aae..b636fe56f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.expected.json @@ -159,7 +159,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.ts index e57a23d5e..4899f519d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/integ.override-behavior.ts @@ -29,7 +29,7 @@ stack.templateOptions.description = 'Integration Test for aws-cloudfront-apigate const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts index 9d26e139b..975fe8fb5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/test/test.cloudfront-apigateway-lambda.test.ts @@ -21,7 +21,7 @@ import { Template } from 'aws-cdk-lib/assertions'; function deployNewFunc(stack: cdk.Stack) { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -32,7 +32,7 @@ function deployNewFunc(stack: cdk.Stack) { function useExistingFunc(stack: cdk.Stack) { const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -70,7 +70,7 @@ test('check lambda function properties for deploy: true', () => { "Arn" ] }, - Runtime: "nodejs14.x", + Runtime: "nodejs16.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1" @@ -146,7 +146,7 @@ test('override api gateway properties with existingLambdaObj', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -178,7 +178,7 @@ test('override api gateway properties without existingLambdaObj', () => { new CloudFrontToApiGatewayToLambda(stack, 'test-cloudfront-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, apiGatewayProps: { @@ -211,7 +211,7 @@ test('Cloudfront logging bucket with destroy removal policy and auto delete obje new CloudFrontToApiGatewayToLambda(stack, 'test-cloudfront-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, apiGatewayProps: { @@ -253,7 +253,7 @@ test('Cloudfront logging bucket error when providing existing log bucket and log const app = () => { new CloudFrontToApiGatewayToLambda(stack, 'cloudfront-s3', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, apiGatewayProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/README.md b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/README.md index 298504097..b813f9138 100755 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/README.md @@ -33,7 +33,7 @@ import * as api from 'aws-cdk-lib/aws-apigateway'; const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -99,7 +99,7 @@ import software.amazon.awscdk.services.apigateway.*; import software.amazon.awsconstructs.services.cloudfrontapigateway.*; final Function lambdaFunction = Function.Builder.create(this, "IndexHandler") - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build(); diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json index 78693292f..8bdb9fdbc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.ts index 7acca56f6..9c31a9136 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.customCloudfrontLoggingBucket.ts @@ -27,7 +27,7 @@ stack.templateOptions.description = 'Integration Test for aws-cloudfront-apigate const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json index 21be3559c..77291c962 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.ts index 4ec959b9d..615e14c0c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/integ.no-arguments.ts @@ -26,7 +26,7 @@ stack.templateOptions.description = 'Integration Test for aws-cloudfront-apigate const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/test.cloudfront-apigateway.test.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/test.cloudfront-apigateway.test.ts index f9f0e6172..99492e6f4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/test.cloudfront-apigateway.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/test/test.cloudfront-apigateway.test.ts @@ -22,7 +22,7 @@ function deploy(stack: cdk.Stack) { const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -167,7 +167,7 @@ function createApi() { const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/test.cloudfront-s3.test.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/test.cloudfront-s3.test.ts index 87119c19e..2a68ec16a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/test.cloudfront-s3.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/test.cloudfront-s3.test.ts @@ -228,7 +228,7 @@ test('test cloudfront disable cloudfront logging', () => { test('test cloudfront with custom domain names', () => { const stack = new cdk.Stack(); - const certificate = acm.Certificate.fromCertificateArn(stack, 'Cert', 'arn:aws:acm:us-east-1:123456789012:certificate/11112222-3333-1234-1234-123456789012'); + const certificate = acm.Certificate.fromCertificateArn(stack, 'Cert', 'arn:${Aws.PARTITION}:acm:us-east-1:123456789012:certificate/11112222-3333-1234-1234-123456789012'); const props: CloudFrontToS3Props = { cloudFrontDistributionProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/README.md index d42abcbb0..5474d7011 100755 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/README.md @@ -37,7 +37,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' } }); @@ -75,7 +75,7 @@ import software.amazon.awsconstructs.services.cognitoapigatewaylambda.*; new CognitoToApiGatewayToLambda(this, "test-cognito-apigateway-lambda", new CognitoToApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) @@ -94,7 +94,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const construct = new CognitoToApiGatewayToLambda(this, 'test-cognito-apigateway-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, apiGatewayProps: { @@ -163,7 +163,7 @@ final CognitoToApiGatewayToLambda construct = new CognitoToApiGatewayToLambda(th "test-cognito-apigateway-lambda", new CognitoToApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json index c5cd10081..d66815d6e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.ts index 22ae720c5..9bbe60f7f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/integ.no-arguments.ts @@ -24,7 +24,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/test.cognito-apigateway-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/test.cognito-apigateway-lambda.test.ts index 37ccb1753..0c9055654 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/test.cognito-apigateway-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/test/test.cognito-apigateway-lambda.test.ts @@ -21,7 +21,7 @@ import { Template } from "aws-cdk-lib/assertions"; function deployNewFunc(stack: cdk.Stack) { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -35,7 +35,7 @@ test('override cognito properties', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -103,7 +103,7 @@ test('override cognito cognitoUserPoolClientProps', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -132,7 +132,7 @@ test('Check for default Cognito Auth Type', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -171,7 +171,7 @@ test('override Auth Type to COGNITO', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -215,7 +215,7 @@ test('Try to override Auth Type to NONE', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -259,7 +259,7 @@ test('Override apiGatewayProps', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -305,7 +305,7 @@ test('Override apiGatewayProps to support CORS', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -371,7 +371,7 @@ test('Override apiGatewayProps with proxy = false and add POST method', () => { const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -410,7 +410,7 @@ test('Override apiGatewayProps with proxy = false and add OPTIONS method', () => const lambdaFunctionProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/README.md b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/README.md index 4ac4e07d8..b23bd82eb 100755 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/README.md @@ -44,7 +44,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: DynamoDBStreamsToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, domainName: 'test-domain', @@ -91,7 +91,7 @@ import software.amazon.awsconstructs.services.dynamodbstreamslambdaelasticsearch new DynamoDBStreamsToLambdaToElasticSearchAndKibana(this, "test-dynamodb-stream-lambda-elasticsearch-kibana", new DynamoDBStreamsToLambdaToElasticSearchAndKibanaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/dynamodbstreams-lambda-elasticsearch-kibana.test.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/dynamodbstreams-lambda-elasticsearch-kibana.test.ts index 4477ae555..5ebf9de4e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/dynamodbstreams-lambda-elasticsearch-kibana.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/dynamodbstreams-lambda-elasticsearch-kibana.test.ts @@ -30,7 +30,7 @@ function deployNewFunc(stack: cdk.Stack) { function getDefaultTestLambdaProps(): lambda.FunctionProps { return { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', }; } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.deploy-with-vpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.deploy-with-vpc.expected.json index fe9e3b981..9164afb23 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.deploy-with-vpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.deploy-with-vpc.expected.json @@ -190,7 +190,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, @@ -494,7 +494,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -513,7 +517,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -581,8 +589,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.deploy-with-vpc.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.deploy-with-vpc.ts index 3b9ebc819..7cd4f1bac 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.deploy-with-vpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.deploy-with-vpc.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: DynamoDBStreamsToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, domainName: 'domaintest-7c94db', diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json index 948af5a03..59a8b7d35 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json @@ -149,7 +149,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } @@ -424,7 +424,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -443,7 +447,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -511,8 +519,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.ts index 3c149144d..490aaba9f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda-elasticsearch-kibana/test/integ.no-arguments.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: DynamoDBStreamsToLambdaToElasticSearchAndKibanaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, domainName: 'domaintest-7c94db', diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/README.md index b56372d8e..3bad7b623 100755 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/README.md @@ -37,7 +37,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new DynamoDBStreamsToLambda(this, 'test-dynamodbstreams-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, }); @@ -74,7 +74,7 @@ import software.amazon.awsconstructs.services.dynamodbstreamslambda.*; new DynamoDBStreamsToLambda(this, "test-dynamodbstreams-lambda", new DynamoDBStreamsToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/dynamodbstreams-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/dynamodbstreams-lambda.test.ts index 4fd4faf40..35f54094e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/dynamodbstreams-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/dynamodbstreams-lambda.test.ts @@ -21,7 +21,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: DynamoDBStreamsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, }; @@ -57,7 +57,7 @@ test('check DynamoEventSourceProps override', () => { const props: DynamoDBStreamsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, dynamoEventSourceProps: { @@ -144,7 +144,7 @@ test('check dynamodb table stream override', () => { const props: DynamoDBStreamsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, dynamoTableProps: { @@ -206,7 +206,7 @@ test('check getter methods with existingTableInterface', () => { }), lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, }); @@ -237,7 +237,7 @@ test('check dynamodb table stream override with ITable', () => { const props: DynamoDBStreamsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, existingTableInterface diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.expected.json index 93af8872f..b89b0b08d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.expected.json @@ -172,7 +172,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.ts index 7df3e2b3a..668c86760 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.existing-table.ts @@ -36,7 +36,7 @@ const table = new dynamodb.Table(stack, 'mytable', { const props: DynamoDBStreamsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, existingTableInterface: table diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.expected.json index 78943da4e..ae6f93c0d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.expected.json @@ -143,7 +143,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.ts index e7d8253b7..5b5121352 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodbstreams-lambda/test/integ.no-arguments.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: DynamoDBStreamsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, dynamoEventSourceProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/README.md index b742fcdf6..478f2cc1d 100755 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/README.md @@ -34,7 +34,7 @@ import * as events from 'aws-cdk-lib/aws-events'; const constructProps: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, eventRuleProps: { @@ -83,7 +83,7 @@ import software.amazon.awsconstructs.services.eventbridgelambda.*; new EventbridgeToLambda(this, "test-eventbridge-lambda", new EventbridgeToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts index c26c09127..b57b2c0a0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/eventbridge-lambda.test.ts @@ -21,7 +21,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, eventRuleProps: { @@ -36,7 +36,7 @@ function deployNewEventBus(stack: cdk.Stack) { const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, eventBusProps: { eventBusName: 'test' }, @@ -63,7 +63,7 @@ test('check lambda function properties for deploy: true', () => { "Arn" ] }, - Runtime: "nodejs14.x", + Runtime: "nodejs16.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1" @@ -223,7 +223,7 @@ test('check exception while passing existingEventBus & eventBusProps', () => { const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, eventRuleProps: { @@ -247,7 +247,7 @@ test('check custom event bus resource with props when deploy:true', () => { const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, eventBusProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json index c3e762fdb..4117f3456 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.expected.json @@ -116,7 +116,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.ts index 146e505f5..6289de86e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-existing-eventbus.ts @@ -26,7 +26,7 @@ const existingEventBus = new events.EventBus(stack, `existing-event-bus`, { eve const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, existingEventBusInterface: existingEventBus, diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json index 6a9a6027b..bdf10e99d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.ts index 981c68286..f1af26381 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-new-eventbus.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, eventBusProps: { eventBusName: 'test' }, diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.expected.json index 0b849607a..42bbbcb11 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.ts index d8c2b6e45..7f31e252d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-lambda/test/integ.eventbridge-no-argument.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: EventbridgeToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, eventRuleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json index bfbfb3c3f..6bcf0a409 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.ts index f3a66a610..b71b9f83a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-existing-eventbus.ts @@ -26,7 +26,7 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const submitLambda = deployLambdaFunction(stack, { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' }); diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json index 48269ef73..f1e000cdf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.ts index 05c23d75c..275fc178f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-new-eventbus.ts @@ -25,7 +25,7 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const submitLambda = deployLambdaFunction(stack, { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' }); diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.expected.json index 1575bb1b5..b97edd5c9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.ts b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.ts index e71a200a4..3cd9c28b1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.ts +++ b/source/patterns/@aws-solutions-constructs/aws-eventbridge-stepfunctions/test/integ.eventbridge-stepfunctions-with-lambda.ts @@ -26,7 +26,7 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const submitLambda = deployLambdaFunction(stack, { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda`), handler: 'index.handler' }); diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/fargate-opensearch.test.ts b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/fargate-opensearch.test.ts index 4d86fc396..11298d431 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/fargate-opensearch.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/fargate-opensearch.test.ts @@ -119,7 +119,11 @@ test('Test cognito dashboard role IAM policy', () => { "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + Ref: "AWS::Partition" + }, + ":cognito-identity:", { Ref: "AWS::Region" }, @@ -138,7 +142,11 @@ test('Test cognito dashboard role IAM policy', () => { "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + Ref: "AWS::Partition" + }, + ":es:", { Ref: "AWS::Region" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.existing-resources.expected.json b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.existing-resources.expected.json index 7979e0e49..0ef3d92f0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.existing-resources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.existing-resources.expected.json @@ -1241,7 +1241,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -1260,7 +1264,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -1320,8 +1328,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.new-resources.expected.json b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.new-resources.expected.json index d8b77ef9b..75a18dc14 100644 --- a/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.new-resources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-fargate-opensearch/test/integ.new-resources.expected.json @@ -219,7 +219,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -238,7 +242,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -298,8 +306,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/README.md b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/README.md index d394d8135..7c988d6d3 100755 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/README.md @@ -37,7 +37,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: IotToLambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, iotTopicRuleProps: { @@ -94,7 +94,7 @@ import software.amazon.awsconstructs.services.iotlambdadynamodb.*; new IotToLambdaToDynamoDB(this, "test-iot-lambda-dynamodb-stack", new IotToLambdaToDynamoDBProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.expected.json index cd978c2a2..c0e6aca1f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.expected.json @@ -141,7 +141,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.ts b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.ts index db604206a..4a02c5683 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.iot-lambda-dynamodb.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: IotToLambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, iotTopicRuleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.with-vpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.with-vpc.expected.json index b27565283..acab0fcdd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.with-vpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.with-vpc.expected.json @@ -182,7 +182,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.with-vpc.ts b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.with-vpc.ts index 0bf8cd067..0c70e1045 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.with-vpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/integ.with-vpc.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: IotToLambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, iotTopicRuleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/iot-lambda-dynamodb.test.ts b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/iot-lambda-dynamodb.test.ts index 2d54ffc9c..5a2aca4f6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/iot-lambda-dynamodb.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/test/iot-lambda-dynamodb.test.ts @@ -21,7 +21,7 @@ function deployStack(stack: cdk.Stack) { const props: IotToLambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, iotTopicRuleProps: { @@ -51,7 +51,7 @@ test('check lambda function properties', () => { "Arn" ] }, - Runtime: "nodejs14.x", + Runtime: "nodejs16.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1", @@ -260,7 +260,7 @@ test('check properties', () => { deployVpc: true, lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, iotTopicRuleProps: { @@ -308,7 +308,7 @@ test('Check incorrect table permission', () => { const props: IotToLambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, iotTopicRuleProps: { @@ -335,7 +335,7 @@ test('check lambda function custom environment variable', () => { const props: IotToLambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, tableEnvironmentVariableName: 'CUSTOM_DYNAMODB_TABLE', @@ -354,7 +354,7 @@ test('check lambda function custom environment variable', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', @@ -375,7 +375,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new IotToLambdaToDynamoDB(stack, "lambda-to-dynamodb-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -434,7 +434,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new IotToLambdaToDynamoDB(stack, "lambda-to-dynamodb-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -502,7 +502,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new IotToLambdaToDynamoDB(stack, "lambda-to-dynamodb-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -555,7 +555,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new cdk.Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lambda', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -597,7 +597,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new IotToLambdaToDynamoDB(stack, "lambda-to-dynamodb-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/README.md index bd555dd81..a56988567 100755 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/README.md @@ -37,7 +37,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: IotToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, iotTopicRuleProps: { @@ -94,7 +94,7 @@ import software.amazon.awsconstructs.services.iotlambda.*; new IotToLambda(this, "test-iot-lambda-integration", new IotToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json index 78c28c11f..42fd24970 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.ts b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.ts index fb2548934..f9bfa0aac 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-new-func.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: IotToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, iotTopicRuleProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.expected.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.expected.json index a7dc17f2e..9026e8587 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.ts b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.ts index f7736d09f..aebc3dabc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/integ.iot-lambda-use-existing-func.ts @@ -23,7 +23,7 @@ const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/iot-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/iot-lambda.test.ts index 1b80787e3..2752a632e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/iot-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/test/iot-lambda.test.ts @@ -20,7 +20,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: IotToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, iotTopicRuleProps: { @@ -73,7 +73,7 @@ test('check lambda function properties for deploy: true', () => { "Arn" ] }, - Runtime: "nodejs14.x" + Runtime: "nodejs16.x" }); }); diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/lib/index.ts index 90925fb2e..d3940b414 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/lib/index.ts @@ -109,7 +109,10 @@ export class KinesisFirehoseToS3 extends Construct { logS3AccessLogs: props.logS3AccessLogs, }); this.s3Bucket = buildS3BucketResponse.bucket; - this.s3LoggingBucket = buildS3BucketResponse.loggingBucket; + // Commit fd5a4f1fe5bd4fb85265b895eec4c36349a8bf64 fixed the core routine, + // but changed this behavior. Forcing undefined to pass existing test, but we + // should clarify behavior for construct properties when existing values are passed in. + this.s3LoggingBucket = props.existingLoggingBucketObj ? undefined : buildS3BucketResponse.loggingBucket; bucket = this.s3Bucket; } else { diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json index e5fe58b7d..d533ff8b8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.expected.json @@ -168,7 +168,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.ts b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.ts index 7d1fd3988..36dfacbd3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.ts +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-kinesisfirehose-s3/test/integ.existingStreamObj.ts @@ -27,7 +27,7 @@ stack.templateOptions.description = 'Integration Test for aws-kinesisstreams-kin const construct = new KinesisStreamsToLambda(stack, 'test-kinesis-lambda', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/README.md index 33e419abf..1f2b63a03 100755 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/README.md @@ -36,7 +36,7 @@ new KinesisStreamsToLambda(this, 'KinesisToLambdaPattern', { batchSize: 1 }, lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -86,7 +86,7 @@ new KinesisStreamsToLambda(this, "KinesisToLambdaPattern", new KinesisStreamsToL .batchSize(1) .build()) .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.expected.json index 9b6cdaf63..54790562d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.expected.json @@ -131,7 +131,7 @@ ] }, "Handler": "index.handler", - "Runtime": "nodejs14.x" + "Runtime": "nodejs16.x" }, "DependsOn": [ "testroleDefaultPolicy884631E2", diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.ts b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.ts index 2c89ce788..0cf1118b1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.ts +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.existing.ts @@ -41,7 +41,7 @@ const lambdaRole = new iam.Role(stack, 'test-role', { }); const lambdaFn = new lambda.Function(stack, 'test-fn', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), role: lambdaRole, diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.expected.json index dcee630d0..e706fe3a2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.expected.json @@ -168,7 +168,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.ts index 1ed41ea7d..486aa0f9e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/integ.no-arguments.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-kinesisstreams-lam // Definitions const props: KinesisStreamsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/kinesisstreams-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/kinesisstreams-lambda.test.ts index 8201f099d..5392f5a4c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/kinesisstreams-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/test/kinesisstreams-lambda.test.ts @@ -26,7 +26,7 @@ test('Test properties', () => { const stack = new Stack(); const props: KinesisStreamsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } @@ -48,7 +48,7 @@ test('Test existing resources', () => { const stack = new Stack(); const fn = new lambda.Function(stack, 'test-fn', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }); @@ -75,7 +75,7 @@ test('Test existing resources', () => { template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', }); }); @@ -86,7 +86,7 @@ test('test sqsDlqQueueProps override', () => { const stack = new Stack(); const props: KinesisStreamsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -112,7 +112,7 @@ test('Test properties with no CW Alarms', () => { const stack = new Stack(); const props: KinesisStreamsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/README.md index cf11216b5..e6713cc03 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/README.md @@ -33,7 +33,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, }; @@ -71,7 +71,7 @@ import software.amazon.awsconstructs.services.lambdadynamodb.*; new LambdaToDynamoDB(this, "test_lambda_dynamodb_stack", new LambdaToDynamoDBProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.expected.json index 75ab879b1..7c73a959d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.expected.json @@ -152,7 +152,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.ts index af29a1aa0..550fda6f5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.add-secondary-index.ts @@ -26,7 +26,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const construct: LambdaToDynamoDB = new LambdaToDynamoDB(stack, 'test-lambda-dynamodb-stack', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, }); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.expected.json index cfb86317f..53d92cbb8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.expected.json @@ -893,7 +893,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.ts index fc3061108..cf0f75cc9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithExistingVpc.ts @@ -36,7 +36,7 @@ defaults.AddAwsServiceEndpoint(stack, vpc, defaults.ServiceEndpointTypes.DYNAMOD // Definitions const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.expected.json index 68914f798..05c3865e6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.expected.json @@ -183,7 +183,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.ts index 5cd2a3d02..121a0ffcd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.deployFunctionWithVpc.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-dynamodb"; // Definitions const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.expected.json index b5cca957d..c65bb799c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.expected.json @@ -141,7 +141,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.ts index 24c0a83a7..303ff495d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.no-arguments.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.expected.json index 36d02c75c..a6ec259c1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.expected.json @@ -141,7 +141,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.ts index e67d16cfd..6ec64dd0b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.set-billing-mode.ts @@ -35,7 +35,7 @@ new LambdaToDynamoDB(stack, 'test-lambda-dynamodb-stack', { }, lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' } }); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.expected.json index 89489ab00..fb888101b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.expected.json @@ -141,7 +141,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.ts index ed5ec305c..d8eeed504 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/integ.use-existing-func.ts @@ -21,7 +21,7 @@ import { generateIntegStackName } from '@aws-solutions-constructs/core'; const app = new App(); const stack = new Stack(app, generateIntegStackName(__filename)); const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/lambda-dynamodb.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/lambda-dynamodb.test.ts index f796609c8..1b586b259 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/lambda-dynamodb.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/test/lambda-dynamodb.test.ts @@ -22,7 +22,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, }; @@ -67,7 +67,7 @@ test('check lambda function properties for deploy: true', () => { "Arn" ] }, - Runtime: "nodejs14.x", + Runtime: "nodejs16.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1", @@ -298,7 +298,7 @@ test('check for no prop', () => { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' } }; @@ -313,7 +313,7 @@ test('check for no prop', () => { "Arn" ] }, - Runtime: "nodejs14.x", + Runtime: "nodejs16.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1", @@ -331,7 +331,7 @@ test('check lambda function policy ReadOnly table permissions', () => { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, tablePermissions: 'Read' @@ -388,7 +388,7 @@ test('check lambda function policy WriteOnly table permissions', () => { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, tablePermissions: 'Write' @@ -442,7 +442,7 @@ test('check lambda function policy ReadWrite table permissions', () => { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, tablePermissions: 'ReadWrite' @@ -503,7 +503,7 @@ test('check lambda function policy All table permissions', () => { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, tablePermissions: 'All' @@ -550,7 +550,7 @@ test('check lambda function custom environment variable', () => { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, tableEnvironmentVariableName: 'CUSTOM_DYNAMODB_TABLE' @@ -561,7 +561,7 @@ test('check lambda function custom environment variable', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', @@ -582,7 +582,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToDynamoDB(stack, "lambda-to-dynamodb-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -633,7 +633,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToDynamoDB(stack, "lambda-to-dynamodb-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -693,7 +693,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToDynamoDB(stack, "lambda-to-dynamodb-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -738,7 +738,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new cdk.Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lambda', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -772,7 +772,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToDynamoDB(stack, "lambda-to-dynamodb-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -790,7 +790,7 @@ test('Test bad table permission', () => { const props: LambdaToDynamoDBProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, tablePermissions: 'Reed', diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/README.md index 53552bc37..a16478bac 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/README.md @@ -32,7 +32,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToElasticachememcached(this, 'LambdaToElasticachememcachedPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -69,7 +69,7 @@ import software.amazon.awsconstructs.services.lambdaelasticachememcached.*; new LambdaToElasticachememcached(this, "LambdaToCachePattern", new LambdaToElasticachememcachedProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.existingResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.existingResources.expected.json index 39d31e5ea..27ca0eb36 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.existingResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.existingResources.expected.json @@ -397,7 +397,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "VpcConfig": { "SecurityGroupIds": [ { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.existingResources.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.existingResources.ts index e5b8bd347..cc6b4a430 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.existingResources.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.existingResources.ts @@ -28,7 +28,7 @@ const testVpc = getTestVpc(stack, false); const testSG = buildSecurityGroup(stack, 'test-sg', { vpc: testVpc }, [], []); const testFunction = new lambda.Function(stack, 'test-function', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), vpc: testVpc, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.newResources.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.newResources.expected.json index c9956f0af..d7efaa91f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.newResources.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.newResources.expected.json @@ -267,7 +267,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.newResources.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.newResources.ts index 2d19761f5..126426fbe 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.newResources.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.newResources.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test with new resourcesfor aws- // Definitions const props: LambdaToElasticachememcachedProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.withClientProps.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.withClientProps.expected.json index 64f5e92f6..c0664ed15 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.withClientProps.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.withClientProps.expected.json @@ -267,7 +267,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.withClientProps.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.withClientProps.ts index 8f386cb2b..5a78887b5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.withClientProps.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/integ.withClientProps.ts @@ -26,7 +26,7 @@ stack.templateOptions.description = 'Integration Test with new resourcesfor aws- // Definitions const props: LambdaToElasticachememcachedProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/lambda-elasticachememcached.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/lambda-elasticachememcached.test.ts index 19bd12e84..99c126081 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/lambda-elasticachememcached.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticachememcached/test/lambda-elasticachememcached.test.ts @@ -31,7 +31,7 @@ test("When provided a VPC, does not create a second VPC", () => { existingVpc, lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", }, }); @@ -51,7 +51,7 @@ test("When provided an existingCache, does not create a second cache", () => { existingCache, lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", }, }); @@ -69,7 +69,7 @@ test("When provided an existingFunction, does not create a second function", () const existingVpc = defaults.getTestVpc(stack); const existingFunction = new lambda.Function(stack, "test-function", { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", vpc: existingVpc, functionName: testFunctionName, @@ -95,7 +95,7 @@ test("Test custom environment variable name", () => { new LambdaToElasticachememcached(stack, "test-construct", { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", }, cacheEndpointEnvironmentVariableName: testEnvironmentVariableName, @@ -137,7 +137,7 @@ test("Test setting custom function properties", () => { new LambdaToElasticachememcached(stack, "test-cache", { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", functionName: testFunctionName, }, @@ -155,7 +155,7 @@ test("Test setting custom cache properties", () => { new LambdaToElasticachememcached(stack, "test-cache", { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", }, cacheProps: { @@ -175,7 +175,7 @@ test("Test setting custom VPC properties", () => { new LambdaToElasticachememcached(stack, "test-cache", { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", }, vpcProps: { @@ -194,7 +194,7 @@ test("Test all default values", () => { new LambdaToElasticachememcached(stack, "test-cache", { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", }, }); @@ -231,7 +231,7 @@ test("Test all default values", () => { }, }, Handler: ".handler", - Runtime: "nodejs14.x", + Runtime: "nodejs16.x", }); // All values taken from elasticache-defaults.ts @@ -255,7 +255,7 @@ test('Test for the proper self referencing security group', () => { new LambdaToElasticachememcached(stack, "test-cache", { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", }, cacheProps: { @@ -294,7 +294,7 @@ test("Test error from existingCache and no VPC", () => { existingCache, lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", }, }); @@ -311,7 +311,7 @@ test("Test error from existing function and no VPC", () => { const existingVpc = defaults.getTestVpc(stack); const existingFunction = new lambda.Function(stack, "test-function", { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", vpc: existingVpc, }); @@ -342,7 +342,7 @@ test("Test error from existingCache and cacheProps", () => { }, lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", }, }); @@ -362,7 +362,7 @@ test("Test error from trying to launch Redis", () => { }, lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", }, }); diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/README.md index 1e86b69ee..149d0d581 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/README.md @@ -43,7 +43,7 @@ import * as lambda from "aws-cdk-lib/aws-lambda"; const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -93,7 +93,7 @@ import software.amazon.awsconstructs.services.lambdaelasticsearchkibana.*; new LambdaToElasticSearchAndKibana(this, "sample", new LambdaToElasticSearchAndKibanaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithClusterConfig.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithClusterConfig.expected.json index 9b687d5be..8066cf458 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithClusterConfig.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithClusterConfig.expected.json @@ -157,7 +157,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, @@ -423,7 +423,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -442,7 +446,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -510,8 +518,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithClusterConfig.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithClusterConfig.ts index 7b472035c..6feb474e3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithClusterConfig.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithClusterConfig.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, defaults.generateIntegStackName(__filename), {}); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithExistingVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithExistingVpc.expected.json index a3b86b904..722292d18 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithExistingVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithExistingVpc.expected.json @@ -824,7 +824,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, @@ -1097,7 +1097,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -1116,7 +1120,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -1184,8 +1192,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithExistingVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithExistingVpc.ts index 51386f04f..bb91a5f77 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithExistingVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithExistingVpc.ts @@ -30,7 +30,7 @@ const vpc = defaults.getTestVpc(stack); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithVpcProps.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithVpcProps.expected.json index 3a3b0ea81..4e19e5267 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithVpcProps.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithVpcProps.expected.json @@ -155,7 +155,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, @@ -425,7 +425,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -444,7 +448,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -512,8 +520,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithVpcProps.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithVpcProps.ts index 76ed4e1b3..5d5a93558 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithVpcProps.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployFunctionWithVpcProps.ts @@ -28,7 +28,7 @@ const stack = new Stack(app, defaults.generateIntegStackName(__filename), { const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployToFiveZones.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployToFiveZones.expected.json index 430146924..649cfa2fc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployToFiveZones.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployToFiveZones.expected.json @@ -157,7 +157,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, @@ -427,7 +427,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -446,7 +450,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -514,7 +522,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployToFiveZones.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployToFiveZones.ts index c53d211bd..e722bedc5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployToFiveZones.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.deployToFiveZones.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, defaults.generateIntegStackName(__filename), {}); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.disabledZoneAwareness.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.disabledZoneAwareness.expected.json index 952399fd2..2adc5c262 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.disabledZoneAwareness.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.disabledZoneAwareness.expected.json @@ -157,7 +157,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, @@ -419,7 +419,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -438,7 +442,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -506,7 +514,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.disabledZoneAwareness.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.disabledZoneAwareness.ts index a7adf0fdc..06b73cc5c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.disabledZoneAwareness.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.disabledZoneAwareness.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, defaults.generateIntegStackName(__filename), {}); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.expected.json index 207e58345..a6954270e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.expected.json @@ -116,7 +116,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } @@ -362,7 +362,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -381,7 +385,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -449,7 +457,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.ts index bccfb1d2e..3aa9895c5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.domain-arguments.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json index 37e2c00cd..b49298c56 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.expected.json @@ -116,7 +116,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } @@ -362,7 +362,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -381,7 +385,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -449,7 +457,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.ts index 6f8934437..9663113ff 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/integ.no-arguments.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/lambda-elasticsearch-kibana.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/lambda-elasticsearch-kibana.test.ts index 7dc4a8d95..59452bd7d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/lambda-elasticsearch-kibana.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/test/lambda-elasticsearch-kibana.test.ts @@ -106,7 +106,7 @@ test('check lambda function custom environment variable', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', @@ -545,7 +545,7 @@ test('Test error for Elasticsearch domain VPC props', () => { function getDefaultTestLambdaProps(): lambda.FunctionProps { return { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', }; } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/README.md index fc44a7db7..f9aa7aaf8 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/README.md @@ -36,7 +36,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToEventbridge(this, 'LambdaToEventbridgePattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -73,7 +73,7 @@ import software.amazon.awsconstructs.services.lambdaeventbridge.*; new LambdaToEventbridge(this, "LambdaToEventbridgePattern", new LambdaToEventbridgeProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts index 241cbc56d..93e167b64 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/aws-lambda-eventbridge.test.ts @@ -82,7 +82,7 @@ test('Test minimal deployment with new Lambda function', () => { // Helper declaration const construct = new LambdaToEventbridge(stack, 'lambda-to-eventbridge-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } @@ -134,7 +134,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToEventbridge(stack, "lambda-to-eventbridge-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -157,7 +157,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToEventbridge(stack, 'lambda-to-eventbridge-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -182,7 +182,7 @@ test('Test deployment w/ existing eventbus', () => { new LambdaToEventbridge(stack, 'lambda-to-eventbridge-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -222,7 +222,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToEventbridge(stack, "lambda-to-eventbridge-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -254,7 +254,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToEventbridge(stack, "lambda-to-eventbridge-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -295,7 +295,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToEventbridge(stack, "lambda-to-eventbridge-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -361,7 +361,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -392,7 +392,7 @@ test('Test lambda function custom environment variable', () => { // Helper declaration new LambdaToEventbridge(stack, 'lambda-to-eventbridge-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -404,7 +404,7 @@ test('Test lambda function custom environment variable', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', @@ -445,7 +445,7 @@ test('check multiple constructs in a single stack', () => { const props: LambdaToEventbridgeProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, eventBusProps: { eventBusName: 'test' } @@ -462,7 +462,7 @@ test('check multiple lambda functions publishing to single event bus', () => { const props1: LambdaToEventbridgeProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, eventBusProps: { eventBusName: 'test' } @@ -472,7 +472,7 @@ test('check multiple lambda functions publishing to single event bus', () => { const props2: LambdaToEventbridgeProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, existingEventBusInterface: construct.eventBus @@ -508,7 +508,7 @@ test('check multiple lambda functions publishing to single event bus', () => { // Check environment variables template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.expected.json index 4c158f101..5ab39a3c3 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.expected.json @@ -136,7 +136,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.ts index 4a3158eff..99930a321 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-eventbridge // Definitions const props: LambdaToEventbridgeProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json index bfb7470aa..ce8b67b82 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.expected.json @@ -165,7 +165,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.ts index 553ddd77c..28bed792c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithNewEventBus.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-eventbridge // Definitions const props: LambdaToEventbridgeProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.expected.json index 1463f9261..039171e95 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.expected.json @@ -177,7 +177,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.ts index baa8e4e41..79291d252 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.deployFunctionWithVpc.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-eventbridge // Definitions const props: LambdaToEventbridgeProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json index 74b0dc3c5..bf5172fd4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.expected.json @@ -124,7 +124,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.ts index 0f4a3863f..07afdb8e4 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingEventBus.ts @@ -26,7 +26,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-eventbridge // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.expected.json index 4db0259ac..39b2e657e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.expected.json @@ -136,7 +136,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.ts index f70aef8b2..3989538e7 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-eventbridge/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-eventbridge // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/README.md index 56fcfc889..b4f908309 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-kinesisfirehose/README.md @@ -36,7 +36,7 @@ const existingFirehoseDeliveryStream = previouslyCreatedKinesisFirehoseToS3Const new LambdaToKinesisFirehose(this, 'LambdaToFirehosePattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) }, @@ -84,7 +84,7 @@ existingFirehoseDeliveryStream = previouslyCreatedKinesisFirehoseToS3Construct.k new LambdaToKinesisFirehose(this, "LambdaToFirehosePattern", new LambdaToKinesisFirehoseProps.Builder() .existingKinesisFirehose(existingFirehoseDeliveryStream) .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/README.md index 7019627bb..6a6a4349a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/README.md @@ -36,7 +36,7 @@ import * as lambda from "aws-cdk-lib/aws-lambda"; const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -86,7 +86,7 @@ import software.amazon.awsconstructs.services.lambdaopensearch.*; new LambdaToOpenSearch(this, "sample", new LambdaToOpenSearchProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.cluster-config.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.cluster-config.expected.json index 8624352f7..17537ccb2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.cluster-config.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.cluster-config.expected.json @@ -157,7 +157,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, @@ -423,7 +423,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -442,7 +446,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -510,8 +518,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.cluster-config.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.cluster-config.ts index b77d3ff06..3b3465e9a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.cluster-config.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.cluster-config.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, defaults.generateIntegStackName(__filename), {}); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.disabled-zone-awareness.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.disabled-zone-awareness.expected.json index e936bc551..075ed1368 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.disabled-zone-awareness.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.disabled-zone-awareness.expected.json @@ -157,7 +157,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, @@ -419,7 +419,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -438,7 +442,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -506,8 +514,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.disabled-zone-awareness.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.disabled-zone-awareness.ts index 8899bf96b..656d43688 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.disabled-zone-awareness.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.disabled-zone-awareness.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, defaults.generateIntegStackName(__filename), {}); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.domain-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.domain-arguments.expected.json index 3bb455180..cdf431648 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.domain-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.domain-arguments.expected.json @@ -116,7 +116,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } @@ -362,7 +362,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -381,7 +385,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -449,8 +457,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.domain-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.domain-arguments.ts index 5570e298b..f40040eae 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.domain-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.domain-arguments.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.existing-vpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.existing-vpc.expected.json index d9eb71c21..6f806022f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.existing-vpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.existing-vpc.expected.json @@ -824,7 +824,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, @@ -1097,7 +1097,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -1116,7 +1120,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -1184,8 +1192,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.existing-vpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.existing-vpc.ts index 60030ec27..e7ca370d0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.existing-vpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.existing-vpc.ts @@ -30,7 +30,7 @@ const vpc = defaults.getTestVpc(stack); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.no-arguments.expected.json index 52cb2b7e0..95f8a357e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.no-arguments.expected.json @@ -116,7 +116,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } @@ -362,7 +362,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -381,7 +385,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -449,8 +457,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.no-arguments.ts index 321aefb9a..8330476a9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.no-arguments.ts @@ -23,7 +23,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.vpc-props.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.vpc-props.expected.json index d84589b6f..139b6889e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.vpc-props.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.vpc-props.expected.json @@ -155,7 +155,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, @@ -425,7 +425,11 @@ "Fn::Join": [ "", [ - "arn:aws:cognito-identity:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":cognito-identity:", { "Ref": "AWS::Region" }, @@ -444,7 +448,11 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + "Ref": "AWS::Partition" + }, + ":es:", { "Ref": "AWS::Region" }, @@ -512,8 +520,12 @@ "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", { + "Ref": "AWS::Partition" + }, + ":es:", + { "Ref": "AWS::Region" }, ":", diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.vpc-props.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.vpc-props.ts index 38f294adf..5f3e4a932 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.vpc-props.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/integ.vpc-props.ts @@ -28,7 +28,7 @@ const stack = new Stack(app, defaults.generateIntegStackName(__filename), { const lambdaProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/lambda-opensearch.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/lambda-opensearch.test.ts index 437290cab..a3620631e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/lambda-opensearch.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-opensearch/test/lambda-opensearch.test.ts @@ -30,7 +30,7 @@ function deployLambdaToOpenSearch(stack: cdk.Stack) { function getDefaultTestLambdaProps(): lambda.FunctionProps { return { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', }; } @@ -75,7 +75,7 @@ test('Check for an existing Lambda object', () => { const existingLambdaObj = defaults.buildLambdaFunction(stack, { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', functionName: 'test-function' } @@ -108,7 +108,7 @@ test('Check Lambda function custom environment variable', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.md index 79be99509..911720e6b 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.md @@ -32,7 +32,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToS3(this, 'LambdaToS3Pattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -69,7 +69,7 @@ import software.amazon.awsconstructs.services.lambdas3.*; new LambdaToS3(this, "LambdaToS3Pattern", new LambdaToS3Props.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.expected.json index 854411e6f..2ed044729 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.expected.json @@ -150,7 +150,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.ts index fd3b1ad7f..fa78562bc 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.customLoggingBucket.ts @@ -25,7 +25,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); new LambdaToS3(stack, 'test-lambda-s3', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.expected.json index 914069911..b9545b2ce 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.expected.json @@ -151,7 +151,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.ts index f6635ef62..3fcb74de5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunction.ts @@ -27,7 +27,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-s3'; // Definitions const props: LambdaToS3Props = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json index c664e4f07..c52d3448b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.expected.json @@ -192,7 +192,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.ts index d48f0b246..c7376b46e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.deployFunctionWithVpc.ts @@ -27,7 +27,7 @@ import * as defaults from '@aws-solutions-constructs/core'; // Definitions const props: LambdaToS3Props = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.expected.json index c2e776610..3285914cf 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.expected.json @@ -151,7 +151,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.ts index 558c9da98..6cae658ce 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-s3'; // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.expected.json index b283f1927..8ca6bc3ed 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.expected.json @@ -199,7 +199,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.ts index 89da32b4d..24ed2047b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.ts @@ -30,7 +30,7 @@ const mybucket: s3.IBucket = s3.Bucket.fromBucketName(stack, 'mybucket', existin const props: LambdaToS3Props = { existingBucketObj: mybucket, lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/lambda-s3.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/lambda-s3.test.ts index 7edaa41c6..2b1522287 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/lambda-s3.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/lambda-s3.test.ts @@ -29,7 +29,7 @@ test('Test the properties', () => { // Helper declaration const pattern = new LambdaToS3(stack, 'lambda-to-s3-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -53,7 +53,7 @@ test('Test the bucketProps override', () => { // Helper declaration new LambdaToS3(stack, 'lambda-to-s3-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -78,7 +78,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToS3(stack, "lambda-to-s3-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -129,7 +129,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToS3(stack, "lambda-to-s3-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -189,7 +189,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToS3(stack, "lambda-to-s3-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -234,7 +234,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -268,7 +268,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToS3(stack, "lambda-to-s3-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -293,7 +293,7 @@ test('Test lambda function custom environment variable', () => { new LambdaToS3(stack, 'lambda-to-s3-stack', { existingBucketObj: mybucket, lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -304,7 +304,7 @@ test('Test lambda function custom environment variable', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', @@ -329,7 +329,7 @@ test("Test bad call with existingBucket and bucketProps", () => { // Helper declaration new LambdaToS3(stack, "bad-s3-args", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -348,7 +348,7 @@ test('Test that CheckProps() is flagging errors correctly', () => { const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -357,7 +357,7 @@ test('Test that CheckProps() is flagging errors correctly', () => { new LambdaToS3(stack, "lambda-to-s3-stack", { existingLambdaObj: testLambdaFunction, lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -380,7 +380,7 @@ test('s3 bucket with bucket, loggingBucket, and auto delete objects', () => { new LambdaToS3(stack, 'lambda-s3', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, bucketProps: { @@ -419,7 +419,7 @@ test('s3 bucket with one content bucket and no logging bucket', () => { new LambdaToS3(stack, 'lambda-s3', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, bucketProps: { @@ -438,7 +438,7 @@ test('Test bad bucket permission', () => { const props = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, bucketProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/README.md index 3f43cfd36..fcb6bc26c 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sagemakerendpoint/README.md @@ -109,7 +109,7 @@ new LambdaToSagemakerEndpoint(this, "LambdaToSagemakerEndpointPattern", .executionRoleArn("executionRoleArn") .build()) .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .timeout(Duration.minutes(5)) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/README.md index 96f7a3670..e3e184713 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/README.md @@ -36,7 +36,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: LambdaToSecretsmanagerProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`lambda`), handler: 'index.handler' }, @@ -77,7 +77,7 @@ import software.amazon.awsconstructs.services.lambdasecretsmanager.*; new LambdaToSecretsmanager(this, "test-lambda-secretsmanager-stack", new LambdaToSecretsmanagerProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.expected.json index c5ba55a2f..abd995aa7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.expected.json @@ -124,7 +124,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.ts index 8b0ac6d51..88280cd17 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-secretsmana // Definitions const props: LambdaToSecretsmanagerProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.expected.json index 6b44d2cfb..8d0505d94 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.expected.json @@ -875,7 +875,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.ts index 7ef1f104a..29bcee758 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithExistingVpc.ts @@ -35,7 +35,7 @@ const vpc = defaults.buildVpc(stack, { // Definitions const props: LambdaToSecretsmanagerProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.expected.json index ffb0e295c..b613ac9e0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.expected.json @@ -165,7 +165,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.ts index e1af6b974..3fb328cb1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.deployFunctionWithVpc.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-secretsmana // Definitions const props: LambdaToSecretsmanagerProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.expected.json index 65fbc438b..377c92c56 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.expected.json @@ -124,7 +124,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.ts index 99a92499c..94e5376c2 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-secretsmana // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/lambda-secretsmanager.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/lambda-secretsmanager.test.ts index be251a314..e693e5891 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/lambda-secretsmanager.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-secretsmanager/test/lambda-secretsmanager.test.ts @@ -29,7 +29,7 @@ test('Test the properties', () => { // Helper declaration const pattern = new LambdaToSecretsmanager(stack, 'lambda-to-secretsmanager-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -53,7 +53,7 @@ test('Test deployment w/ existing secret', () => { const existingSecret = new Secret(stack, 'secret', {}); const pattern = new LambdaToSecretsmanager(stack, 'lambda-to-secretsmanager-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -76,7 +76,7 @@ test('Test deployment w/ existing function', () => { const stack = new Stack(); // Helper declaration const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -104,7 +104,7 @@ test('Test minimal deployment write access to Secret', () => { // Helper declaration new LambdaToSecretsmanager(stack, 'lambda-to-secretsmanager-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -128,7 +128,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToSecretsmanager(stack, "lambda-to-secretsmanager-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -180,7 +180,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToSecretsmanager(stack, "lambda-to-secretsmanager-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -241,7 +241,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToSecretsmanager(stack, "lambda-to-secretsmanager-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -287,7 +287,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -322,7 +322,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToSecretsmanager(stack, "lambda-to-secretsmanager-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -345,7 +345,7 @@ test('Test lambda function custom environment variable', () => { // Helper declaration new LambdaToSecretsmanager(stack, 'lambda-to-secretsmanager-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -360,7 +360,7 @@ test('Test lambda function custom environment variable', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', @@ -386,7 +386,7 @@ test('Test overriding secretProps to pass a customer provided CMK', () => { // Helper declaration new LambdaToSecretsmanager(stack, 'lambda-to-secretsmanager-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -402,7 +402,7 @@ test('Test overriding secretProps to pass a customer provided CMK', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/README.md index 3fb82f8e7..d7034ad76 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/README.md @@ -32,7 +32,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToSns(this, 'test-lambda-sns', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -70,7 +70,7 @@ import software.amazon.awsconstructs.services.lambdasns.*; new LambdaToSns(this, "test-lambda-sns-stack", new LambdaToSnsProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.expected.json index 3f56fd07e..5b7927327 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.expected.json @@ -127,7 +127,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.ts index 1e549c4ec..047517fe0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sns'; // Definitions const props: LambdaToSnsProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.expected.json index 8ccdb9ac2..c9e10345b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.expected.json @@ -168,7 +168,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.ts index bb6264c91..1d840893b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.deployFunctionWithVpc.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-sns"; // Definitions const props: LambdaToSnsProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.expected.json index 0913938c4..26ac8d886 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.expected.json @@ -127,7 +127,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.ts index 3683fe405..2298328fa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sns'; // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/lambda-sns.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/lambda-sns.test.ts index e0d58048c..9cb585c4c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/lambda-sns.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/test/lambda-sns.test.ts @@ -29,7 +29,7 @@ test('Test deployment with new Lambda function', () => { // Helper declaration const testConstruct = new LambdaToSns(stack, 'lambda-to-sns-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -94,7 +94,7 @@ test('Test deployment with existing existingTopicObj', () => { // Helper declaration new LambdaToSns(stack, 'lambda-to-sns-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -119,7 +119,7 @@ test('override topicProps', () => { const props: LambdaToSnsProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, topicProps: { @@ -144,7 +144,7 @@ test('Test the properties', () => { // Helper declaration const pattern = new LambdaToSns(stack, 'lambda-to-sns-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } @@ -166,7 +166,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToSns(stack, "lambda-to-sns-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -217,7 +217,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToSns(stack, "lambda-to-sns-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -277,7 +277,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToSns(stack, "lambda-to-sns-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -322,7 +322,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -356,7 +356,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToSns(stack, "lambda-to-sns-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -378,7 +378,7 @@ test('Test lambda function custom environment variable', () => { // Helper declaration new LambdaToSns(stack, 'lambda-to-sns-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -390,7 +390,7 @@ test('Test lambda function custom environment variable', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', @@ -414,7 +414,7 @@ test('Topic is encrypted with imported CMK when set on encryptionKey prop', () = const cmk = new kms.Key(stack, 'cmk'); new LambdaToSns(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -441,7 +441,7 @@ test('Topic is encrypted with imported CMK when set on topicProps.masterKey prop const cmk = new kms.Key(stack, 'cmk'); new LambdaToSns(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -469,7 +469,7 @@ test('Topic is encrypted with provided encrytionKeyProps', () => { new LambdaToSns(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -507,7 +507,7 @@ test('Topic is encrypted by default with AWS-managed KMS key when no other encry new LambdaToSns(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -546,7 +546,7 @@ test('Topic is encrypted with customer managed KMS Key when enable encryption fl new LambdaToSns(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/README.md index b10313a28..5ce3c4efa 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/README.md @@ -36,12 +36,12 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToSqsToLambda(this, 'LambdaToSqsToLambdaPattern', { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`producer-lambda`) }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`consumer-lambda`) } @@ -84,12 +84,12 @@ import software.amazon.awsconstructs.services.lambdasqslambda.*; new LambdaToSqsToLambda(this, "LambdaToSqsToLambdaPattern", new LambdaToSqsToLambdaProps.Builder() .producerLambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("producer-lambda")) .handler("index.handler") .build()) .consumerLambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("consumer-lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.expected.json index f5845e1ec..ebdcef715 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.expected.json @@ -128,7 +128,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } @@ -449,7 +449,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.ts index f0ea27c7d..17ad1a47b 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.defaultDeployment.ts @@ -25,12 +25,12 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sqs-lambda' // Definitions const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.expected.json index 3391b3503..40b1ad280 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.expected.json @@ -169,7 +169,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, @@ -891,7 +891,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.ts index eeddefb7c..1d157343a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.deployProducerFunctionWithVpc.ts @@ -25,12 +25,12 @@ stack.templateOptions.description = "Integration Test for aws-lambda-sqs-lambda" // Definitions const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.expected.json index 3f8705ff3..ce8eeeb53 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.expected.json @@ -127,7 +127,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } @@ -296,7 +296,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.ts index c884a5d95..7d6d8bc5a 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingConsumerFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sqs-lambda' // Definitions const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) }; @@ -34,7 +34,7 @@ const existingConsumerFn = defaults.deployLambdaFunction(stack, lambdaFunctionPr const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.expected.json index 2e305ffdc..8c957b531 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.expected.json @@ -128,7 +128,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } @@ -449,7 +449,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.ts index 8c4e679ea..850bfca90 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingProducerFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sqs-lambda' // Definitions const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }; @@ -35,7 +35,7 @@ const existingProducerFn = defaults.deployLambdaFunction(stack, lambdaFunctionPr const props: LambdaToSqsToLambdaProps = { existingProducerLambdaObj: existingProducerFn, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.expected.json index caf80b5ac..f8cfe92f8 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.expected.json @@ -207,7 +207,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } @@ -361,7 +361,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.ts index b436bdb9f..b136910ab 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/integ.existingQueue.ts @@ -28,13 +28,13 @@ const buildQueueResponse = defaults.buildQueue(stack, 'existing-sqs-queue', {}); const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, existingQueueObj: buildQueueResponse.queue, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/lambda-sqs-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/lambda-sqs-lambda.test.ts index 2fc74b6a8..b95479002 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/lambda-sqs-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/test/lambda-sqs-lambda.test.ts @@ -28,13 +28,13 @@ test('Test minimal deployment', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -126,7 +126,7 @@ test('Test deployment w/ existing producer function', () => { // Define existing resources const existingProducerFn = defaults.buildLambdaFunction(stack, { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'existing-producer-function' @@ -136,7 +136,7 @@ test('Test deployment w/ existing producer function', () => { const props: LambdaToSqsToLambdaProps = { existingProducerLambdaObj: existingProducerFn, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'deployed-consumer-function' @@ -164,7 +164,7 @@ test('Test deployment w/ existing consumer function', () => { // Define existing resources const existingConsumerFn = defaults.buildLambdaFunction(stack, { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'existing-consumer-function' @@ -173,7 +173,7 @@ test('Test deployment w/ existing consumer function', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'deployed-producer-function' @@ -208,13 +208,13 @@ test('Test deployment w/ existing queue', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -239,12 +239,12 @@ test('Test deployment w/ DLQ explicitly disabled', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) }, @@ -270,12 +270,12 @@ test('Test deployment w/ DLQ explicitly enabled and w/ MRC override', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`) }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`) }, @@ -308,13 +308,13 @@ test('Test overrides for producer and consumer functions', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -325,11 +325,11 @@ test('Test overrides for producer and consumer functions', () => { // Assertion 2: test for updated runtime on producer function const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { - Runtime: "nodejs14.x" + Runtime: "nodejs16.x" }); // Assertion 3: test for updated runtime on consumer function template.hasResourceProperties('AWS::Lambda::Function', { - Runtime: "nodejs14.x" + Runtime: "nodejs16.x" }); }); @@ -342,13 +342,13 @@ test('Test the public pattern props', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -375,13 +375,13 @@ test('Test lambda function custom environment variable', () => { // Helper declaration const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -412,13 +412,13 @@ test('Pattern deployment w/ batch size', () => { const stack = new Stack(); const props: LambdaToSqsToLambdaProps = { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -444,13 +444,13 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToSqsToLambda(stack, "lambda-to-sqs-to-lambda-stack", { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -502,13 +502,13 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToSqsToLambda(stack, "lambda-to-sqs-to-lambda-stack", { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -569,13 +569,13 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToSqsToLambda(stack, "lambda-to-sqs-to-lambda-stack", { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' @@ -623,13 +623,13 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToSqsToLambda(stack, "lambda-to-sqs-to-lambda-stack", { producerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/producer-function`), functionName: 'producer-function' }, consumerLambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda/consumer-function`), functionName: 'consumer-function' diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/README.md index 062b58463..502a8123d 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/README.md @@ -32,7 +32,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new LambdaToSqs(this, 'LambdaToSqsPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -70,7 +70,7 @@ import software.amazon.awsconstructs.services.lambdasqs.*; new LambdaToSqs(this, "test-lambda-sqs-stack", new LambdaToSqsProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.expected.json index 07a78d147..966e2d9e8 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.expected.json @@ -128,7 +128,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.ts index 74f74b351..c4987a121 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sqs'; // Definitions const props: LambdaToSqsProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.expected.json index d10cd8b60..d54428b69 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.expected.json @@ -169,7 +169,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.ts index 1921a4687..a292b54a6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.deployFunctionWithVpc.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-sqs"; // Definitions const props: LambdaToSqsProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.expected.json index 374630636..9944b622e 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.expected.json @@ -128,7 +128,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.ts index 9b95a37ce..918e66a4f 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-sqs'; // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/lambda-sqs.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/lambda-sqs.test.ts index 15d85531c..43e48f02e 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/lambda-sqs.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/test/lambda-sqs.test.ts @@ -28,7 +28,7 @@ test('Test the properties', () => { // Helper declaration const pattern = new LambdaToSqs(stack, 'lambda-to-sqs-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -53,7 +53,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToSqs(stack, "lambda-to-sqs-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -104,7 +104,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToSqs(stack, "lambda-to-sqs-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -164,7 +164,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToSqs(stack, "lambda-to-sqs-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -209,7 +209,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -243,7 +243,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToSqs(stack, "lambda-to-sqs-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -265,7 +265,7 @@ test('Test lambda function custom environment variable', () => { // Helper declaration new LambdaToSqs(stack, 'lambda-to-sqs-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -276,7 +276,7 @@ test('Test lambda function custom environment variable', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', @@ -294,7 +294,7 @@ test('Queue is encrypted with imported CMK when set on encryptionKey prop', () = const cmk = new kms.Key(stack, 'cmk'); new LambdaToSqs(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -321,7 +321,7 @@ test('Queue is encrypted with imported CMK when set on queueProps.encryptionMast const cmk = new kms.Key(stack, 'cmk'); new LambdaToSqs(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -349,7 +349,7 @@ test('Queue is encrypted with provided encrytionKeyProps', () => { new LambdaToSqs(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -387,7 +387,7 @@ test('Queue is encrypted by default with SQS-managed KMS key when no other encry new LambdaToSqs(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -407,7 +407,7 @@ test('Queue is encrypted with customer managed KMS Key when enable encryption fl new LambdaToSqs(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -446,7 +446,7 @@ test('Queue purging flag grants correct permissions', () => { new LambdaToSqs(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/README.md index 51dcb4dd2..aed870756 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/README.md @@ -36,7 +36,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; const constructProps: LambdaToSsmstringparameterProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`lambda`), handler: 'index.handler' }, @@ -82,7 +82,7 @@ import software.amazon.awsconstructs.services.lambdassmstringparameter.*; new LambdaToSsmstringparameter(this, "test-lambda-ssmstringparameter-stack", new LambdaToSsmstringparameterProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.expected.json index 436a30b8b..d891590f7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.expected.json @@ -146,7 +146,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.ts index f944146b7..1e0c6314c 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-ssmstringpa // Definitions const props: LambdaToSsmstringparameterProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.expected.json index 817693b24..cb2ca1af1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.expected.json @@ -897,7 +897,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.ts index f3850b6fa..3b4d34ab6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithExistingVpc.ts @@ -35,7 +35,7 @@ const vpc = defaults.buildVpc(stack, { // Definitions const props: LambdaToSsmstringparameterProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.expected.json index 044da5b09..ac2fa43fa 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.expected.json @@ -187,7 +187,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.ts index ec4d9e608..1ed2eb7e1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.deployFunctionWithVpc.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = "Integration Test for aws-lambda-ssmstringpa // Definitions const props: LambdaToSsmstringparameterProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.expected.json index 9abdc6797..c8bcfc575 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.expected.json @@ -146,7 +146,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.ts index 8e692624d..fd280df21 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-lambda-ssmstringpa // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.expected.json index 97a664bf8..6e184391f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.expected.json @@ -153,7 +153,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.ts index 9c7fa9c04..4c3fab726 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/integ.existingStringParameter.ts @@ -27,7 +27,7 @@ const existingStringParam = new StringParameter(stack, 'myNewStringParameter', { // Definitions const props: LambdaToSsmstringparameterProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/lambda-ssmstringparameter.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/lambda-ssmstringparameter.test.ts index 4caafa03f..db3f570b9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/lambda-ssmstringparameter.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-ssmstringparameter/test/lambda-ssmstringparameter.test.ts @@ -30,7 +30,7 @@ test('Test lambda function custom environment variable', () => { // Helper declaration new LambdaToSsmstringparameter(stack, 'lambda-to-ssm-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -45,7 +45,7 @@ test('Test lambda function custom environment variable', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', @@ -66,7 +66,7 @@ test('Test the properties', () => { // Helper declaration const pattern = new LambdaToSsmstringparameter(stack, 'lambda-to-ssm-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -90,7 +90,7 @@ test('Test deployment w/ existing String Parameter', () => { const existingStringParam = new StringParameter(stack, 'myNewStringParameter', {stringValue: "test-string-value" }); const pattern = new LambdaToSsmstringparameter(stack, 'lambda-to-ssm-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -115,7 +115,7 @@ test('Test deployment w/ existing function', () => { const stack = new Stack(); // Helper declaration const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -144,7 +144,7 @@ test('Test minimal deployment write access to String Parameter ', () => { // Helper declaration new LambdaToSsmstringparameter(stack, 'lambda-to-ssm-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -169,7 +169,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToSsmstringparameter(stack, 'lambda-to-ssm-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -221,7 +221,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToSsmstringparameter(stack, 'lambda-to-ssm-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -282,7 +282,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToSsmstringparameter(stack, 'lambda-to-ssm-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -328,7 +328,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -363,7 +363,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToSsmstringparameter(stack, "lambda-to-ssm-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -384,7 +384,7 @@ test("Test bad call with invalid string parameter permission", () => { // Helper declaration new LambdaToSsmstringparameter(stack, "lambda-to-ssm-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/README.md b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/README.md index 66087eaf2..79294aa63 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/README.md @@ -35,7 +35,7 @@ const startState = new stepfunctions.Pass(this, 'StartState'); new LambdaToStepfunctions(this, 'LambdaToStepfunctionsPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) }, @@ -85,7 +85,7 @@ final Pass startState = new Pass(this, "StartState"); new LambdaToStepfunctions(this, "test-lambda-stepfunctions-stack", new LambdaToStepfunctionsProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.expected.json index 5b143ae00..cf8519009 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.expected.json @@ -265,7 +265,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.ts index fbfddad5a..7bf44dcb1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deploy-lambda.ts @@ -28,7 +28,7 @@ const startState = new stepfunctions.Pass(stack, 'StartState'); // Setup the pattern props const props: LambdaToStepfunctionsProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.expected.json index b6a15e9ab..818d0a749 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.expected.json @@ -307,7 +307,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.ts index 7039ee02d..b22b1652b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.deployFunctionWithVpc.ts @@ -29,7 +29,7 @@ const startState = new stepfunctions.Pass(stack, 'StartState'); // Definitions const props: LambdaToStepfunctionsProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.expected.json b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.expected.json index 710fba8bd..1d02f85e7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.expected.json @@ -120,7 +120,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.ts index 3eb37c182..5c7fea70e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/integ.existing-function.ts @@ -28,7 +28,7 @@ const startState = new stepfunctions.Pass(stack, 'StartState'); // Setup the "existing" Lambda function props const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/lambda-stepfunctions.test.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/lambda-stepfunctions.test.ts index 8606e5b2a..040fdc55c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/lambda-stepfunctions.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-stepfunctions/test/lambda-stepfunctions.test.ts @@ -30,7 +30,7 @@ test('Test deployment with new Lambda function', () => { const startState = new stepfunctions.Pass(stack, 'StartState'); new LambdaToStepfunctions(stack, 'lambda-to-step-function-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -64,7 +64,7 @@ test('Test deployment with existing Lambda function', () => { // Helper declaration const startState = new stepfunctions.Pass(stack, 'StartState'); const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -99,7 +99,7 @@ test('Test invocation permissions', () => { // Helper declaration const startState = new stepfunctions.Pass(stack, 'StartState'); const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -150,7 +150,7 @@ test('Test the properties', () => { const startState = new stepfunctions.Pass(stack, 'StartState'); const pattern = new LambdaToStepfunctions(stack, 'lambda-to-step-function-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -183,7 +183,7 @@ test('Test the properties with no CW Alarms', () => { const startState = new stepfunctions.Pass(stack, 'StartState'); const pattern = new LambdaToStepfunctions(stack, 'lambda-to-step-function-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -215,7 +215,7 @@ test('Test lambda function custom environment variable', () => { const startState = new stepfunctions.Pass(stack, 'StartState'); new LambdaToStepfunctions(stack, 'lambda-to-step-function-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -229,7 +229,7 @@ test('Test lambda function custom environment variable', () => { const template = Template.fromStack(stack); template.hasResourceProperties('AWS::Lambda::Function', { Handler: 'index.handler', - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1', @@ -251,7 +251,7 @@ test("Test minimal deployment that deploys a VPC without vpcProps", () => { // Helper declaration new LambdaToStepfunctions(stack, "lambda-to-stepfunctions-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -306,7 +306,7 @@ test("Test minimal deployment that deploys a VPC w/vpcProps", () => { // Helper declaration new LambdaToStepfunctions(stack, "lambda-to-stepfunctions-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -369,7 +369,7 @@ test("Test minimal deployment with an existing VPC", () => { // Helper declaration new LambdaToStepfunctions(stack, "lambda-to-stepfunctions-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -418,7 +418,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const startState = new stepfunctions.Pass(stack, 'StartState'); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -455,7 +455,7 @@ test("Test bad call with existingVpc and deployVpc", () => { // Helper declaration new LambdaToStepfunctions(stack, "lambda-to-stepfunctions-stack", { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -477,7 +477,7 @@ test('check LogGroup name', () => { const startState = new stepfunctions.Pass(stack, 'StartState'); new LambdaToStepfunctions(stack, 'lambda-to-step-function-stack', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.md index 3a4ef39bd..56ae1f980 100755 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.md @@ -33,7 +33,7 @@ import { S3ToLambdaProps, S3ToLambda } from '@aws-solutions-constructs/aws-s3-la new S3ToLambda(this, 'test-s3-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, }); @@ -70,7 +70,7 @@ import software.amazon.awsconstructs.services.s3lambda.*; new S3ToLambda(this, "test-s3-lambda'", new S3ToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.expected.json index e38cb195b..dac0c3663 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.expected.json @@ -202,7 +202,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.ts b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.ts index bbbbe9596..2ff9ac1e0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.existing-s3-bucket.ts @@ -28,7 +28,7 @@ const myBucket = CreateScrapBucket(stack, {}); const props: S3ToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, existingBucketObj: myBucket diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json index a26850fb0..10c85e0e7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.expected.json @@ -110,7 +110,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.ts index 6b71da5dd..85b7b0ce0 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/integ.no-arguments.ts @@ -27,7 +27,7 @@ const stack = new Stack(app, generateIntegStackName(__filename)); const props: S3ToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, bucketProps: { diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/s3-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/s3-lambda.test.ts index acd6280cb..ba766158b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/s3-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/test/s3-lambda.test.ts @@ -22,7 +22,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: S3ToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, bucketProps: { @@ -74,7 +74,7 @@ test('s3 bucket with bucket, loggingBucket, and auto delete objects', () => { new S3ToLambda(stack, 's3-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, bucketProps: { @@ -113,7 +113,7 @@ test('s3 bucket with one content bucket and no logging bucket', () => { new S3ToLambda(stack, 's3-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, bucketProps: { @@ -132,7 +132,7 @@ test('check properties with existing S3 bucket', () => { const construct = new S3ToLambda(stack, 's3-lambda', { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, existingBucketObj: existingBucket diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/README.md index 1f02e2346..d508a30eb 100755 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/README.md @@ -32,7 +32,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new SnsToLambda(this, 'test-sns-lambda', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -68,7 +68,7 @@ import software.amazon.awsconstructs.services.snslambda.*; new SnsToLambda(this, "test-lambda-sqs-stack", new SnsToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.expected.json index 1998e9709..d96ac9479 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.expected.json @@ -111,7 +111,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.ts index 627d9ca08..1091890b1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/integ.no-arguments.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-sns-lambda'; // Definitions const props: SnsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) } diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/sns-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/sns-lambda.test.ts index 3f09481c4..1e4f0b71c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/sns-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/test/sns-lambda.test.ts @@ -22,7 +22,7 @@ function deployNewFunc(stack: cdk.Stack) { const props: SnsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, }; @@ -45,7 +45,7 @@ test('override topicProps', () => { const props: SnsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, topicProps: { @@ -71,7 +71,7 @@ test('provide existingTopicObj', () => { const props: SnsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, existingTopicObj: topic @@ -91,7 +91,7 @@ test('Topic is encrypted with imported CMK when set on encryptionKey prop', () = const props: SnsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, encryptionKey: cmk @@ -116,7 +116,7 @@ test('Topic is encrypted with imported CMK when set on topicProps.masterKey prop const props: SnsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, topicProps: { @@ -143,7 +143,7 @@ test('Topic is encrypted with provided encrytionKeyProps', () => { const props: SnsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, encryptionKeyProps: { @@ -180,7 +180,7 @@ test('Topic is encrypted by default with AWS-managed KMS key when no other encry const props: SnsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, }; @@ -218,7 +218,7 @@ test('Topic is encrypted with customer managed KMS Key when enable encryption fl const props: SnsToLambdaProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }, enableEncryptionWithCustomerManagedKey: true diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/README.md b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/README.md index d406920bc..e6d88dd8b 100755 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/README.md @@ -32,7 +32,7 @@ import * as lambda from 'aws-cdk-lib/aws-lambda'; new SqsToLambda(this, 'SqsToLambdaPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -70,7 +70,7 @@ import software.amazon.awsconstructs.services.sqslambda.*; new SqsToLambda(this, "SnsToSqsPattern", new SqsToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.expected.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.expected.json index 0e33ea98c..b74d97aac 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.expected.json @@ -127,7 +127,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.ts b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.ts index 70a677b7a..9258bae88 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFifoQueue.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-sqs-lambda with FI // Definitions const props: SqsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.expected.json index 488ada4b1..76909919a 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.expected.json @@ -127,7 +127,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.ts b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.ts index 240a47147..5052f734e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.deployFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-sqs-lambda'; // Definitions const props: SqsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.expected.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.expected.json index 751d913a0..b573f41ee 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.expected.json @@ -127,7 +127,7 @@ } }, "Handler": "index.handler", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": { "Mode": "Active" } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.ts b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.ts index c31e92086..7962b181d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/integ.existingFunction.ts @@ -25,7 +25,7 @@ stack.templateOptions.description = 'Integration Test for aws-sqs-lambda'; // Definitions const lambdaFunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/test.sqs-lambda.test.ts b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/test.sqs-lambda.test.ts index bf4ddff74..efbc2b91f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/test.sqs-lambda.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/test/test.sqs-lambda.test.ts @@ -27,7 +27,7 @@ test('Pattern deployment w/ new Lambda function and overridden props', () => { const stack = new Stack(); const props: SqsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -63,7 +63,7 @@ test('Test getter methods', () => { const stack = new Stack(); const props: SqsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }, @@ -123,7 +123,7 @@ test('Pattern deployment w/ batch size', () => { const stack = new Stack(); const props: SqsToLambdaProps = { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }, @@ -145,7 +145,7 @@ test('Queue is encrypted with imported CMK when set on encryptionKey prop', () = const cmk = new kms.Key(stack, 'cmk'); new SqsToLambda(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -172,7 +172,7 @@ test('Queue is encrypted with imported CMK when set on queueProps.encryptionMast const cmk = new kms.Key(stack, 'cmk'); new SqsToLambda(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -200,7 +200,7 @@ test('Queue is encrypted with provided encrytionKeyProps', () => { new SqsToLambda(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -238,7 +238,7 @@ test('Queue is encrypted by default with SQS-managed KMS key when no other encry new SqsToLambda(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { @@ -258,7 +258,7 @@ test('Queue is encrypted with customer managed KMS Key when enable encryption fl new SqsToLambda(stack, 'test-construct', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), environment: { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/README.md b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/README.md index ae73fb60f..a085ad543 100755 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/README.md @@ -38,7 +38,7 @@ import { WafwebaclToApiGatewayProps, WafwebaclToApiGateway } from "@aws-solution const apiGatewayToLambda = new ApiGatewayToLambda(this, 'ApiGatewayToLambdaPattern', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`lambda`) } @@ -91,7 +91,7 @@ import software.amazon.awsconstructs.services.wafwebaclapigateway.*; final ApiGatewayToLambda apiGatewayToLambda = new ApiGatewayToLambda(this, "ApiGatewayToLambdaPattern", new ApiGatewayToLambdaProps.Builder() .lambdaFunctionProps(new FunctionProps.Builder() - .runtime(Runtime.NODEJS_14_X) + .runtime(Runtime.NODEJS_16_X) .code(Code.fromAsset("lambda")) .handler("index.handler") .build()) diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/lib/index.ts index a492fc189..e88e360e6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/lib/index.ts @@ -36,7 +36,7 @@ export interface WafwebaclToApiGatewayProps { * * @default - Default properties are used. */ - readonly webaclProps?: waf.CfnWebACLProps, + readonly webaclProps?: waf.CfnWebACLProps | any, } /** diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.expected.json index 0c75a7547..a8c3a785d 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.existing-waf-to-multiple-gateways.expected.json @@ -47,7 +47,7 @@ ] }, "Handler": ".handler", - "Runtime": "nodejs14.x" + "Runtime": "nodejs16.x" }, "DependsOn": [ "testOneFunctionServiceRole3F9CD9E7" @@ -500,7 +500,7 @@ ] }, "Handler": ".handler", - "Runtime": "nodejs14.x" + "Runtime": "nodejs16.x" }, "DependsOn": [ "testTwoFunctionServiceRoleF678C905" diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.expected.json index 914ea11b1..0f7c7a7ec 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.expected.json +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.no-arguments.expected.json @@ -47,7 +47,7 @@ ] }, "Handler": ".handler", - "Runtime": "nodejs14.x" + "Runtime": "nodejs16.x" }, "DependsOn": [ "testFunctionServiceRoleFEC29B6F" diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.partial-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.partial-arguments.expected.json new file mode 100644 index 000000000..b48ef6055 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.partial-arguments.expected.json @@ -0,0 +1,696 @@ +{ + "Resources": { + "testFunctionServiceRoleFEC29B6F": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" + ] + ] + } + ] + } + }, + "testFunction483F4CBE": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "S3Bucket": { + "Fn::Sub": "cdk-hnb659fds-assets-${AWS::AccountId}-${AWS::Region}" + }, + "S3Key": "0904d3723480fed2daf7885caa427b930881caae6879d1e6b0d395020173ef6f.zip" + }, + "Role": { + "Fn::GetAtt": [ + "testFunctionServiceRoleFEC29B6F", + "Arn" + ] + }, + "Handler": ".handler", + "Runtime": "nodejs16.x" + }, + "DependsOn": [ + "testFunctionServiceRoleFEC29B6F" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W58", + "reason": "Test Resource" + }, + { + "id": "W89", + "reason": "Test Resource" + }, + { + "id": "W92", + "reason": "Test Resource" + } + ] + } + } + }, + "testApiD6ECAB50": { + "Type": "AWS::ApiGateway::RestApi", + "Properties": { + "Name": "testApi" + } + }, + "testApiCloudWatchRole8A11639C": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "apigateway.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "ManagedPolicyArns": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs" + ] + ] + } + ] + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "testApiAccountA6723CBB": { + "Type": "AWS::ApiGateway::Account", + "Properties": { + "CloudWatchRoleArn": { + "Fn::GetAtt": [ + "testApiCloudWatchRole8A11639C", + "Arn" + ] + } + }, + "DependsOn": [ + "testApiD6ECAB50" + ], + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "testApiDeployment3727A0B98616f677c89f00f84016798f65d107c0": { + "Type": "AWS::ApiGateway::Deployment", + "Properties": { + "RestApiId": { + "Ref": "testApiD6ECAB50" + }, + "Description": "Automatically created by the RestApi construct" + }, + "DependsOn": [ + "testApiproxyANYC53F2608", + "testApiproxyA0E5503A", + "testApiANYDC600770" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W68", + "reason": "Test Resource" + } + ] + } + } + }, + "testApiDeploymentStageprodCE051BE8": { + "Type": "AWS::ApiGateway::Stage", + "Properties": { + "RestApiId": { + "Ref": "testApiD6ECAB50" + }, + "DeploymentId": { + "Ref": "testApiDeployment3727A0B98616f677c89f00f84016798f65d107c0" + }, + "StageName": "prod" + }, + "DependsOn": [ + "testApiAccountA6723CBB" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W64", + "reason": "Test Resource" + }, + { + "id": "W69", + "reason": "Test Resource" + } + ] + } + } + }, + "testApiproxyA0E5503A": { + "Type": "AWS::ApiGateway::Resource", + "Properties": { + "ParentId": { + "Fn::GetAtt": [ + "testApiD6ECAB50", + "RootResourceId" + ] + }, + "PathPart": "{proxy+}", + "RestApiId": { + "Ref": "testApiD6ECAB50" + } + } + }, + "testApiproxyANYApiPermissionpartialargumentstestApi67E53489ANYproxyD442645B": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "testFunction483F4CBE", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":execute-api:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":", + { + "Ref": "testApiD6ECAB50" + }, + "/", + { + "Ref": "testApiDeploymentStageprodCE051BE8" + }, + "/*/*" + ] + ] + } + } + }, + "testApiproxyANYApiPermissionTestpartialargumentstestApi67E53489ANYproxyA0A33584": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "testFunction483F4CBE", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":execute-api:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":", + { + "Ref": "testApiD6ECAB50" + }, + "/test-invoke-stage/*/*" + ] + ] + } + } + }, + "testApiproxyANYC53F2608": { + "Type": "AWS::ApiGateway::Method", + "Properties": { + "HttpMethod": "ANY", + "ResourceId": { + "Ref": "testApiproxyA0E5503A" + }, + "RestApiId": { + "Ref": "testApiD6ECAB50" + }, + "AuthorizationType": "NONE", + "Integration": { + "IntegrationHttpMethod": "POST", + "Type": "AWS_PROXY", + "Uri": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":apigateway:", + { + "Ref": "AWS::Region" + }, + ":lambda:path/2015-03-31/functions/", + { + "Fn::GetAtt": [ + "testFunction483F4CBE", + "Arn" + ] + }, + "/invocations" + ] + ] + } + } + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W59", + "reason": "Test Resource" + } + ] + } + } + }, + "testApiANYApiPermissionpartialargumentstestApi67E53489ANY0CE0FBBB": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "testFunction483F4CBE", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":execute-api:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":", + { + "Ref": "testApiD6ECAB50" + }, + "/", + { + "Ref": "testApiDeploymentStageprodCE051BE8" + }, + "/*/" + ] + ] + } + } + }, + "testApiANYApiPermissionTestpartialargumentstestApi67E53489ANYFA990832": { + "Type": "AWS::Lambda::Permission", + "Properties": { + "Action": "lambda:InvokeFunction", + "FunctionName": { + "Fn::GetAtt": [ + "testFunction483F4CBE", + "Arn" + ] + }, + "Principal": "apigateway.amazonaws.com", + "SourceArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":execute-api:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":", + { + "Ref": "testApiD6ECAB50" + }, + "/test-invoke-stage/*/" + ] + ] + } + } + }, + "testApiANYDC600770": { + "Type": "AWS::ApiGateway::Method", + "Properties": { + "HttpMethod": "ANY", + "ResourceId": { + "Fn::GetAtt": [ + "testApiD6ECAB50", + "RootResourceId" + ] + }, + "RestApiId": { + "Ref": "testApiD6ECAB50" + }, + "AuthorizationType": "NONE", + "Integration": { + "IntegrationHttpMethod": "POST", + "Type": "AWS_PROXY", + "Uri": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":apigateway:", + { + "Ref": "AWS::Region" + }, + ":lambda:path/2015-03-31/functions/", + { + "Fn::GetAtt": [ + "testFunction483F4CBE", + "Arn" + ] + }, + "/invocations" + ] + ] + } + } + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W59", + "reason": "Test Resource" + } + ] + } + } + }, + "testwafwebaclapigatewaylambdatestwafwebaclapigatewaylambdaWebACL9DE6948C": { + "Type": "AWS::WAFv2::WebACL", + "Properties": { + "DefaultAction": { + "Allow": {} + }, + "Scope": "REGIONAL", + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "webACL", + "SampledRequestsEnabled": true + }, + "Name": "test-name-apigateway", + "Rules": [ + { + "Name": "AWS-AWSManagedRulesBotControlRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 0, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesBotControlRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesBotControlRuleSet", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesKnownBadInputsRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 1, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesKnownBadInputsRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesKnownBadInputsRuleSet", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesCommonRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 2, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesCommonRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesCommonRuleSet", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesAnonymousIpList", + "OverrideAction": { + "None": {} + }, + "Priority": 3, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesAnonymousIpList", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesAnonymousIpList", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesAmazonIpReputationList", + "OverrideAction": { + "None": {} + }, + "Priority": 4, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesAmazonIpReputationList", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesAmazonIpReputationList", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesAdminProtectionRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 5, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesAdminProtectionRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesAdminProtectionRuleSet", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesSQLiRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 6, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesSQLiRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesSQLiRuleSet", + "SampledRequestsEnabled": true + } + } + ] + } + }, + "testwafwebaclapigatewaylambdaWebACLAssociation": { + "Type": "AWS::WAFv2::WebACLAssociation", + "Properties": { + "ResourceArn": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":apigateway:", + { + "Ref": "AWS::Region" + }, + "::/restapis/", + { + "Ref": "testApiD6ECAB50" + }, + "/stages/", + { + "Ref": "testApiDeploymentStageprodCE051BE8" + } + ] + ] + }, + "WebACLArn": { + "Fn::GetAtt": [ + "testwafwebaclapigatewaylambdatestwafwebaclapigatewaylambdaWebACL9DE6948C", + "Arn" + ] + } + } + } + }, + "Outputs": { + "testApiEndpointC9D07ADA": { + "Value": { + "Fn::Join": [ + "", + [ + "https://", + { + "Ref": "testApiD6ECAB50" + }, + ".execute-api.", + { + "Ref": "AWS::Region" + }, + ".", + { + "Ref": "AWS::URLSuffix" + }, + "/", + { + "Ref": "testApiDeploymentStageprodCE051BE8" + }, + "/" + ] + ] + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.partial-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.partial-arguments.ts new file mode 100644 index 000000000..a94a553fb --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/integ.partial-arguments.ts @@ -0,0 +1,34 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +/// !cdk-integ * +import { App, Stack } from "aws-cdk-lib"; +import { WafwebaclToApiGateway } from "../lib"; +import { generateIntegStackName } from "@aws-solutions-constructs/core"; +import { CreateTestApi } from './test-helper'; + +const app = new App(); + +// Empty arguments +const stack = new Stack(app, generateIntegStackName(__filename)); + +const restApi = CreateTestApi(stack, 'test'); + +new WafwebaclToApiGateway(stack, "test-wafwebacl-apigateway-lambda", { + existingApiGatewayInterface: restApi, + webaclProps: { + name: 'test-name-apigateway' + } +}); + +app.synth(); diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/test-helper.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/test-helper.ts index 26466bf45..0422fc53f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/test-helper.ts +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/test-helper.ts @@ -19,7 +19,7 @@ import { addCfnSuppressRules } from "@aws-solutions-constructs/core"; export function CreateTestApi(stack: Stack, id: string): api.LambdaRestApi { const lamdaFunction = new lambda.Function(stack, `${id}Function`, { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: ".handler", }); addCfnSuppressRules(lamdaFunction, [{ id: "W58", reason: "Test Resource" }]); diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/test.wafwebacl-apigateway.test.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/test.wafwebacl-apigateway.test.ts index d8fce9ae2..cc6da5575 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/test.wafwebacl-apigateway.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-apigateway/test/test.wafwebacl-apigateway.test.ts @@ -19,7 +19,7 @@ import * as waf from "aws-cdk-lib/aws-wafv2"; import * as defaults from '@aws-solutions-constructs/core'; import { Template } from 'aws-cdk-lib/assertions'; -function deployConstruct(stack: cdk.Stack, constructProps?: waf.CfnWebACLProps) { +function deployConstruct(stack: cdk.Stack, constructProps?: waf.CfnWebACLProps | any) { const restApi = new api.RestApi(stack, 'test-api', {}); restApi.root.addMethod('ANY'); @@ -30,9 +30,6 @@ function deployConstruct(stack: cdk.Stack, constructProps?: waf.CfnWebACLProps) return new WafwebaclToApiGateway(stack, 'test-wafwebacl-apigateway', props); } -// -------------------------------------------------------------- -// Test error handling for existing WAF web ACL and user provided web ACL props -// -------------------------------------------------------------- test('Test error handling for existing WAF web ACL and user provider web ACL props', () => { const stack = new cdk.Stack(); const props: waf.CfnWebACLProps = { @@ -59,9 +56,6 @@ test('Test error handling for existing WAF web ACL and user provider web ACL pro }).toThrowError(); }); -// -------------------------------------------------------------- -// Test default deployment -// -------------------------------------------------------------- test('Test default deployment', () => { const stack = new cdk.Stack(); const construct = deployConstruct(stack); @@ -202,9 +196,6 @@ test('Test default deployment', () => { }); }); -// -------------------------------------------------------------- -// Test web acl with user provided acl props -// -------------------------------------------------------------- test('Test user provided acl props', () => { const stack = new cdk.Stack(); const webaclProps: waf.CfnWebACLProps = { @@ -273,9 +264,21 @@ test('Test user provided acl props', () => { }); }); -// -------------------------------------------------------------- -// Test existing web ACL -// -------------------------------------------------------------- +test('Test user provided partial acl props', () => { + const stack = new cdk.Stack(); + const testName = 'test-name'; + const webaclProps = { + name: testName + }; + + deployConstruct(stack, webaclProps); + + const template = Template.fromStack(stack); + template.hasResourceProperties("AWS::WAFv2::WebACL", { + Name: testName + }); +}); + test('Test existing web ACL', () => { const stack = new cdk.Stack(); const webacl: waf.CfnWebACL = new waf.CfnWebACL(stack, 'test-webacl', { diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/lib/index.ts index d75d2e01a..4dcf3d035 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/lib/index.ts @@ -35,7 +35,7 @@ export interface WafwebaclToAppsyncProps { * * @default - Default properties are used. */ - readonly webaclProps?: waf.CfnWebACLProps; + readonly webaclProps?: waf.CfnWebACLProps | any; } /** diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/test/integ.partial-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/test/integ.partial-arguments.expected.json new file mode 100644 index 000000000..c7f333c0c --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/test/integ.partial-arguments.expected.json @@ -0,0 +1,205 @@ +{ + "Resources": { + "newgraphqlapi": { + "Type": "AWS::AppSync::GraphQLApi", + "Properties": { + "AuthenticationType": "API_KEY", + "Name": "api" + } + }, + "testwafwebaclappsynctestwafwebaclappsyncWebACLA64C38D0": { + "Type": "AWS::WAFv2::WebACL", + "Properties": { + "DefaultAction": { + "Allow": {} + }, + "Scope": "REGIONAL", + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "webACL", + "SampledRequestsEnabled": true + }, + "Name": "test-name-appsync", + "Rules": [ + { + "Name": "AWS-AWSManagedRulesBotControlRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 0, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesBotControlRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesBotControlRuleSet", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesKnownBadInputsRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 1, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesKnownBadInputsRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesKnownBadInputsRuleSet", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesCommonRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 2, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesCommonRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesCommonRuleSet", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesAnonymousIpList", + "OverrideAction": { + "None": {} + }, + "Priority": 3, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesAnonymousIpList", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesAnonymousIpList", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesAmazonIpReputationList", + "OverrideAction": { + "None": {} + }, + "Priority": 4, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesAmazonIpReputationList", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesAmazonIpReputationList", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesAdminProtectionRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 5, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesAdminProtectionRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesAdminProtectionRuleSet", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesSQLiRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 6, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesSQLiRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesSQLiRuleSet", + "SampledRequestsEnabled": true + } + } + ] + } + }, + "testwafwebaclappsyncWebACLAssociation": { + "Type": "AWS::WAFv2::WebACLAssociation", + "Properties": { + "ResourceArn": { + "Fn::GetAtt": [ + "newgraphqlapi", + "Arn" + ] + }, + "WebACLArn": { + "Fn::GetAtt": [ + "testwafwebaclappsynctestwafwebaclappsyncWebACLA64C38D0", + "Arn" + ] + } + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/test/integ.partial-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/test/integ.partial-arguments.ts new file mode 100644 index 000000000..cd8789717 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/test/integ.partial-arguments.ts @@ -0,0 +1,38 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +/// !cdk-integ * +import { App, Stack } from "aws-cdk-lib"; +import { WafwebaclToAppsync } from "../lib"; +import { generateIntegStackName } from "@aws-solutions-constructs/core"; +import * as appsync from "aws-cdk-lib/aws-appsync"; + +const app = new App(); + +// Empty arguments +const stack = new Stack(app, generateIntegStackName(__filename)); + +const api = new appsync.CfnGraphQLApi(stack, "new-graphql-api", { + name: "api", + authenticationType: "API_KEY", +}); + +// This construct can only be attached to a configured Appsync API. +new WafwebaclToAppsync(stack, "test-wafwebacl-appsync", { + existingAppsyncApi: api, + webaclProps: { + name: 'test-name-appsync' + } +}); + +app.synth(); diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/test/test.wafwebacl-appsync.test.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/test/test.wafwebacl-appsync.test.ts index 66150c224..6b13384b6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/test/test.wafwebacl-appsync.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-appsync/test/test.wafwebacl-appsync.test.ts @@ -28,7 +28,7 @@ function deployAppsyncGraphqlApi(stack: cdk.Stack) { function deployConstruct( stack: cdk.Stack, - webaclProps?: waf.CfnWebACLProps, + webaclProps?: waf.CfnWebACLProps | any, existingWebaclObj?: waf.CfnWebACL ) { const api = deployAppsyncGraphqlApi(stack); @@ -212,9 +212,6 @@ test("Test default deployment", () => { }); }); -// -------------------------------------------------------------- -// Test web acl with user provided acl props -// -------------------------------------------------------------- test("Test user provided acl props", () => { const stack = new cdk.Stack(); const webaclProps: waf.CfnWebACLProps = { @@ -283,6 +280,21 @@ test("Test user provided acl props", () => { }); }); +test("Test user provided partial acl props", () => { + const stack = new cdk.Stack(); + const testName = 'test-name'; + const webaclProps = { + name: testName + }; + + deployConstruct(stack, webaclProps); + + const template = Template.fromStack(stack); + template.hasResourceProperties("AWS::WAFv2::WebACL", { + Name: testName + }); +}); + // -------------------------------------------------------------- // Test existing web ACL // -------------------------------------------------------------- diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/lib/index.ts index 1b84a0189..757996dd5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/lib/index.ts @@ -39,7 +39,7 @@ export interface WafwebaclToCloudFrontProps { * * @default - Default properties are used. */ - readonly webaclProps?: waf.CfnWebACLProps, + readonly webaclProps?: waf.CfnWebACLProps | any, } /** diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.partial-arguments.expected.json b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.partial-arguments.expected.json new file mode 100644 index 000000000..d90fd31af --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.partial-arguments.expected.json @@ -0,0 +1,266 @@ +{ + "Resources": { + "distro40218A07": { + "Type": "AWS::CloudFront::Distribution", + "Properties": { + "DistributionConfig": { + "DefaultCacheBehavior": { + "CachePolicyId": "658327ea-f89d-4fab-a63d-7e88639e58f6", + "Compress": true, + "TargetOriginId": "partialargumentsdistroOriginGroup13A14546B", + "ViewerProtocolPolicy": "allow-all" + }, + "Enabled": true, + "HttpVersion": "http2", + "IPV6Enabled": true, + "OriginGroups": { + "Items": [ + { + "FailoverCriteria": { + "StatusCodes": { + "Items": [ + 404 + ], + "Quantity": 1 + } + }, + "Id": "partialargumentsdistroOriginGroup13A14546B", + "Members": { + "Items": [ + { + "OriginId": "partialargumentsdistroOrigin1D2A7BC52" + }, + { + "OriginId": "partialargumentsdistroOrigin2689E5A52" + } + ], + "Quantity": 2 + } + } + ], + "Quantity": 1 + }, + "Origins": [ + { + "CustomOriginConfig": { + "OriginProtocolPolicy": "https-only", + "OriginSSLProtocols": [ + "TLSv1.2" + ] + }, + "DomainName": "www.example.com", + "Id": "partialargumentsdistroOrigin1D2A7BC52" + }, + { + "CustomOriginConfig": { + "OriginProtocolPolicy": "https-only", + "OriginSSLProtocols": [ + "TLSv1.2" + ] + }, + "DomainName": "admin.example.com", + "Id": "partialargumentsdistroOrigin2689E5A52" + } + ], + "WebACLId": { + "Fn::GetAtt": [ + "testwafwebaclcloudfronts3testwafwebaclcloudfronts3WebACLC6A34449", + "Arn" + ] + } + } + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W10", + "reason": "Test Resource" + }, + { + "id": "W70", + "reason": "Test Resource" + } + ] + } + } + }, + "testwafwebaclcloudfronts3testwafwebaclcloudfronts3WebACLC6A34449": { + "Type": "AWS::WAFv2::WebACL", + "Properties": { + "DefaultAction": { + "Allow": {} + }, + "Scope": "CLOUDFRONT", + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "webACL", + "SampledRequestsEnabled": true + }, + "Name": "test-name-cloudfront", + "Rules": [ + { + "Name": "AWS-AWSManagedRulesBotControlRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 0, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesBotControlRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesBotControlRuleSet", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesKnownBadInputsRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 1, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesKnownBadInputsRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesKnownBadInputsRuleSet", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesCommonRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 2, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesCommonRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesCommonRuleSet", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesAnonymousIpList", + "OverrideAction": { + "None": {} + }, + "Priority": 3, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesAnonymousIpList", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesAnonymousIpList", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesAmazonIpReputationList", + "OverrideAction": { + "None": {} + }, + "Priority": 4, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesAmazonIpReputationList", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesAmazonIpReputationList", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesAdminProtectionRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 5, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesAdminProtectionRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesAdminProtectionRuleSet", + "SampledRequestsEnabled": true + } + }, + { + "Name": "AWS-AWSManagedRulesSQLiRuleSet", + "OverrideAction": { + "None": {} + }, + "Priority": 6, + "Statement": { + "ManagedRuleGroupStatement": { + "Name": "AWSManagedRulesSQLiRuleSet", + "VendorName": "AWS" + } + }, + "VisibilityConfig": { + "CloudWatchMetricsEnabled": true, + "MetricName": "AWSManagedRulesSQLiRuleSet", + "SampledRequestsEnabled": true + } + } + ] + } + } + }, + "Parameters": { + "BootstrapVersion": { + "Type": "AWS::SSM::Parameter::Value", + "Default": "/cdk-bootstrap/hnb659fds/version", + "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]" + } + }, + "Rules": { + "CheckBootstrapVersion": { + "Assertions": [ + { + "Assert": { + "Fn::Not": [ + { + "Fn::Contains": [ + [ + "1", + "2", + "3", + "4", + "5" + ], + { + "Ref": "BootstrapVersion" + } + ] + } + ] + }, + "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI." + } + ] + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.partial-arguments.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.partial-arguments.ts new file mode 100644 index 000000000..20c2c6046 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/integ.partial-arguments.ts @@ -0,0 +1,34 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance + * with the License. A copy of the License is located at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES + * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions + * and limitations under the License. + */ + +/// !cdk-integ * +import { App, Stack } from "aws-cdk-lib"; +import { WafwebaclToCloudFront } from "../lib"; +import { generateIntegStackName } from '@aws-solutions-constructs/core'; +import { CreateTestDistro } from './test-helper'; + +const app = new App(); + +// Empty arguments +const stack = new Stack(app, generateIntegStackName(__filename)); + +const newDistro = CreateTestDistro(stack, "distro"); + +new WafwebaclToCloudFront(stack, 'test-wafwebacl-cloudfront-s3', { + webaclProps: { + name: 'test-name-cloudfront' + }, + existingCloudFrontWebDistribution: newDistro, +}); + +app.synth(); \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/test.wafwebacl-cloudfront.test.ts b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/test.wafwebacl-cloudfront.test.ts index c8e7f3bd4..77461d1d4 100644 --- a/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/test.wafwebacl-cloudfront.test.ts +++ b/source/patterns/@aws-solutions-constructs/aws-wafwebacl-cloudfront/test/test.wafwebacl-cloudfront.test.ts @@ -21,7 +21,7 @@ import * as waf from "aws-cdk-lib/aws-wafv2"; import * as defaults from '@aws-solutions-constructs/core'; import { Template } from 'aws-cdk-lib/assertions'; -function deployConstruct(stack: cdk.Stack, constructProps?: waf.CfnWebACLProps) { +function deployConstruct(stack: cdk.Stack, constructProps?: waf.CfnWebACLProps | any) { const myBucket = new s3.Bucket(stack, 'myBucket', { removalPolicy: cdk.RemovalPolicy.DESTROY }); @@ -37,9 +37,6 @@ function deployConstruct(stack: cdk.Stack, constructProps?: waf.CfnWebACLProps) return new WafwebaclToCloudFront(stack, 'test-wafwebacl-cloudfront', props); } -// -------------------------------------------------------------- -// Test error handling for existing WAF web ACL and user provided web ACL props -// -------------------------------------------------------------- test('Test error handling for existing WAF web ACL and user provider web ACL props', () => { const stack = new cdk.Stack(); const props: waf.CfnWebACLProps = { @@ -69,9 +66,6 @@ test('Test error handling for existing WAF web ACL and user provider web ACL pro }).toThrowError(); }); -// -------------------------------------------------------------- -// Test default deployment -// -------------------------------------------------------------- test('Test default deployment', () => { const stack = new cdk.Stack(); const construct = deployConstruct(stack); @@ -212,9 +206,6 @@ test('Test default deployment', () => { }); }); -// -------------------------------------------------------------- -// Test web acl with user provided acl props -// -------------------------------------------------------------- test('Test user provided acl props', () => { const stack = new cdk.Stack(); const webaclProps: waf.CfnWebACLProps = { @@ -283,9 +274,22 @@ test('Test user provided acl props', () => { }); }); -// -------------------------------------------------------------- -// Test existing web ACL -// -------------------------------------------------------------- +test('Test user provided partial acl props', () => { + const stack = new cdk.Stack(); + const testName = 'test-name'; + + const webaclProps = { + name: testName + }; + + deployConstruct(stack, webaclProps); + + const template = Template.fromStack(stack); + template.hasResourceProperties("AWS::WAFv2::WebACL", { + Name: testName + }); +}); + test('Test existing web ACL', () => { const stack = new cdk.Stack(); const webacl: waf.CfnWebACL = new waf.CfnWebACL(stack, 'test-webacl', { diff --git a/source/patterns/@aws-solutions-constructs/core/lib/elasticsearch-defaults.ts b/source/patterns/@aws-solutions-constructs/core/lib/elasticsearch-defaults.ts index f1b6127c3..aba901cc4 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/elasticsearch-defaults.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/elasticsearch-defaults.ts @@ -64,7 +64,7 @@ export function DefaultCfnDomainProps(domainName: string, cognitoKibanaConfigure 'es:ESHttp*' ], resources: [ - `arn:aws:es:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:domain/${domainName}/*` + `arn:${cdk.Aws.PARTITION}:es:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:domain/${domainName}/*` ] }) ] diff --git a/source/patterns/@aws-solutions-constructs/core/lib/elasticsearch-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/elasticsearch-helper.ts index f6acbc76c..73e8d2a02 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/elasticsearch-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/elasticsearch-helper.ts @@ -284,8 +284,8 @@ function createKibanaCognitoRole( ], resources: [ userPool.userPoolArn, - `arn:aws:cognito-identity:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:identitypool/${identitypool.ref}`, - `arn:aws:es:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:domain/${domainName}`, + `arn:${cdk.Aws.PARTITION}:cognito-identity:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:identitypool/${identitypool.ref}`, + `arn:${cdk.Aws.PARTITION}:es:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:domain/${domainName}`, ], }), new iam.PolicyStatement({ diff --git a/source/patterns/@aws-solutions-constructs/core/lib/lambda-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/lambda-helper.ts index 3a5f27c16..88214dc57 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/lambda-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/lambda-helper.ts @@ -152,9 +152,9 @@ export function deployLambdaFunction(scope: Construct, const lambdafunction = new lambda.Function(scope, _functionId, finalLambdaFunctionProps); - if (lambdaFunctionProps.runtime === lambda.Runtime.NODEJS_14_X || - lambdaFunctionProps.runtime === lambda.Runtime.NODEJS_14_X || - lambdaFunctionProps.runtime === lambda.Runtime.NODEJS_14_X) { + if (lambdaFunctionProps.runtime === lambda.Runtime.NODEJS_16_X || + lambdaFunctionProps.runtime === lambda.Runtime.NODEJS_16_X || + lambdaFunctionProps.runtime === lambda.Runtime.NODEJS_16_X) { lambdafunction.addEnvironment('AWS_NODEJS_CONNECTION_REUSE_ENABLED', '1', { removeInEdge: true }); } diff --git a/source/patterns/@aws-solutions-constructs/core/lib/opensearch-defaults.ts b/source/patterns/@aws-solutions-constructs/core/lib/opensearch-defaults.ts index 406506975..55742820d 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/opensearch-defaults.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/opensearch-defaults.ts @@ -67,7 +67,7 @@ export function DefaultOpenSearchCfnDomainProps(domainName: string, cognitoConfi 'es:ESHttp*' ], resources: [ - `arn:aws:es:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:domain/${domainName}/*` + `arn:${cdk.Aws.PARTITION}:es:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:domain/${domainName}/*` ] }) ] diff --git a/source/patterns/@aws-solutions-constructs/core/lib/opensearch-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/opensearch-helper.ts index 613ea64bd..b3844204f 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/opensearch-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/opensearch-helper.ts @@ -282,8 +282,8 @@ function createDashboardCognitoRole( ], resources: [ userPool.userPoolArn, - `arn:aws:cognito-identity:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:identitypool/${identitypool.ref}`, - `arn:aws:es:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:domain/${domainName}`, + `arn:${cdk.Aws.PARTITION}:cognito-identity:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:identitypool/${identitypool.ref}`, + `arn:${cdk.Aws.PARTITION}:es:${cdk.Aws.REGION}:${cdk.Aws.ACCOUNT_ID}:domain/${domainName}`, ], }), new iam.PolicyStatement({ diff --git a/source/patterns/@aws-solutions-constructs/core/lib/s3-bucket-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/s3-bucket-helper.ts index d99d72f3c..7a8a87549 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/s3-bucket-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/s3-bucket-helper.ts @@ -130,8 +130,8 @@ export function buildS3Bucket(scope: Construct, // Create the Application Bucket let customBucketProps: s3.BucketProps; let loggingBucket; - const _bucketId = bucketId ? bucketId + 'S3Bucket' : 'S3Bucket'; - const _loggingBucketId = bucketId ? bucketId + 'S3LoggingBucket' : 'S3LoggingBucket'; + const resolvedBucketId = bucketId ? bucketId + 'S3Bucket' : 'S3Bucket'; + const loggingBucketId = bucketId ? bucketId + 'S3LoggingBucket' : 'S3LoggingBucket'; // If logging S3 access logs is enabled/undefined and an existing bucket object is not provided if (props.logS3AccessLogs !== false && !(props.bucketProps?.serverAccessLogsBucket)) { @@ -147,8 +147,11 @@ export function buildS3Bucket(scope: Construct, loggingBucketProps = overrideProps(loggingBucketProps, { removalPolicy: props.bucketProps.removalPolicy }); } - loggingBucket = createLoggingBucket(scope, _loggingBucketId, loggingBucketProps); + loggingBucket = createLoggingBucket(scope, loggingBucketId, loggingBucketProps); + } else if (props.bucketProps?.serverAccessLogsBucket) { + loggingBucket = props.bucketProps?.serverAccessLogsBucket as s3.Bucket; } + // Attach the Default Life Cycle policy ONLY IF the versioning is ENABLED if (props.bucketProps?.versioned === undefined || props.bucketProps.versioned) { customBucketProps = DefaultS3Props(loggingBucket, lifecycleRules); @@ -158,7 +161,7 @@ export function buildS3Bucket(scope: Construct, customBucketProps = props.bucketProps ? overrideProps(customBucketProps, props.bucketProps) : customBucketProps; - const s3Bucket: s3.Bucket = new s3.Bucket(scope, _bucketId, customBucketProps ); + const s3Bucket: s3.Bucket = new s3.Bucket(scope, resolvedBucketId, customBucketProps ); return { bucket: s3Bucket, loggingBucket }; } diff --git a/source/patterns/@aws-solutions-constructs/core/lib/waf-helper.ts b/source/patterns/@aws-solutions-constructs/core/lib/waf-helper.ts index 4e34f1a52..3f4b51c97 100644 --- a/source/patterns/@aws-solutions-constructs/core/lib/waf-helper.ts +++ b/source/patterns/@aws-solutions-constructs/core/lib/waf-helper.ts @@ -29,7 +29,7 @@ export interface BuildWebaclProps { /** * User provided props to override the default ACL props for WAF web ACL. */ - readonly webaclProps?: waf.CfnWebACLProps; + readonly webaclProps?: waf.CfnWebACLProps | any; } /** diff --git a/source/patterns/@aws-solutions-constructs/core/test/alb-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/alb-helper.test.ts index c31771855..fc9473348 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/alb-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/alb-helper.test.ts @@ -552,7 +552,7 @@ function CreateTestLoadBalancer(stack: Stack, vpc: ec2.IVpc): elb.ApplicationLoa function CreateTestFunction(stack: Stack, id: string): lambda.Function { return new lambda.Function(stack, id, { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", }); } diff --git a/source/patterns/@aws-solutions-constructs/core/test/apigateway-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/apigateway-helper.test.ts index 544061793..36ce2f317 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/apigateway-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/apigateway-helper.test.ts @@ -20,7 +20,7 @@ import { Template } from 'aws-cdk-lib/assertions'; function deployRegionalApiGateway(stack: Stack) { const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -90,7 +90,7 @@ test('Test override for RegionalApiGateway', () => { const stack = new Stack(); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -121,7 +121,7 @@ test('Test override for GlobalApiGateway', () => { const stack = new Stack(); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -150,7 +150,7 @@ test('Test override for GlobalApiGateway', () => { test('Test ApiGateway::Account resource for RegionalApiGateway', () => { const stack = new Stack(); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -173,7 +173,7 @@ test('Test ApiGateway::Account resource for RegionalApiGateway', () => { test('Test ApiGateway::Account resource for GlobalApiGateway', () => { const stack = new Stack(); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -386,7 +386,7 @@ test('Test for Exception while overriding restApiProps using endPointTypes', () test('Test for Exception while overriding LambdaRestApiProps using endPointTypes', () => { const stack = new Stack(); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -643,7 +643,7 @@ test('Test for ApiKey creation using restApiProps', () => { test('Test for ApiKey creation using lambdaApiProps', () => { const stack = new Stack(); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-api-gateway-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-api-gateway-helper.test.ts index 014838d77..4a7acc86a 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-api-gateway-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-api-gateway-helper.test.ts @@ -262,7 +262,7 @@ test('test override cloudfront add custom cloudfront function', () => { // APIG Lambda function const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; @@ -389,7 +389,7 @@ test('test override cloudfront replace custom lambda@edge', () => { // custom lambda@edg function const handler = new lambda.Function(stack, 'SomeHandler', { functionName: 'SomeHandler', - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -400,7 +400,7 @@ test('test override cloudfront replace custom lambda@edge', () => { // APIG Lambda function const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`) }; diff --git a/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.ts index f16b399e3..047d61509 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/cloudfront-distribution-s3-helper.test.ts @@ -438,7 +438,7 @@ test('test override cloudfront replace custom lambda@edge', () => { // custom lambda@edg function const handler = new lambda.Function(stack, 'SomeHandler', { functionName: 'SomeHandler', - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); diff --git a/source/patterns/@aws-solutions-constructs/core/test/elasticsearch-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/elasticsearch-helper.test.ts index 9ef9e7eec..a9b238ced 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/elasticsearch-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/elasticsearch-helper.test.ts @@ -87,7 +87,11 @@ test('Test override SnapshotOptions for buildElasticSearch', () => { "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + Ref: "AWS::Partition" + }, + ":es:", { Ref: "AWS::Region" }, @@ -319,7 +323,11 @@ test('Test override ES version for buildElasticSearch', () => { "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + Ref: "AWS::Partition" + }, + ":es:", { Ref: "AWS::Region" }, @@ -410,7 +418,11 @@ test('Test ES with lambdaRoleARN', () => { "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + Ref: "AWS::Partition" + }, + ":es:", { Ref: "AWS::Region" }, diff --git a/source/patterns/@aws-solutions-constructs/core/test/input-validation.test.ts b/source/patterns/@aws-solutions-constructs/core/test/input-validation.test.ts index 37db0fbe9..a02eb4d33 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/input-validation.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/input-validation.test.ts @@ -57,12 +57,12 @@ test("Test fail Lambda function check", () => { const props: defaults.VerifiedProps = { lambdaFunctionProps: { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", }, existingLambdaObj: new lambda.Function(stack, "placeholder", { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", }), }; diff --git a/source/patterns/@aws-solutions-constructs/core/test/lambda-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/lambda-helper.test.ts index 61c9a5cff..ab08fde1a 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/lambda-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/lambda-helper.test.ts @@ -44,7 +44,7 @@ test("test FunctionProps override timeout", () => { const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", timeout: Duration.seconds(5), }; @@ -56,7 +56,7 @@ test("test FunctionProps override timeout", () => { Role: { "Fn::GetAtt": ["LambdaFunctionServiceRole0C4CDE0B", "Arn"], }, - Runtime: "nodejs14.x", + Runtime: "nodejs16.x", Timeout: 5, }); }); @@ -66,7 +66,7 @@ test("test FunctionProps for environment variable when runtime = NODEJS", () => const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", }; @@ -77,7 +77,7 @@ test("test FunctionProps for environment variable when runtime = NODEJS", () => Role: { "Fn::GetAtt": ["LambdaFunctionServiceRole0C4CDE0B", "Arn"], }, - Runtime: "nodejs14.x", + Runtime: "nodejs16.x", Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: "1", @@ -117,7 +117,7 @@ test("test buildLambdaFunction with deploy = true", () => { const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda-test`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", }; @@ -130,7 +130,7 @@ test("test buildLambdaFunction with deploy = true", () => { Role: { "Fn::GetAtt": ["LambdaFunctionServiceRole0C4CDE0B", "Arn"], }, - Runtime: "nodejs14.x", + Runtime: "nodejs16.x", }); }); @@ -139,7 +139,7 @@ test("test buildLambdaFunction with existing Lambda function (no VPC)", () => { const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda-test`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", }; @@ -210,7 +210,7 @@ test("test buildLambdaFunction when Lambda properties includes a VPC", () => { const fakeVpc = new ec2.Vpc(stack, "vpc", {}); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), vpc: fakeVpc, @@ -249,7 +249,7 @@ test("Test for error if VPC in arguments AND in Lambda Function properties", () const fakeVpc = new ec2.Vpc(stack, "vpc", {}); const lambdaFunctionProps: lambda.FunctionProps = { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), vpc: fakeVpc, @@ -267,7 +267,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const stack = new Stack(); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -294,7 +294,7 @@ test("Test minimal deployment with an existing VPC and existing Lambda function const testVpc = new ec2.Vpc(stack, "test-vpc", {}); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), vpc: testVpc, @@ -316,7 +316,7 @@ test("Test generating synthesized permission IDs", () => { const coreName = "TestInvokePermission"; const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -345,7 +345,7 @@ test("Test invalid synthesized permission names", () => { const coreName = "TestInvokePermission"; const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), }); @@ -366,13 +366,13 @@ test("Test invalid synthesized permission names", () => { expect(app).toThrowError(); }); -test('Test environment variable for NodeJS 14.x', () => { +test('Test environment variable for NodeJS 16.x', () => { // Stack const stack = new Stack(); const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; @@ -384,7 +384,7 @@ test('Test environment variable for NodeJS 14.x', () => { Role: { 'Fn::GetAtt': ['LambdaFunctionServiceRole0C4CDE0B', 'Arn'] }, - Runtime: 'nodejs14.x', + Runtime: 'nodejs16.x', Environment: { Variables: { AWS_NODEJS_CONNECTION_REUSE_ENABLED: '1' @@ -398,7 +398,7 @@ test('Test minimum deployment with an existing VPC as a vpc parameter in deployL const stack = new Stack(); const inProps: lambda.FunctionProps = { code: lambda.Code.fromAsset(`${__dirname}/lambda`), - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler' }; const fakeVpc: ec2.Vpc = new ec2.Vpc(stack, 'vpc', {}); @@ -436,7 +436,7 @@ test("Test retrieving lambda vpc security group ids", () => { const securityGroup2 = new ec2.SecurityGroup(stack, 'SecurityGroup2', { vpc }); const testLambdaFunction = new lambda.Function(stack, 'test-lamba', { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: "index.handler", code: lambda.Code.fromAsset(`${__dirname}/lambda`), securityGroups: [securityGroup1, securityGroup2], @@ -454,7 +454,7 @@ test('test buildLambdaFunction with lambdaFunctionProps default id', () => { defaults.buildLambdaFunction(stack, { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), } @@ -473,7 +473,7 @@ test('test buildLambdaFunction with lambdaFunctionProps custom id', () => { defaults.buildLambdaFunction(stack, { lambdaFunctionProps: { functionName: 'MyTestFunction', - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, handler: 'index.handler', code: lambda.Code.fromAsset(`${__dirname}/lambda`), } diff --git a/source/patterns/@aws-solutions-constructs/core/test/opensearch-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/opensearch-helper.test.ts index a279045fe..632dd4c92 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/opensearch-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/opensearch-helper.test.ts @@ -79,7 +79,11 @@ test('Test override SnapshotOptions for buildOpenSearch', () => { "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + Ref: "AWS::Partition" + }, + ":es:", { Ref: "AWS::Region" }, @@ -283,7 +287,11 @@ test('Test engine version override for buildOpenSearch', () => { "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + Ref: "AWS::Partition" + }, + ":es:", { Ref: "AWS::Region" }, @@ -370,7 +378,11 @@ test('Test deployment with lambdaRoleARN', () => { "Fn::Join": [ "", [ - "arn:aws:es:", + "arn:", + { + Ref: "AWS::Partition" + }, + ":es:", { Ref: "AWS::Region" }, diff --git a/source/patterns/@aws-solutions-constructs/core/test/s3-bucket-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/s3-bucket-helper.test.ts index 43987768d..81b07b03a 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/s3-bucket-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/s3-bucket-helper.test.ts @@ -230,7 +230,7 @@ test('s3 bucket with LoggingBucket and versioning turned off', () => { expect(buildS3BucketResponse.bucket).toBeDefined(); // The line below fails, this appears to be a bug. Entered Issue 906 - // expect(response.loggingBucket).toBeDefined(); + expect(buildS3BucketResponse.loggingBucket).toBeDefined(); const template = Template.fromStack(stack); template.hasResourceProperties("AWS::S3::Bucket", { diff --git a/source/patterns/@aws-solutions-constructs/core/test/waf-helper.test.ts b/source/patterns/@aws-solutions-constructs/core/test/waf-helper.test.ts index a99f442fc..d93ba3d19 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/waf-helper.test.ts +++ b/source/patterns/@aws-solutions-constructs/core/test/waf-helper.test.ts @@ -17,9 +17,6 @@ import * as defaults from '..'; import { Template } from 'aws-cdk-lib/assertions'; import { buildWebacl } from '..'; -// -------------------------------------------------------------- -// Test construct with default props -// -------------------------------------------------------------- test('Test construct with default props', () => { // Stack const stack = new Stack(); @@ -168,9 +165,6 @@ test('Test construct with default props', () => { template.resourceCountIs('AWS::WAFv2::WebACLAssociation', 0); }); -// -------------------------------------------------------------- -// Test deployment w/ user provided custom properties -// -------------------------------------------------------------- test('Test deployment w/ user provided custom properties', () => { // Stack const stack = new Stack(); @@ -244,6 +238,24 @@ test('Test deployment w/ user provided custom properties', () => { }); }); +test('Test deployment w/ user provided partial custom properties', () => { + // Stack + const stack = new Stack(); + const testName = 'test-name'; + // Build WAF web ACL + const props = { + name: testName + }; + + defaults.buildWebacl(stack, 'CLOUDFRONT', { + webaclProps: props + }); + + Template.fromStack(stack).hasResourceProperties("AWS::WAFv2::WebACL", { + Name: testName + }); +}); + // -------------------------------------------------------------- // Test deployment w/ existing WAF web ACL provided // -------------------------------------------------------------- diff --git a/source/tools/cdk-integ-tools/package.json b/source/tools/cdk-integ-tools/package.json index 9eeb6fa34..dd7f58eda 100644 --- a/source/tools/cdk-integ-tools/package.json +++ b/source/tools/cdk-integ-tools/package.json @@ -32,13 +32,12 @@ "@types/node": "18.11.9", "tslint": "^5.20.1", "typescript": "~3.9.10", - "aws-cdk-lib": "2.67.0", + "aws-cdk-lib": "2.71.0", "constructs": "^10.0.0" }, "dependencies": { - "@aws-cdk/cloudformation-diff": "2.67.0", - "@aws-cdk/assert": "2.67.0", - "aws-cdk": "2.67.0", + "@aws-cdk/cloudformation-diff": "2.71.0", + "aws-cdk": "2.71.0", "fs-extra": "^9.0.1", "yargs": "^16.1.1", "deepmerge": "^4.0.0" @@ -55,7 +54,7 @@ "node": ">= 10.3.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.67.0", + "aws-cdk-lib": "^2.71.0", "constructs": "^10.0.0" } } diff --git a/source/use_cases/aws-restaurant-management-demo/lib/kitchen-staff-stack.ts b/source/use_cases/aws-restaurant-management-demo/lib/kitchen-staff-stack.ts index 82afed20e..fe225ddba 100644 --- a/source/use_cases/aws-restaurant-management-demo/lib/kitchen-staff-stack.ts +++ b/source/use_cases/aws-restaurant-management-demo/lib/kitchen-staff-stack.ts @@ -40,7 +40,7 @@ export class KitchenStaffStack extends Stack { // Create a Lambda function that lists all open orders in the database const getOpenOrders = new LambdaToDynamoDB(this, 'get-open-orders', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda/kitchen-staff/get-open-orders`), handler: 'index.handler', timeout: Duration.seconds(15) @@ -51,7 +51,7 @@ export class KitchenStaffStack extends Stack { // Create a Lambda function that marks an order as completed in the database const completeOrder = new LambdaToDynamoDB(this, 'complete-order', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda/kitchen-staff/complete-order`), handler: 'index.handler', timeout: Duration.seconds(15) diff --git a/source/use_cases/aws-restaurant-management-demo/lib/manager-stack.ts b/source/use_cases/aws-restaurant-management-demo/lib/manager-stack.ts index d06f867ad..bff3d948f 100644 --- a/source/use_cases/aws-restaurant-management-demo/lib/manager-stack.ts +++ b/source/use_cases/aws-restaurant-management-demo/lib/manager-stack.ts @@ -48,7 +48,7 @@ export class ManagerStack extends Stack { // Create a Lambda function that lists all orders from the database const getAllOrders = new LambdaToDynamoDB(this, 'get-all-orders', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda/manager/get-all-orders`), handler: 'index.handler', timeout: Duration.seconds(15), @@ -61,7 +61,7 @@ export class ManagerStack extends Stack { // Runs as part of the close-out process const createReport = new LambdaToDynamoDB(this, 'create-report', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda/manager/create-report`), handler: 'index.handler', timeout: Duration.seconds(15), @@ -79,7 +79,7 @@ export class ManagerStack extends Stack { // Runs as part of the close-out process const calculateTips = new LambdaToDynamoDB(this, 'calculate-tips', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda/manager/calculate-tips`), handler: 'index.handler', timeout: Duration.seconds(15), @@ -96,7 +96,7 @@ export class ManagerStack extends Stack { // Runs as part of the close-out process const archiveOrders = new LambdaToDynamoDB(this, 'archive-orders', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda/manager/archive-orders`), handler: 'index.handler', timeout: Duration.seconds(15), @@ -133,7 +133,7 @@ export class ManagerStack extends Stack { // 5. Setup the Step Functions integration with Lambda trigger const closeOutService = new LambdaToStepfunctions(this, 'close-out-service', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda/manager/close-out-service`), handler: 'index.handler', timeout: Duration.seconds(15) @@ -146,7 +146,7 @@ export class ManagerStack extends Stack { // Create a Lambda function that will retrieve a specific report from the bucket const getReport = new LambdaToS3(this, 'get-report', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda/manager/get-report`), handler: 'index.handler', timeout: Duration.seconds(15) @@ -190,7 +190,7 @@ export class ManagerStack extends Stack { // Create a Lambda function for identifying orders that have been open for too long const checkLateOrders = new LambdaToDynamoDB(this, 'check-late-orders', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda/manager/check-late-orders`), handler: 'index.handler', environment: { diff --git a/source/use_cases/aws-restaurant-management-demo/lib/service-staff-stack.ts b/source/use_cases/aws-restaurant-management-demo/lib/service-staff-stack.ts index dc921573e..4c8ed887d 100644 --- a/source/use_cases/aws-restaurant-management-demo/lib/service-staff-stack.ts +++ b/source/use_cases/aws-restaurant-management-demo/lib/service-staff-stack.ts @@ -40,7 +40,7 @@ export class ServiceStaffStack extends Stack { // Create a Lambda function that adds a new order to the database const createOrder = new LambdaToDynamoDB(this, 'create-order', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda/service-staff/create-order`), handler: 'index.handler', timeout: Duration.seconds(15) @@ -51,7 +51,7 @@ export class ServiceStaffStack extends Stack { // Create a Lambda function that closes out an order in the table const processPayment = new LambdaToDynamoDB(this, 'process-payment', { lambdaFunctionProps: { - runtime: lambda.Runtime.NODEJS_14_X, + runtime: lambda.Runtime.NODEJS_16_X, code: lambda.Code.fromAsset(`${__dirname}/lambda/service-staff/process-payment`), handler: 'index.handler', timeout: Duration.seconds(15) diff --git a/source/use_cases/aws-restaurant-management-demo/lib/shared-stack.ts b/source/use_cases/aws-restaurant-management-demo/lib/shared-stack.ts index 44d7f7165..ba0409f28 100644 --- a/source/use_cases/aws-restaurant-management-demo/lib/shared-stack.ts +++ b/source/use_cases/aws-restaurant-management-demo/lib/shared-stack.ts @@ -64,7 +64,7 @@ export class SharedStack extends Stack { // Setup a Lambda layer for sharing database functions ------------------------------------------------------------- this.layer = new lambda.LayerVersion(this, 'shared-db-functions-layer', { code: lambda.Code.fromAsset(`${__dirname}/lambda/layer`), - compatibleRuntimes: [ lambda.Runtime.NODEJS_14_X ], + compatibleRuntimes: [ lambda.Runtime.NODEJS_16_X ], license: 'Apache-2.0', description: 'Layer for common database access functions', }); diff --git a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/kitchenStaffStack.test.js.snap b/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/kitchenStaffStack.test.js.snap index c9180af56..7d030bcb2 100644 --- a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/kitchenStaffStack.test.js.snap +++ b/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/kitchenStaffStack.test.js.snap @@ -66,11 +66,10 @@ Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "079fa35f7c0d6e2edf75f1898bfe1736c1bc0d1da0998ab198dd3a84de7838ae.zip", + "S3Key": "346587a19365916b741034524422c072ee85b4b82a0e01fb28ef8dc62bdb9737.zip", }, "Environment": Object { "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", "DDB_TABLE_NAME": Object { "Fn::ImportValue": "SharedStack:ExportsOutputRefordertable80C5609084F626AD", }, @@ -83,7 +82,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "Timeout": 15, "TracingConfig": Object { "Mode": "Active", @@ -241,11 +240,10 @@ Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "f98b1e24e7970579ca20597a3842559584937ff9c6801fdd2e9539838f0fcbae.zip", + "S3Key": "3839faae79dc98cb27aae54e5c7f0c281592853e7fb0f04238098ad02a25952c.zip", }, "Environment": Object { "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", "DDB_TABLE_NAME": Object { "Fn::ImportValue": "SharedStack:ExportsOutputRefordertable80C5609084F626AD", }, @@ -258,7 +256,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "Timeout": 15, "TracingConfig": Object { "Mode": "Active", @@ -579,7 +577,7 @@ Object { }, }, "Properties": Object { - "Description": "Automatically created by the RestApi construct", + "Description": "Demo: Kitchen staff API", "RestApiId": Object { "Ref": "kitchenstaffapiLambdaRestApiF3F7D4FC", }, diff --git a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/kitchenStaffStack.test.ts.snap b/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/kitchenStaffStack.test.ts.snap index 8f976be70..0b0094eb5 100644 --- a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/kitchenStaffStack.test.ts.snap +++ b/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/kitchenStaffStack.test.ts.snap @@ -130,7 +130,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": Object { "Mode": "Active", }, @@ -846,7 +846,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": Object { "Mode": "Active", }, diff --git a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/managerStack.test.js.snap b/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/managerStack.test.js.snap deleted file mode 100644 index 4e656c3dd..000000000 --- a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/managerStack.test.js.snap +++ /dev/null @@ -1,2949 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`test-manager-stack 1`] = ` -Object { - "Mappings": Object { - "ServiceprincipalMap": Object { - "af-south-1": Object { - "states": "states.af-south-1.amazonaws.com", - }, - "ap-east-1": Object { - "states": "states.ap-east-1.amazonaws.com", - }, - "ap-northeast-1": Object { - "states": "states.ap-northeast-1.amazonaws.com", - }, - "ap-northeast-2": Object { - "states": "states.ap-northeast-2.amazonaws.com", - }, - "ap-northeast-3": Object { - "states": "states.ap-northeast-3.amazonaws.com", - }, - "ap-south-1": Object { - "states": "states.ap-south-1.amazonaws.com", - }, - "ap-southeast-1": Object { - "states": "states.ap-southeast-1.amazonaws.com", - }, - "ap-southeast-2": Object { - "states": "states.ap-southeast-2.amazonaws.com", - }, - "ap-southeast-3": Object { - "states": "states.ap-southeast-3.amazonaws.com", - }, - "ca-central-1": Object { - "states": "states.ca-central-1.amazonaws.com", - }, - "cn-north-1": Object { - "states": "states.cn-north-1.amazonaws.com", - }, - "cn-northwest-1": Object { - "states": "states.cn-northwest-1.amazonaws.com", - }, - "eu-central-1": Object { - "states": "states.eu-central-1.amazonaws.com", - }, - "eu-north-1": Object { - "states": "states.eu-north-1.amazonaws.com", - }, - "eu-south-1": Object { - "states": "states.eu-south-1.amazonaws.com", - }, - "eu-south-2": Object { - "states": "states.eu-south-2.amazonaws.com", - }, - "eu-west-1": Object { - "states": "states.eu-west-1.amazonaws.com", - }, - "eu-west-2": Object { - "states": "states.eu-west-2.amazonaws.com", - }, - "eu-west-3": Object { - "states": "states.eu-west-3.amazonaws.com", - }, - "me-south-1": Object { - "states": "states.me-south-1.amazonaws.com", - }, - "sa-east-1": Object { - "states": "states.sa-east-1.amazonaws.com", - }, - "us-east-1": Object { - "states": "states.us-east-1.amazonaws.com", - }, - "us-east-2": Object { - "states": "states.us-east-2.amazonaws.com", - }, - "us-gov-east-1": Object { - "states": "states.us-gov-east-1.amazonaws.com", - }, - "us-gov-west-1": Object { - "states": "states.us-gov-west-1.amazonaws.com", - }, - "us-iso-east-1": Object { - "states": "states.amazonaws.com", - }, - "us-iso-west-1": Object { - "states": "states.amazonaws.com", - }, - "us-isob-east-1": Object { - "states": "states.amazonaws.com", - }, - "us-west-1": Object { - "states": "states.us-west-1.amazonaws.com", - }, - "us-west-2": Object { - "states": "states.us-west-2.amazonaws.com", - }, - }, - }, - "Outputs": Object { - "managerapiLambdaRestApiEndpointD1A41897": Object { - "Value": Object { - "Fn::Join": Array [ - "", - Array [ - "https://", - Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - ".execute-api.", - Object { - "Ref": "AWS::Region", - }, - ".", - Object { - "Ref": "AWS::URLSuffix", - }, - "/", - Object { - "Ref": "managerapiLambdaRestApiDeploymentStageprod59C4A8D4", - }, - "/", - ], - ], - }, - }, - }, - "Parameters": Object { - "BootstrapVersion": Object { - "Default": "/cdk-bootstrap/hnb659fds/version", - "Description": "Version of the CDK Bootstrap resources in this environment, automatically retrieved from SSM Parameter Store. [cdk:skip]", - "Type": "AWS::SSM::Parameter::Value", - }, - }, - "Resources": Object { - "archiveordersLambdaFunction66659E04": Object { - "DependsOn": Array [ - "archiveordersLambdaFunctionServiceRoleDefaultPolicyDB67FB52", - "archiveordersLambdaFunctionServiceRoleE513ACF7", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", - }, - "S3Key": "73c9c006378719da4f26edf58d76e55f540b26e5cece3e2fc200ff06d275a640.zip", - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "DDB_TABLE_NAME": Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefordertable80C5609084F626AD", - }, - "S3_BUCKET_NAME": Object { - "Fn::ImportValue": "ExistingResourcesStack:ExportsOutputRefexistingorderarchivebucket95AB7C994BD2255B", - }, - }, - }, - "Handler": "index.handler", - "Layers": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefshareddbfunctionslayerA9CFEC5A89EBE406", - }, - ], - "Role": Object { - "Fn::GetAtt": Array [ - "archiveordersLambdaFunctionServiceRoleE513ACF7", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "Timeout": 15, - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "archiveordersLambdaFunctionServiceRoleDefaultPolicyDB67FB52": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": Array [ - "dynamodb:BatchGetItem", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:Query", - "dynamodb:GetItem", - "dynamodb:Scan", - "dynamodb:ConditionCheckItem", - "dynamodb:BatchWriteItem", - "dynamodb:PutItem", - "dynamodb:UpdateItem", - "dynamodb:DeleteItem", - "dynamodb:DescribeTable", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttordertable80C56090ArnFF5A50B5", - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttordertable80C56090ArnFF5A50B5", - }, - "/index/*", - ], - ], - }, - ], - }, - Object { - "Action": Array [ - "s3:GetObject*", - "s3:GetBucket*", - "s3:List*", - "s3:DeleteObject*", - "s3:PutObject", - "s3:PutObjectLegalHold", - "s3:PutObjectRetention", - "s3:PutObjectTagging", - "s3:PutObjectVersionTagging", - "s3:Abort*", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::ImportValue": "ExistingResourcesStack:ExportsOutputFnGetAttexistingorderarchivebucket95AB7C99Arn7A4BF717", - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::ImportValue": "ExistingResourcesStack:ExportsOutputFnGetAttexistingorderarchivebucket95AB7C99Arn7A4BF717", - }, - "/*", - ], - ], - }, - ], - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "archiveordersLambdaFunctionServiceRoleDefaultPolicyDB67FB52", - "Roles": Array [ - Object { - "Ref": "archiveordersLambdaFunctionServiceRoleE513ACF7", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "archiveordersLambdaFunctionServiceRoleE513ACF7": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "calculatetipsLambdaFunction9F2FE033": Object { - "DependsOn": Array [ - "calculatetipsLambdaFunctionServiceRoleDefaultPolicyED27C928", - "calculatetipsLambdaFunctionServiceRoleDE97A87F", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", - }, - "S3Key": "a78138ba38105bdfdb6b752c4aa5199e2394cd4c43f0a063a7fcd06d04aa7554.zip", - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "DDB_TABLE_NAME": Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefordertable80C5609084F626AD", - }, - "SNS_TOPIC_ARN": Object { - "Ref": "calculatetipstopicSnsTopicD7FACC9C", - }, - "SNS_TOPIC_NAME": Object { - "Fn::GetAtt": Array [ - "calculatetipstopicSnsTopicD7FACC9C", - "TopicName", - ], - }, - }, - }, - "Handler": "index.handler", - "Layers": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefshareddbfunctionslayerA9CFEC5A89EBE406", - }, - ], - "Role": Object { - "Fn::GetAtt": Array [ - "calculatetipsLambdaFunctionServiceRoleDE97A87F", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "Timeout": 15, - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "calculatetipsLambdaFunctionServiceRoleDE97A87F": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "calculatetipsLambdaFunctionServiceRoleDefaultPolicyED27C928": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": Array [ - "dynamodb:BatchGetItem", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:Query", - "dynamodb:GetItem", - "dynamodb:Scan", - "dynamodb:ConditionCheckItem", - "dynamodb:BatchWriteItem", - "dynamodb:PutItem", - "dynamodb:UpdateItem", - "dynamodb:DeleteItem", - "dynamodb:DescribeTable", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttordertable80C56090ArnFF5A50B5", - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttordertable80C56090ArnFF5A50B5", - }, - "/index/*", - ], - ], - }, - ], - }, - Object { - "Action": "sns:Publish", - "Effect": "Allow", - "Resource": Object { - "Ref": "calculatetipstopicSnsTopicD7FACC9C", - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "calculatetipsLambdaFunctionServiceRoleDefaultPolicyED27C928", - "Roles": Array [ - Object { - "Ref": "calculatetipsLambdaFunctionServiceRoleDE97A87F", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "calculatetipstopicSnsTopicD7FACC9C": Object { - "Properties": Object { - "KmsMasterKeyId": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":kms:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":alias/aws/sns", - ], - ], - }, - }, - "Type": "AWS::SNS::Topic", - }, - "calculatetipstopicSnsTopicPolicy529CD9C3": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "SNS:Publish", - "SNS:RemovePermission", - "SNS:SetTopicAttributes", - "SNS:DeleteTopic", - "SNS:ListSubscriptionsByTopic", - "SNS:GetTopicAttributes", - "SNS:Receive", - "SNS:AddPermission", - "SNS:Subscribe", - ], - "Condition": Object { - "StringEquals": Object { - "AWS:SourceOwner": Object { - "Ref": "AWS::AccountId", - }, - }, - }, - "Effect": "Allow", - "Principal": Object { - "AWS": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":iam::", - Object { - "Ref": "AWS::AccountId", - }, - ":root", - ], - ], - }, - }, - "Resource": Object { - "Ref": "calculatetipstopicSnsTopicD7FACC9C", - }, - "Sid": "TopicOwnerOnlyAccess", - }, - Object { - "Action": Array [ - "SNS:Publish", - "SNS:RemovePermission", - "SNS:SetTopicAttributes", - "SNS:DeleteTopic", - "SNS:ListSubscriptionsByTopic", - "SNS:GetTopicAttributes", - "SNS:Receive", - "SNS:AddPermission", - "SNS:Subscribe", - ], - "Condition": Object { - "Bool": Object { - "aws:SecureTransport": "false", - }, - }, - "Effect": "Deny", - "Principal": Object { - "AWS": "*", - }, - "Resource": Object { - "Ref": "calculatetipstopicSnsTopicD7FACC9C", - }, - "Sid": "HttpsOnly", - }, - ], - "Version": "2012-10-17", - }, - "Topics": Array [ - Object { - "Ref": "calculatetipstopicSnsTopicD7FACC9C", - }, - ], - }, - "Type": "AWS::SNS::TopicPolicy", - }, - "checklateordersLambdaFunctionAwsEventsLambdaInvokePermission124C4D337": Object { - "Properties": Object { - "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ - "checklateordersLambdaFunctionB46EDA7D", - "Arn", - ], - }, - "Principal": "events.amazonaws.com", - "SourceArn": Object { - "Fn::GetAtt": Array [ - "checklateordersschedulerchecklateordersschedulerWEventsRule15B31DCC", - "Arn", - ], - }, - }, - "Type": "AWS::Lambda::Permission", - }, - "checklateordersLambdaFunctionB46EDA7D": Object { - "DependsOn": Array [ - "checklateordersLambdaFunctionServiceRoleDefaultPolicy4DABEECE", - "checklateordersLambdaFunctionServiceRoleA8F250A0", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", - }, - "S3Key": "163bafdf2e5906a01cacb85564564cb04ba056e69bc9cdef9c5f046760bbf5e6.zip", - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "DDB_TABLE_NAME": Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefordertable80C5609084F626AD", - }, - "LATE_ORDER_THRESHOLD": "30", - "SNS_TOPIC_ARN": Object { - "Ref": "checklateordersnotifierSnsTopic2055CAD8", - }, - "SNS_TOPIC_NAME": Object { - "Fn::GetAtt": Array [ - "checklateordersnotifierSnsTopic2055CAD8", - "TopicName", - ], - }, - }, - }, - "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ - "checklateordersLambdaFunctionServiceRoleA8F250A0", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "Timeout": 15, - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "checklateordersLambdaFunctionServiceRoleA8F250A0": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "checklateordersLambdaFunctionServiceRoleDefaultPolicy4DABEECE": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": Array [ - "dynamodb:BatchGetItem", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:Query", - "dynamodb:GetItem", - "dynamodb:Scan", - "dynamodb:ConditionCheckItem", - "dynamodb:BatchWriteItem", - "dynamodb:PutItem", - "dynamodb:UpdateItem", - "dynamodb:DeleteItem", - "dynamodb:DescribeTable", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttordertable80C56090ArnFF5A50B5", - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttordertable80C56090ArnFF5A50B5", - }, - "/index/*", - ], - ], - }, - ], - }, - Object { - "Action": "sns:Publish", - "Effect": "Allow", - "Resource": Object { - "Ref": "checklateordersnotifierSnsTopic2055CAD8", - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "checklateordersLambdaFunctionServiceRoleDefaultPolicy4DABEECE", - "Roles": Array [ - Object { - "Ref": "checklateordersLambdaFunctionServiceRoleA8F250A0", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "checklateordersnotifierSnsTopic2055CAD8": Object { - "Properties": Object { - "KmsMasterKeyId": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":kms:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":alias/aws/sns", - ], - ], - }, - }, - "Type": "AWS::SNS::Topic", - }, - "checklateordersnotifierSnsTopicPolicyCF0A65E0": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "SNS:Publish", - "SNS:RemovePermission", - "SNS:SetTopicAttributes", - "SNS:DeleteTopic", - "SNS:ListSubscriptionsByTopic", - "SNS:GetTopicAttributes", - "SNS:Receive", - "SNS:AddPermission", - "SNS:Subscribe", - ], - "Condition": Object { - "StringEquals": Object { - "AWS:SourceOwner": Object { - "Ref": "AWS::AccountId", - }, - }, - }, - "Effect": "Allow", - "Principal": Object { - "AWS": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":iam::", - Object { - "Ref": "AWS::AccountId", - }, - ":root", - ], - ], - }, - }, - "Resource": Object { - "Ref": "checklateordersnotifierSnsTopic2055CAD8", - }, - "Sid": "TopicOwnerOnlyAccess", - }, - Object { - "Action": Array [ - "SNS:Publish", - "SNS:RemovePermission", - "SNS:SetTopicAttributes", - "SNS:DeleteTopic", - "SNS:ListSubscriptionsByTopic", - "SNS:GetTopicAttributes", - "SNS:Receive", - "SNS:AddPermission", - "SNS:Subscribe", - ], - "Condition": Object { - "Bool": Object { - "aws:SecureTransport": "false", - }, - }, - "Effect": "Deny", - "Principal": Object { - "AWS": "*", - }, - "Resource": Object { - "Ref": "checklateordersnotifierSnsTopic2055CAD8", - }, - "Sid": "HttpsOnly", - }, - ], - "Version": "2012-10-17", - }, - "Topics": Array [ - Object { - "Ref": "checklateordersnotifierSnsTopic2055CAD8", - }, - ], - }, - "Type": "AWS::SNS::TopicPolicy", - }, - "checklateordersschedulerchecklateordersschedulerWEventsRule15B31DCC": Object { - "Properties": Object { - "ScheduleExpression": "rate(1 minute)", - "State": "ENABLED", - "Targets": Array [ - Object { - "Arn": Object { - "Fn::GetAtt": Array [ - "checklateordersLambdaFunctionB46EDA7D", - "Arn", - ], - }, - "Id": "Target0", - }, - ], - }, - "Type": "AWS::Events::Rule", - }, - "closeoutserviceExecutionAbortedAlarm861B143E": Object { - "Properties": Object { - "AlarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "ComparisonOperator": "GreaterThanOrEqualToThreshold", - "Dimensions": Array [ - Object { - "Name": "StateMachineArn", - "Value": Object { - "Ref": "closeoutserviceStateMachineC9DD68A8", - }, - }, - ], - "EvaluationPeriods": 1, - "MetricName": "ExecutionsAborted", - "Namespace": "AWS/States", - "Period": 300, - "Statistic": "Maximum", - "Threshold": 1, - }, - "Type": "AWS::CloudWatch::Alarm", - }, - "closeoutserviceExecutionFailedAlarm7495D8BE": Object { - "Properties": Object { - "AlarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "ComparisonOperator": "GreaterThanOrEqualToThreshold", - "Dimensions": Array [ - Object { - "Name": "StateMachineArn", - "Value": Object { - "Ref": "closeoutserviceStateMachineC9DD68A8", - }, - }, - ], - "EvaluationPeriods": 1, - "MetricName": "ExecutionsFailed", - "Namespace": "AWS/States", - "Period": 300, - "Statistic": "Sum", - "Threshold": 1, - }, - "Type": "AWS::CloudWatch::Alarm", - }, - "closeoutserviceExecutionThrottledAlarmC5A6E612": Object { - "Properties": Object { - "AlarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "ComparisonOperator": "GreaterThanOrEqualToThreshold", - "Dimensions": Array [ - Object { - "Name": "StateMachineArn", - "Value": Object { - "Ref": "closeoutserviceStateMachineC9DD68A8", - }, - }, - ], - "EvaluationPeriods": 1, - "MetricName": "ExecutionThrottled", - "Namespace": "AWS/States", - "Period": 300, - "Statistic": "Sum", - "Threshold": 1, - }, - "Type": "AWS::CloudWatch::Alarm", - }, - "closeoutserviceLambdaFunction684B26D3": Object { - "DependsOn": Array [ - "closeoutserviceLambdaFunctionServiceRoleDefaultPolicy95A79CC3", - "closeoutserviceLambdaFunctionServiceRoleB49E9696", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", - }, - "S3Key": "ef2ccd579ef102f993897bc1e5a05c9794586030557c38d080d7a5362c3c0fea.zip", - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "STATE_MACHINE_ARN": Object { - "Ref": "closeoutserviceStateMachineC9DD68A8", - }, - }, - }, - "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ - "closeoutserviceLambdaFunctionServiceRoleB49E9696", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "Timeout": 15, - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "closeoutserviceLambdaFunctionServiceRoleB49E9696": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "closeoutserviceLambdaFunctionServiceRoleDefaultPolicy95A79CC3": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": Object { - "Ref": "closeoutserviceStateMachineC9DD68A8", - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "closeoutserviceLambdaFunctionServiceRoleDefaultPolicy95A79CC3", - "Roles": Array [ - Object { - "Ref": "closeoutserviceLambdaFunctionServiceRoleB49E9696", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "closeoutserviceStateMachineC9DD68A8": Object { - "DependsOn": Array [ - "closeoutserviceStateMachineRoleDefaultPolicy5F05BEB8", - "closeoutserviceStateMachineRoleCA7F9A09", - ], - "Properties": Object { - "DefinitionString": Object { - "Fn::Join": Array [ - "", - Array [ - "{\\"StartAt\\":\\"create-reports-task\\",\\"States\\":{\\"create-reports-task\\":{\\"Next\\":\\"calculate-tips-task\\",\\"Retry\\":[{\\"ErrorEquals\\":[\\"Lambda.ServiceException\\",\\"Lambda.AWSLambdaException\\",\\"Lambda.SdkClientException\\"],\\"IntervalSeconds\\":2,\\"MaxAttempts\\":6,\\"BackoffRate\\":2}],\\"Type\\":\\"Task\\",\\"Resource\\":\\"arn:", - Object { - "Ref": "AWS::Partition", - }, - ":states:::lambda:invoke\\",\\"Parameters\\":{\\"FunctionName\\":\\"", - Object { - "Fn::GetAtt": Array [ - "createreportLambdaFunctionB37EBE52", - "Arn", - ], - }, - "\\",\\"Payload.$\\":\\"$\\"}},\\"calculate-tips-task\\":{\\"Next\\":\\"archive-orders-task\\",\\"Retry\\":[{\\"ErrorEquals\\":[\\"Lambda.ServiceException\\",\\"Lambda.AWSLambdaException\\",\\"Lambda.SdkClientException\\"],\\"IntervalSeconds\\":2,\\"MaxAttempts\\":6,\\"BackoffRate\\":2}],\\"Type\\":\\"Task\\",\\"Resource\\":\\"arn:", - Object { - "Ref": "AWS::Partition", - }, - ":states:::lambda:invoke\\",\\"Parameters\\":{\\"FunctionName\\":\\"", - Object { - "Fn::GetAtt": Array [ - "calculatetipsLambdaFunction9F2FE033", - "Arn", - ], - }, - "\\",\\"Payload.$\\":\\"$\\"}},\\"archive-orders-task\\":{\\"End\\":true,\\"Retry\\":[{\\"ErrorEquals\\":[\\"Lambda.ServiceException\\",\\"Lambda.AWSLambdaException\\",\\"Lambda.SdkClientException\\"],\\"IntervalSeconds\\":2,\\"MaxAttempts\\":6,\\"BackoffRate\\":2}],\\"Type\\":\\"Task\\",\\"Resource\\":\\"arn:", - Object { - "Ref": "AWS::Partition", - }, - ":states:::lambda:invoke\\",\\"Parameters\\":{\\"FunctionName\\":\\"", - Object { - "Fn::GetAtt": Array [ - "archiveordersLambdaFunction66659E04", - "Arn", - ], - }, - "\\",\\"Payload.$\\":\\"$\\"}}}}", - ], - ], - }, - "LoggingConfiguration": Object { - "Destinations": Array [ - Object { - "CloudWatchLogsLogGroup": Object { - "LogGroupArn": Object { - "Fn::GetAtt": Array [ - "closeoutserviceStateMachineLogGroup56CA2C8F", - "Arn", - ], - }, - }, - }, - ], - "Level": "ERROR", - }, - "RoleArn": Object { - "Fn::GetAtt": Array [ - "closeoutserviceStateMachineRoleCA7F9A09", - "Arn", - ], - }, - }, - "Type": "AWS::StepFunctions::StateMachine", - }, - "closeoutserviceStateMachineLogGroup56CA2C8F": Object { - "DeletionPolicy": "Retain", - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W86", - "reason": "Retention period for CloudWatchLogs LogGroups are set to 'Never Expire' to preserve customer data indefinitely", - }, - Object { - "id": "W84", - "reason": "By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys)", - }, - ], - }, - }, - "Properties": Object { - "LogGroupName": "/aws/vendedlogs/states/managerstackcloseoutservicestatemachinelog5da3d5b2d585", - }, - "Type": "AWS::Logs::LogGroup", - "UpdateReplacePolicy": "Retain", - }, - "closeoutserviceStateMachineRoleCA7F9A09": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": Object { - "Fn::FindInMap": Array [ - "ServiceprincipalMap", - Object { - "Ref": "AWS::Region", - }, - "states", - ], - }, - }, - }, - ], - "Version": "2012-10-17", - }, - }, - "Type": "AWS::IAM::Role", - }, - "closeoutserviceStateMachineRoleDefaultPolicy5F05BEB8": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "The 'LogDelivery' actions do not support resource-level authorizations", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ - "createreportLambdaFunctionB37EBE52", - "Arn", - ], - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::GetAtt": Array [ - "createreportLambdaFunctionB37EBE52", - "Arn", - ], - }, - ":*", - ], - ], - }, - ], - }, - Object { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ - "calculatetipsLambdaFunction9F2FE033", - "Arn", - ], - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::GetAtt": Array [ - "calculatetipsLambdaFunction9F2FE033", - "Arn", - ], - }, - ":*", - ], - ], - }, - ], - }, - Object { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ - "archiveordersLambdaFunction66659E04", - "Arn", - ], - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::GetAtt": Array [ - "archiveordersLambdaFunction66659E04", - "Arn", - ], - }, - ":*", - ], - ], - }, - ], - }, - Object { - "Action": Array [ - "logs:PutResourcePolicy", - "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "closeoutserviceStateMachineRoleDefaultPolicy5F05BEB8", - "Roles": Array [ - Object { - "Ref": "closeoutserviceStateMachineRoleCA7F9A09", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "createreportLambdaFunctionB37EBE52": Object { - "DependsOn": Array [ - "createreportLambdaFunctionServiceRoleDefaultPolicy5A317B6C", - "createreportLambdaFunctionServiceRole33C78256", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", - }, - "S3Key": "e8b34645be63aee518b14819c57483ed3803320717ead9b7622042b7776d8321.zip", - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "DDB_TABLE_NAME": Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefordertable80C5609084F626AD", - }, - "S3_BUCKET_NAME": Object { - "Ref": "reportsbucketS3BucketCC334898", - }, - }, - }, - "Handler": "index.handler", - "Layers": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefshareddbfunctionslayerA9CFEC5A89EBE406", - }, - ], - "Role": Object { - "Fn::GetAtt": Array [ - "createreportLambdaFunctionServiceRole33C78256", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "Timeout": 15, - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "createreportLambdaFunctionServiceRole33C78256": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "createreportLambdaFunctionServiceRoleDefaultPolicy5A317B6C": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": Array [ - "dynamodb:BatchGetItem", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:Query", - "dynamodb:GetItem", - "dynamodb:Scan", - "dynamodb:ConditionCheckItem", - "dynamodb:BatchWriteItem", - "dynamodb:PutItem", - "dynamodb:UpdateItem", - "dynamodb:DeleteItem", - "dynamodb:DescribeTable", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttordertable80C56090ArnFF5A50B5", - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttordertable80C56090ArnFF5A50B5", - }, - "/index/*", - ], - ], - }, - ], - }, - Object { - "Action": Array [ - "s3:GetObject*", - "s3:GetBucket*", - "s3:List*", - "s3:DeleteObject*", - "s3:PutObject", - "s3:PutObjectLegalHold", - "s3:PutObjectRetention", - "s3:PutObjectTagging", - "s3:PutObjectVersionTagging", - "s3:Abort*", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3BucketCC334898", - "Arn", - ], - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3BucketCC334898", - "Arn", - ], - }, - "/*", - ], - ], - }, - ], - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "createreportLambdaFunctionServiceRoleDefaultPolicy5A317B6C", - "Roles": Array [ - Object { - "Ref": "createreportLambdaFunctionServiceRole33C78256", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "getallordersLambdaFunctionFEF65B05": Object { - "DependsOn": Array [ - "getallordersLambdaFunctionServiceRoleDefaultPolicy705A0D9A", - "getallordersLambdaFunctionServiceRole8AF6EF71", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", - }, - "S3Key": "bbc65a0fb678fc99f63770d2e627e3e013d7688bef90acea02cccae8c50b2fc8.zip", - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "DDB_TABLE_NAME": Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefordertable80C5609084F626AD", - }, - }, - }, - "Handler": "index.handler", - "Layers": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefshareddbfunctionslayerA9CFEC5A89EBE406", - }, - ], - "Role": Object { - "Fn::GetAtt": Array [ - "getallordersLambdaFunctionServiceRole8AF6EF71", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "Timeout": 15, - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "getallordersLambdaFunctionServiceRole8AF6EF71": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "getallordersLambdaFunctionServiceRoleDefaultPolicy705A0D9A": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": Array [ - "dynamodb:BatchGetItem", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:Query", - "dynamodb:GetItem", - "dynamodb:Scan", - "dynamodb:ConditionCheckItem", - "dynamodb:BatchWriteItem", - "dynamodb:PutItem", - "dynamodb:UpdateItem", - "dynamodb:DeleteItem", - "dynamodb:DescribeTable", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttordertable80C56090ArnFF5A50B5", - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttordertable80C56090ArnFF5A50B5", - }, - "/index/*", - ], - ], - }, - ], - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "getallordersLambdaFunctionServiceRoleDefaultPolicy705A0D9A", - "Roles": Array [ - Object { - "Ref": "getallordersLambdaFunctionServiceRole8AF6EF71", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "getreportLambdaFunction2A26EACE": Object { - "DependsOn": Array [ - "getreportLambdaFunctionServiceRoleDefaultPolicy0A75937B", - "getreportLambdaFunctionServiceRole39064368", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", - }, - "S3Key": "b8c4071c2fc7ca40b1fe68986299039a4c0f6d7dc9d680c88ac619439f34ab04.zip", - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "S3_BUCKET_NAME": Object { - "Ref": "reportsbucketS3BucketCC334898", - }, - }, - }, - "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ - "getreportLambdaFunctionServiceRole39064368", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "Timeout": 15, - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "getreportLambdaFunctionServiceRole39064368": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "getreportLambdaFunctionServiceRoleDefaultPolicy0A75937B": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": Array [ - "s3:GetObject*", - "s3:GetBucket*", - "s3:List*", - "s3:DeleteObject*", - "s3:PutObject", - "s3:PutObjectLegalHold", - "s3:PutObjectRetention", - "s3:PutObjectTagging", - "s3:PutObjectVersionTagging", - "s3:Abort*", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3BucketCC334898", - "Arn", - ], - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3BucketCC334898", - "Arn", - ], - }, - "/*", - ], - ], - }, - ], - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "getreportLambdaFunctionServiceRoleDefaultPolicy0A75937B", - "Roles": Array [ - Object { - "Ref": "getreportLambdaFunctionServiceRole39064368", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "managerapiApiAccessLogGroup35F9537B": Object { - "DeletionPolicy": "Retain", - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W86", - "reason": "Retention period for CloudWatchLogs LogGroups are set to 'Never Expire' to preserve customer data indefinitely", - }, - Object { - "id": "W84", - "reason": "By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys)", - }, - ], - }, - }, - "Type": "AWS::Logs::LogGroup", - "UpdateReplacePolicy": "Retain", - }, - "managerapiCognitoAuthorizer5745AF8D": Object { - "Properties": Object { - "IdentitySource": "method.request.header.Authorization", - "Name": "authorizer", - "ProviderARNs": Array [ - Object { - "Fn::GetAtt": Array [ - "managerapiCognitoUserPool03946196", - "Arn", - ], - }, - ], - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "Type": "COGNITO_USER_POOLS", - }, - "Type": "AWS::ApiGateway::Authorizer", - }, - "managerapiCognitoUserPool03946196": Object { - "DeletionPolicy": "Retain", - "Properties": Object { - "AccountRecoverySetting": Object { - "RecoveryMechanisms": Array [ - Object { - "Name": "verified_phone_number", - "Priority": 1, - }, - Object { - "Name": "verified_email", - "Priority": 2, - }, - ], - }, - "AdminCreateUserConfig": Object { - "AllowAdminCreateUserOnly": true, - }, - "EmailVerificationMessage": "The verification code to your new account is {####}", - "EmailVerificationSubject": "Verify your new account", - "SmsVerificationMessage": "The verification code to your new account is {####}", - "UserPoolAddOns": Object { - "AdvancedSecurityMode": "ENFORCED", - }, - "VerificationMessageTemplate": Object { - "DefaultEmailOption": "CONFIRM_WITH_CODE", - "EmailMessage": "The verification code to your new account is {####}", - "EmailSubject": "Verify your new account", - "SmsMessage": "The verification code to your new account is {####}", - }, - }, - "Type": "AWS::Cognito::UserPool", - "UpdateReplacePolicy": "Retain", - }, - "managerapiCognitoUserPoolClientB3BC933D": Object { - "Properties": Object { - "AllowedOAuthFlows": Array [ - "implicit", - "code", - ], - "AllowedOAuthFlowsUserPoolClient": true, - "AllowedOAuthScopes": Array [ - "profile", - "phone", - "email", - "openid", - "aws.cognito.signin.user.admin", - ], - "CallbackURLs": Array [ - "https://example.com", - ], - "SupportedIdentityProviders": Array [ - "COGNITO", - ], - "UserPoolId": Object { - "Ref": "managerapiCognitoUserPool03946196", - }, - }, - "Type": "AWS::Cognito::UserPoolClient", - }, - "managerapiLambdaRestApi62BEEAC7": Object { - "Properties": Object { - "Description": "Demo: Manager API", - "EndpointConfiguration": Object { - "Types": Array [ - "EDGE", - ], - }, - "Name": "LambdaRestApi", - }, - "Type": "AWS::ApiGateway::RestApi", - }, - "managerapiLambdaRestApiAccount350A78F5": Object { - "DependsOn": Array [ - "managerapiLambdaRestApi62BEEAC7", - ], - "Properties": Object { - "CloudWatchRoleArn": Object { - "Fn::GetAtt": Array [ - "managerapiLambdaRestApiCloudWatchRole43F48235", - "Arn", - ], - }, - }, - "Type": "AWS::ApiGateway::Account", - }, - "managerapiLambdaRestApiCloudWatchRole43F48235": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "apigateway.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:DescribeLogGroups", - "logs:DescribeLogStreams", - "logs:PutLogEvents", - "logs:GetLogEvents", - "logs:FilterLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaRestApiCloudWatchRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "managerapiLambdaRestApiDeployment719D102Abf8fc62f0a59aea37747b68fec60f4a4": Object { - "DependsOn": Array [ - "managerapiLambdaRestApicloseoutserviceproxyANY182BEB46", - "managerapiLambdaRestApicloseoutserviceproxyECAF0FA1", - "managerapiLambdaRestApicloseoutservice2D3987E6", - "managerapiLambdaRestApigetallordersproxyANYEAB740ED", - "managerapiLambdaRestApigetallordersproxyEE336136", - "managerapiLambdaRestApigetallorders29C83FB0", - "managerapiLambdaRestApigetreportproxyANY93C7142D", - "managerapiLambdaRestApigetreportproxy2FB66C91", - "managerapiLambdaRestApigetreportDB310438", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W45", - "reason": "ApiGateway has AccessLogging enabled in AWS::ApiGateway::Stage resource, but cfn_nag checkes for it in AWS::ApiGateway::Deployment resource", - }, - ], - }, - }, - "Properties": Object { - "Description": "Automatically created by the RestApi construct", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Deployment", - }, - "managerapiLambdaRestApiDeploymentStageprod59C4A8D4": Object { - "Properties": Object { - "AccessLogSetting": Object { - "DestinationArn": Object { - "Fn::GetAtt": Array [ - "managerapiApiAccessLogGroup35F9537B", - "Arn", - ], - }, - "Format": "{\\"requestId\\":\\"$context.requestId\\",\\"ip\\":\\"$context.identity.sourceIp\\",\\"user\\":\\"$context.identity.user\\",\\"caller\\":\\"$context.identity.caller\\",\\"requestTime\\":\\"$context.requestTime\\",\\"httpMethod\\":\\"$context.httpMethod\\",\\"resourcePath\\":\\"$context.resourcePath\\",\\"status\\":\\"$context.status\\",\\"protocol\\":\\"$context.protocol\\",\\"responseLength\\":\\"$context.responseLength\\"}", - }, - "DeploymentId": Object { - "Ref": "managerapiLambdaRestApiDeployment719D102Abf8fc62f0a59aea37747b68fec60f4a4", - }, - "MethodSettings": Array [ - Object { - "DataTraceEnabled": false, - "HttpMethod": "*", - "LoggingLevel": "INFO", - "ResourcePath": "/*", - }, - ], - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "StageName": "prod", - "TracingEnabled": true, - }, - "Type": "AWS::ApiGateway::Stage", - }, - "managerapiLambdaRestApiUsagePlanF10CE619": Object { - "Properties": Object { - "ApiStages": Array [ - Object { - "ApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "Stage": Object { - "Ref": "managerapiLambdaRestApiDeploymentStageprod59C4A8D4", - }, - "Throttle": Object {}, - }, - ], - }, - "Type": "AWS::ApiGateway::UsagePlan", - }, - "managerapiLambdaRestApicloseoutservice2D3987E6": Object { - "Properties": Object { - "ParentId": Object { - "Fn::GetAtt": Array [ - "managerapiLambdaRestApi62BEEAC7", - "RootResourceId", - ], - }, - "PathPart": "close-out-service", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Resource", - }, - "managerapiLambdaRestApicloseoutserviceproxyANY182BEB46": Object { - "Properties": Object { - "AuthorizationType": "COGNITO_USER_POOLS", - "AuthorizerId": Object { - "Ref": "managerapiCognitoAuthorizer5745AF8D", - }, - "HttpMethod": "ANY", - "Integration": Object { - "IntegrationHttpMethod": "POST", - "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":apigateway:", - Object { - "Ref": "AWS::Region", - }, - ":lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ - "closeoutserviceLambdaFunction684B26D3", - "Arn", - ], - }, - "/invocations", - ], - ], - }, - }, - "ResourceId": Object { - "Ref": "managerapiLambdaRestApicloseoutserviceproxyECAF0FA1", - }, - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Method", - }, - "managerapiLambdaRestApicloseoutserviceproxyANYApiPermissionManagerStackmanagerapiLambdaRestApi386CA826ANYcloseoutserviceproxy132F7E1D": Object { - "Properties": Object { - "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ - "closeoutserviceLambdaFunction684B26D3", - "Arn", - ], - }, - "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":execute-api:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":", - Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "/", - Object { - "Ref": "managerapiLambdaRestApiDeploymentStageprod59C4A8D4", - }, - "/*/close-out-service/*", - ], - ], - }, - }, - "Type": "AWS::Lambda::Permission", - }, - "managerapiLambdaRestApicloseoutserviceproxyANYApiPermissionTestManagerStackmanagerapiLambdaRestApi386CA826ANYcloseoutserviceproxy8A25C882": Object { - "Properties": Object { - "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ - "closeoutserviceLambdaFunction684B26D3", - "Arn", - ], - }, - "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":execute-api:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":", - Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "/test-invoke-stage/*/close-out-service/*", - ], - ], - }, - }, - "Type": "AWS::Lambda::Permission", - }, - "managerapiLambdaRestApicloseoutserviceproxyECAF0FA1": Object { - "Properties": Object { - "ParentId": Object { - "Ref": "managerapiLambdaRestApicloseoutservice2D3987E6", - }, - "PathPart": "{proxy+}", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Resource", - }, - "managerapiLambdaRestApigetallorders29C83FB0": Object { - "Properties": Object { - "ParentId": Object { - "Fn::GetAtt": Array [ - "managerapiLambdaRestApi62BEEAC7", - "RootResourceId", - ], - }, - "PathPart": "get-all-orders", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Resource", - }, - "managerapiLambdaRestApigetallordersproxyANYApiPermissionManagerStackmanagerapiLambdaRestApi386CA826ANYgetallordersproxy57374F7E": Object { - "Properties": Object { - "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ - "getallordersLambdaFunctionFEF65B05", - "Arn", - ], - }, - "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":execute-api:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":", - Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "/", - Object { - "Ref": "managerapiLambdaRestApiDeploymentStageprod59C4A8D4", - }, - "/*/get-all-orders/*", - ], - ], - }, - }, - "Type": "AWS::Lambda::Permission", - }, - "managerapiLambdaRestApigetallordersproxyANYApiPermissionTestManagerStackmanagerapiLambdaRestApi386CA826ANYgetallordersproxy45104276": Object { - "Properties": Object { - "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ - "getallordersLambdaFunctionFEF65B05", - "Arn", - ], - }, - "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":execute-api:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":", - Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "/test-invoke-stage/*/get-all-orders/*", - ], - ], - }, - }, - "Type": "AWS::Lambda::Permission", - }, - "managerapiLambdaRestApigetallordersproxyANYEAB740ED": Object { - "Properties": Object { - "AuthorizationType": "COGNITO_USER_POOLS", - "AuthorizerId": Object { - "Ref": "managerapiCognitoAuthorizer5745AF8D", - }, - "HttpMethod": "ANY", - "Integration": Object { - "IntegrationHttpMethod": "POST", - "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":apigateway:", - Object { - "Ref": "AWS::Region", - }, - ":lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ - "getallordersLambdaFunctionFEF65B05", - "Arn", - ], - }, - "/invocations", - ], - ], - }, - }, - "ResourceId": Object { - "Ref": "managerapiLambdaRestApigetallordersproxyEE336136", - }, - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Method", - }, - "managerapiLambdaRestApigetallordersproxyEE336136": Object { - "Properties": Object { - "ParentId": Object { - "Ref": "managerapiLambdaRestApigetallorders29C83FB0", - }, - "PathPart": "{proxy+}", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Resource", - }, - "managerapiLambdaRestApigetreportDB310438": Object { - "Properties": Object { - "ParentId": Object { - "Fn::GetAtt": Array [ - "managerapiLambdaRestApi62BEEAC7", - "RootResourceId", - ], - }, - "PathPart": "get-report", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Resource", - }, - "managerapiLambdaRestApigetreportproxy2FB66C91": Object { - "Properties": Object { - "ParentId": Object { - "Ref": "managerapiLambdaRestApigetreportDB310438", - }, - "PathPart": "{proxy+}", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Resource", - }, - "managerapiLambdaRestApigetreportproxyANY93C7142D": Object { - "Properties": Object { - "AuthorizationType": "COGNITO_USER_POOLS", - "AuthorizerId": Object { - "Ref": "managerapiCognitoAuthorizer5745AF8D", - }, - "HttpMethod": "ANY", - "Integration": Object { - "IntegrationHttpMethod": "POST", - "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":apigateway:", - Object { - "Ref": "AWS::Region", - }, - ":lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ - "getreportLambdaFunction2A26EACE", - "Arn", - ], - }, - "/invocations", - ], - ], - }, - }, - "ResourceId": Object { - "Ref": "managerapiLambdaRestApigetreportproxy2FB66C91", - }, - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Method", - }, - "managerapiLambdaRestApigetreportproxyANYApiPermissionManagerStackmanagerapiLambdaRestApi386CA826ANYgetreportproxy80B2B901": Object { - "Properties": Object { - "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ - "getreportLambdaFunction2A26EACE", - "Arn", - ], - }, - "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":execute-api:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":", - Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "/", - Object { - "Ref": "managerapiLambdaRestApiDeploymentStageprod59C4A8D4", - }, - "/*/get-report/*", - ], - ], - }, - }, - "Type": "AWS::Lambda::Permission", - }, - "managerapiLambdaRestApigetreportproxyANYApiPermissionTestManagerStackmanagerapiLambdaRestApi386CA826ANYgetreportproxy7868B7DA": Object { - "Properties": Object { - "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ - "getreportLambdaFunction2A26EACE", - "Arn", - ], - }, - "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":execute-api:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":", - Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "/test-invoke-stage/*/get-report/*", - ], - ], - }, - }, - "Type": "AWS::Lambda::Permission", - }, - "reportsbucketS3BucketCC334898": Object { - "DeletionPolicy": "Retain", - "Properties": Object { - "BucketEncryption": Object { - "ServerSideEncryptionConfiguration": Array [ - Object { - "ServerSideEncryptionByDefault": Object { - "SSEAlgorithm": "AES256", - }, - }, - ], - }, - "LifecycleConfiguration": Object { - "Rules": Array [ - Object { - "NoncurrentVersionTransitions": Array [ - Object { - "StorageClass": "GLACIER", - "TransitionInDays": 90, - }, - ], - "Status": "Enabled", - }, - ], - }, - "LoggingConfiguration": Object { - "DestinationBucketName": Object { - "Ref": "reportsbucketS3LoggingBucket088F7E0E", - }, - }, - "PublicAccessBlockConfiguration": Object { - "BlockPublicAcls": true, - "BlockPublicPolicy": true, - "IgnorePublicAcls": true, - "RestrictPublicBuckets": true, - }, - "VersioningConfiguration": Object { - "Status": "Enabled", - }, - }, - "Type": "AWS::S3::Bucket", - "UpdateReplacePolicy": "Retain", - }, - "reportsbucketS3BucketPolicyCF9C1527": Object { - "Properties": Object { - "Bucket": Object { - "Ref": "reportsbucketS3BucketCC334898", - }, - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "s3:*", - "Condition": Object { - "Bool": Object { - "aws:SecureTransport": "false", - }, - }, - "Effect": "Deny", - "Principal": Object { - "AWS": "*", - }, - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3BucketCC334898", - "Arn", - ], - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3BucketCC334898", - "Arn", - ], - }, - "/*", - ], - ], - }, - ], - }, - ], - "Version": "2012-10-17", - }, - }, - "Type": "AWS::S3::BucketPolicy", - }, - "reportsbucketS3LoggingBucket088F7E0E": Object { - "DeletionPolicy": "Retain", - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W35", - "reason": "This S3 bucket is used as the access logging bucket for another bucket", - }, - ], - }, - }, - "Properties": Object { - "AccessControl": "LogDeliveryWrite", - "BucketEncryption": Object { - "ServerSideEncryptionConfiguration": Array [ - Object { - "ServerSideEncryptionByDefault": Object { - "SSEAlgorithm": "AES256", - }, - }, - ], - }, - "PublicAccessBlockConfiguration": Object { - "BlockPublicAcls": true, - "BlockPublicPolicy": true, - "IgnorePublicAcls": true, - "RestrictPublicBuckets": true, - }, - "VersioningConfiguration": Object { - "Status": "Enabled", - }, - }, - "Type": "AWS::S3::Bucket", - "UpdateReplacePolicy": "Retain", - }, - "reportsbucketS3LoggingBucketPolicy82A7D267": Object { - "Properties": Object { - "Bucket": Object { - "Ref": "reportsbucketS3LoggingBucket088F7E0E", - }, - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "s3:*", - "Condition": Object { - "Bool": Object { - "aws:SecureTransport": "false", - }, - }, - "Effect": "Deny", - "Principal": Object { - "AWS": "*", - }, - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3LoggingBucket088F7E0E", - "Arn", - ], - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3LoggingBucket088F7E0E", - "Arn", - ], - }, - "/*", - ], - ], - }, - ], - }, - ], - "Version": "2012-10-17", - }, - }, - "Type": "AWS::S3::BucketPolicy", - }, - }, - "Rules": Object { - "CheckBootstrapVersion": Object { - "Assertions": Array [ - Object { - "Assert": Object { - "Fn::Not": Array [ - Object { - "Fn::Contains": Array [ - Array [ - "1", - "2", - "3", - "4", - "5", - ], - Object { - "Ref": "BootstrapVersion", - }, - ], - }, - ], - }, - "AssertDescription": "CDK bootstrap stack version 6 required. Please run 'cdk bootstrap' with a recent version of the CDK CLI.", - }, - ], - }, - }, -} -`; diff --git a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/managerStack.test.ts.snap b/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/managerStack.test.ts.snap deleted file mode 100644 index 21877ce27..000000000 --- a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/managerStack.test.ts.snap +++ /dev/null @@ -1,2654 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`test-manager-stack 1`] = ` -Object { - "Outputs": Object { - "managerapiLambdaRestApiEndpointD1A41897": Object { - "Value": Object { - "Fn::Join": Array [ - "", - Array [ - "https://", - Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - ".execute-api.us-east-1.", - Object { - "Ref": "AWS::URLSuffix", - }, - "/", - Object { - "Ref": "managerapiLambdaRestApiDeploymentStageprod59C4A8D4", - }, - "/", - ], - ], - }, - }, - }, - "Parameters": Object { - "AssetParameters082c093d0decaeaf11ada975331e1e2e077c188737c9c1672ca3dac35a434cf2ArtifactHashCAFDB577": Object { - "Description": "Artifact hash for asset \\"082c093d0decaeaf11ada975331e1e2e077c188737c9c1672ca3dac35a434cf2\\"", - "Type": "String", - }, - "AssetParameters082c093d0decaeaf11ada975331e1e2e077c188737c9c1672ca3dac35a434cf2S3Bucket2D3D7D82": Object { - "Description": "S3 bucket for asset \\"082c093d0decaeaf11ada975331e1e2e077c188737c9c1672ca3dac35a434cf2\\"", - "Type": "String", - }, - "AssetParameters082c093d0decaeaf11ada975331e1e2e077c188737c9c1672ca3dac35a434cf2S3VersionKey882A94CB": Object { - "Description": "S3 key for asset version \\"082c093d0decaeaf11ada975331e1e2e077c188737c9c1672ca3dac35a434cf2\\"", - "Type": "String", - }, - "AssetParameters2f0da58e411ab6b0549e6ad40bf1c54171752a646b89e453c5c3803ff20c254cArtifactHash04148482": Object { - "Description": "Artifact hash for asset \\"2f0da58e411ab6b0549e6ad40bf1c54171752a646b89e453c5c3803ff20c254c\\"", - "Type": "String", - }, - "AssetParameters2f0da58e411ab6b0549e6ad40bf1c54171752a646b89e453c5c3803ff20c254cS3Bucket1B8C7DD7": Object { - "Description": "S3 bucket for asset \\"2f0da58e411ab6b0549e6ad40bf1c54171752a646b89e453c5c3803ff20c254c\\"", - "Type": "String", - }, - "AssetParameters2f0da58e411ab6b0549e6ad40bf1c54171752a646b89e453c5c3803ff20c254cS3VersionKey6C2FB92E": Object { - "Description": "S3 key for asset version \\"2f0da58e411ab6b0549e6ad40bf1c54171752a646b89e453c5c3803ff20c254c\\"", - "Type": "String", - }, - "AssetParameters3579f3ba4ed0a2e2a89e25a539f1b17dc8fe7d795e0e4cd6e93d875c48f3ecfbArtifactHash4C9AF59C": Object { - "Description": "Artifact hash for asset \\"3579f3ba4ed0a2e2a89e25a539f1b17dc8fe7d795e0e4cd6e93d875c48f3ecfb\\"", - "Type": "String", - }, - "AssetParameters3579f3ba4ed0a2e2a89e25a539f1b17dc8fe7d795e0e4cd6e93d875c48f3ecfbS3Bucket9ED6F329": Object { - "Description": "S3 bucket for asset \\"3579f3ba4ed0a2e2a89e25a539f1b17dc8fe7d795e0e4cd6e93d875c48f3ecfb\\"", - "Type": "String", - }, - "AssetParameters3579f3ba4ed0a2e2a89e25a539f1b17dc8fe7d795e0e4cd6e93d875c48f3ecfbS3VersionKey32CA5343": Object { - "Description": "S3 key for asset version \\"3579f3ba4ed0a2e2a89e25a539f1b17dc8fe7d795e0e4cd6e93d875c48f3ecfb\\"", - "Type": "String", - }, - "AssetParameters5dc0666f057bc99738d8505d74a8f25576fc501d98f95ea7e69b36b3a7dd6ad1ArtifactHash152A2A15": Object { - "Description": "Artifact hash for asset \\"5dc0666f057bc99738d8505d74a8f25576fc501d98f95ea7e69b36b3a7dd6ad1\\"", - "Type": "String", - }, - "AssetParameters5dc0666f057bc99738d8505d74a8f25576fc501d98f95ea7e69b36b3a7dd6ad1S3BucketF5B31E9E": Object { - "Description": "S3 bucket for asset \\"5dc0666f057bc99738d8505d74a8f25576fc501d98f95ea7e69b36b3a7dd6ad1\\"", - "Type": "String", - }, - "AssetParameters5dc0666f057bc99738d8505d74a8f25576fc501d98f95ea7e69b36b3a7dd6ad1S3VersionKey4A579976": Object { - "Description": "S3 key for asset version \\"5dc0666f057bc99738d8505d74a8f25576fc501d98f95ea7e69b36b3a7dd6ad1\\"", - "Type": "String", - }, - "AssetParametersc82a6fa188f5986a76f5d3bc6ddbcf1647ce70fd9411698e1d8d694ea91f688aArtifactHash84A7F12F": Object { - "Description": "Artifact hash for asset \\"c82a6fa188f5986a76f5d3bc6ddbcf1647ce70fd9411698e1d8d694ea91f688a\\"", - "Type": "String", - }, - "AssetParametersc82a6fa188f5986a76f5d3bc6ddbcf1647ce70fd9411698e1d8d694ea91f688aS3BucketD8C1F551": Object { - "Description": "S3 bucket for asset \\"c82a6fa188f5986a76f5d3bc6ddbcf1647ce70fd9411698e1d8d694ea91f688a\\"", - "Type": "String", - }, - "AssetParametersc82a6fa188f5986a76f5d3bc6ddbcf1647ce70fd9411698e1d8d694ea91f688aS3VersionKey10E0E95D": Object { - "Description": "S3 key for asset version \\"c82a6fa188f5986a76f5d3bc6ddbcf1647ce70fd9411698e1d8d694ea91f688a\\"", - "Type": "String", - }, - "AssetParametersef2fb7a3c1a9327e753c7c4087c65e8ad44e35b19ac3cbb1879b7d74a4f0ae16ArtifactHash9A8A3080": Object { - "Description": "Artifact hash for asset \\"ef2fb7a3c1a9327e753c7c4087c65e8ad44e35b19ac3cbb1879b7d74a4f0ae16\\"", - "Type": "String", - }, - "AssetParametersef2fb7a3c1a9327e753c7c4087c65e8ad44e35b19ac3cbb1879b7d74a4f0ae16S3Bucket68E56E73": Object { - "Description": "S3 bucket for asset \\"ef2fb7a3c1a9327e753c7c4087c65e8ad44e35b19ac3cbb1879b7d74a4f0ae16\\"", - "Type": "String", - }, - "AssetParametersef2fb7a3c1a9327e753c7c4087c65e8ad44e35b19ac3cbb1879b7d74a4f0ae16S3VersionKey9E7EB7BC": Object { - "Description": "S3 key for asset version \\"ef2fb7a3c1a9327e753c7c4087c65e8ad44e35b19ac3cbb1879b7d74a4f0ae16\\"", - "Type": "String", - }, - }, - "Resources": Object { - "archiveordersLambdaFunction66659E04": Object { - "DependsOn": Array [ - "archiveordersLambdaFunctionServiceRoleDefaultPolicyDB67FB52", - "archiveordersLambdaFunctionServiceRoleE513ACF7", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Ref": "AssetParameters082c093d0decaeaf11ada975331e1e2e077c188737c9c1672ca3dac35a434cf2S3Bucket2D3D7D82", - }, - "S3Key": Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::Select": Array [ - 0, - Object { - "Fn::Split": Array [ - "||", - Object { - "Ref": "AssetParameters082c093d0decaeaf11ada975331e1e2e077c188737c9c1672ca3dac35a434cf2S3VersionKey882A94CB", - }, - ], - }, - ], - }, - Object { - "Fn::Select": Array [ - 1, - Object { - "Fn::Split": Array [ - "||", - Object { - "Ref": "AssetParameters082c093d0decaeaf11ada975331e1e2e077c188737c9c1672ca3dac35a434cf2S3VersionKey882A94CB", - }, - ], - }, - ], - }, - ], - ], - }, - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "DDB_TABLE_NAME": Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefdatabaseEBDE4557157C00B6", - }, - }, - }, - "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ - "archiveordersLambdaFunctionServiceRoleE513ACF7", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "archiveordersLambdaFunctionServiceRoleDefaultPolicyDB67FB52": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": Array [ - "dynamodb:BatchGetItem", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:Query", - "dynamodb:GetItem", - "dynamodb:Scan", - "dynamodb:ConditionCheckItem", - "dynamodb:BatchWriteItem", - "dynamodb:PutItem", - "dynamodb:UpdateItem", - "dynamodb:DeleteItem", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttdatabaseEBDE4557ArnC01D766F", - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttdatabaseEBDE4557ArnC01D766F", - }, - "/index/*", - ], - ], - }, - ], - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "archiveordersLambdaFunctionServiceRoleDefaultPolicyDB67FB52", - "Roles": Array [ - Object { - "Ref": "archiveordersLambdaFunctionServiceRoleE513ACF7", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "archiveordersLambdaFunctionServiceRoleE513ACF7": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "calculatedtipstopicSnsTopicD6D93D2C": Object { - "Properties": Object { - "KmsMasterKeyId": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":kms:us-east-1:ACCOUNT_NUMBER_HERE:alias/aws/sns", - ], - ], - }, - }, - "Type": "AWS::SNS::Topic", - }, - "calculatedtipstopicSnsTopicPolicy092A0B4B": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "SNS:Publish", - "SNS:RemovePermission", - "SNS:SetTopicAttributes", - "SNS:DeleteTopic", - "SNS:ListSubscriptionsByTopic", - "SNS:GetTopicAttributes", - "SNS:Receive", - "SNS:AddPermission", - "SNS:Subscribe", - ], - "Condition": Object { - "StringEquals": Object { - "AWS:SourceOwner": "ACCOUNT_NUMBER_HERE", - }, - }, - "Effect": "Allow", - "Principal": Object { - "AWS": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":iam::ACCOUNT_NUMBER_HERE:root", - ], - ], - }, - }, - "Resource": Object { - "Ref": "calculatedtipstopicSnsTopicD6D93D2C", - }, - "Sid": "TopicOwnerOnlyAccess", - }, - Object { - "Action": Array [ - "SNS:Publish", - "SNS:RemovePermission", - "SNS:SetTopicAttributes", - "SNS:DeleteTopic", - "SNS:ListSubscriptionsByTopic", - "SNS:GetTopicAttributes", - "SNS:Receive", - "SNS:AddPermission", - "SNS:Subscribe", - ], - "Condition": Object { - "Bool": Object { - "aws:SecureTransport": "false", - }, - }, - "Effect": "Deny", - "Principal": Object { - "AWS": "*", - }, - "Resource": Object { - "Ref": "calculatedtipstopicSnsTopicD6D93D2C", - }, - "Sid": "HttpsOnly", - }, - ], - "Version": "2012-10-17", - }, - "Topics": Array [ - Object { - "Ref": "calculatedtipstopicSnsTopicD6D93D2C", - }, - ], - }, - "Type": "AWS::SNS::TopicPolicy", - }, - "calculatetipsLambdaFunction9F2FE033": Object { - "DependsOn": Array [ - "calculatetipsLambdaFunctionServiceRoleDefaultPolicyED27C928", - "calculatetipsLambdaFunctionServiceRoleDE97A87F", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Ref": "AssetParametersef2fb7a3c1a9327e753c7c4087c65e8ad44e35b19ac3cbb1879b7d74a4f0ae16S3Bucket68E56E73", - }, - "S3Key": Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::Select": Array [ - 0, - Object { - "Fn::Split": Array [ - "||", - Object { - "Ref": "AssetParametersef2fb7a3c1a9327e753c7c4087c65e8ad44e35b19ac3cbb1879b7d74a4f0ae16S3VersionKey9E7EB7BC", - }, - ], - }, - ], - }, - Object { - "Fn::Select": Array [ - 1, - Object { - "Fn::Split": Array [ - "||", - Object { - "Ref": "AssetParametersef2fb7a3c1a9327e753c7c4087c65e8ad44e35b19ac3cbb1879b7d74a4f0ae16S3VersionKey9E7EB7BC", - }, - ], - }, - ], - }, - ], - ], - }, - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "DDB_TABLE_NAME": Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefdatabaseEBDE4557157C00B6", - }, - "SNS_TOPIC_ARN": Object { - "Ref": "calculatedtipstopicSnsTopicD6D93D2C", - }, - "SNS_TOPIC_NAME": Object { - "Fn::GetAtt": Array [ - "calculatedtipstopicSnsTopicD6D93D2C", - "TopicName", - ], - }, - }, - }, - "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ - "calculatetipsLambdaFunctionServiceRoleDE97A87F", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "calculatetipsLambdaFunctionServiceRoleDE97A87F": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "calculatetipsLambdaFunctionServiceRoleDefaultPolicyED27C928": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": Array [ - "dynamodb:BatchGetItem", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:Query", - "dynamodb:GetItem", - "dynamodb:Scan", - "dynamodb:ConditionCheckItem", - "dynamodb:BatchWriteItem", - "dynamodb:PutItem", - "dynamodb:UpdateItem", - "dynamodb:DeleteItem", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttdatabaseEBDE4557ArnC01D766F", - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttdatabaseEBDE4557ArnC01D766F", - }, - "/index/*", - ], - ], - }, - ], - }, - Object { - "Action": "sns:Publish", - "Effect": "Allow", - "Resource": Object { - "Ref": "calculatedtipstopicSnsTopicD6D93D2C", - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "calculatetipsLambdaFunctionServiceRoleDefaultPolicyED27C928", - "Roles": Array [ - Object { - "Ref": "calculatetipsLambdaFunctionServiceRoleDE97A87F", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "checkdelayedordersLambdaFunction2EC54227": Object { - "DependsOn": Array [ - "checkdelayedordersLambdaFunctionServiceRoleDefaultPolicyF409BC18", - "checkdelayedordersLambdaFunctionServiceRole513277E0", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Ref": "AssetParametersc82a6fa188f5986a76f5d3bc6ddbcf1647ce70fd9411698e1d8d694ea91f688aS3BucketD8C1F551", - }, - "S3Key": Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::Select": Array [ - 0, - Object { - "Fn::Split": Array [ - "||", - Object { - "Ref": "AssetParametersc82a6fa188f5986a76f5d3bc6ddbcf1647ce70fd9411698e1d8d694ea91f688aS3VersionKey10E0E95D", - }, - ], - }, - ], - }, - Object { - "Fn::Select": Array [ - 1, - Object { - "Fn::Split": Array [ - "||", - Object { - "Ref": "AssetParametersc82a6fa188f5986a76f5d3bc6ddbcf1647ce70fd9411698e1d8d694ea91f688aS3VersionKey10E0E95D", - }, - ], - }, - ], - }, - ], - ], - }, - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "DDB_TABLE_NAME": Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefdatabaseEBDE4557157C00B6", - }, - "OPEN_ORDER_THRESHOLD_MINS": "30", - "SNS_TOPIC_ARN": Object { - "Ref": "checkdelayedordersnotifierSnsTopic66813909", - }, - "SNS_TOPIC_NAME": Object { - "Fn::GetAtt": Array [ - "checkdelayedordersnotifierSnsTopic66813909", - "TopicName", - ], - }, - }, - }, - "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ - "checkdelayedordersLambdaFunctionServiceRole513277E0", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "checkdelayedordersLambdaFunctionAwsEventsLambdaInvokePermission165AA4438": Object { - "Properties": Object { - "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ - "checkdelayedordersLambdaFunction2EC54227", - "Arn", - ], - }, - "Principal": "events.amazonaws.com", - "SourceArn": Object { - "Fn::GetAtt": Array [ - "checkdelayedordersschedulerEventsRule980E5207", - "Arn", - ], - }, - }, - "Type": "AWS::Lambda::Permission", - }, - "checkdelayedordersLambdaFunctionServiceRole513277E0": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "checkdelayedordersLambdaFunctionServiceRoleDefaultPolicyF409BC18": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": Array [ - "dynamodb:BatchGetItem", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:Query", - "dynamodb:GetItem", - "dynamodb:Scan", - "dynamodb:ConditionCheckItem", - "dynamodb:BatchWriteItem", - "dynamodb:PutItem", - "dynamodb:UpdateItem", - "dynamodb:DeleteItem", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttdatabaseEBDE4557ArnC01D766F", - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttdatabaseEBDE4557ArnC01D766F", - }, - "/index/*", - ], - ], - }, - ], - }, - Object { - "Action": "sns:Publish", - "Effect": "Allow", - "Resource": Object { - "Ref": "checkdelayedordersnotifierSnsTopic66813909", - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "checkdelayedordersLambdaFunctionServiceRoleDefaultPolicyF409BC18", - "Roles": Array [ - Object { - "Ref": "checkdelayedordersLambdaFunctionServiceRole513277E0", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "checkdelayedordersnotifierSnsTopic66813909": Object { - "Properties": Object { - "KmsMasterKeyId": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":kms:us-east-1:ACCOUNT_NUMBER_HERE:alias/aws/sns", - ], - ], - }, - }, - "Type": "AWS::SNS::Topic", - }, - "checkdelayedordersnotifierSnsTopicPolicy673080E4": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "SNS:Publish", - "SNS:RemovePermission", - "SNS:SetTopicAttributes", - "SNS:DeleteTopic", - "SNS:ListSubscriptionsByTopic", - "SNS:GetTopicAttributes", - "SNS:Receive", - "SNS:AddPermission", - "SNS:Subscribe", - ], - "Condition": Object { - "StringEquals": Object { - "AWS:SourceOwner": "ACCOUNT_NUMBER_HERE", - }, - }, - "Effect": "Allow", - "Principal": Object { - "AWS": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":iam::ACCOUNT_NUMBER_HERE:root", - ], - ], - }, - }, - "Resource": Object { - "Ref": "checkdelayedordersnotifierSnsTopic66813909", - }, - "Sid": "TopicOwnerOnlyAccess", - }, - Object { - "Action": Array [ - "SNS:Publish", - "SNS:RemovePermission", - "SNS:SetTopicAttributes", - "SNS:DeleteTopic", - "SNS:ListSubscriptionsByTopic", - "SNS:GetTopicAttributes", - "SNS:Receive", - "SNS:AddPermission", - "SNS:Subscribe", - ], - "Condition": Object { - "Bool": Object { - "aws:SecureTransport": "false", - }, - }, - "Effect": "Deny", - "Principal": Object { - "AWS": "*", - }, - "Resource": Object { - "Ref": "checkdelayedordersnotifierSnsTopic66813909", - }, - "Sid": "HttpsOnly", - }, - ], - "Version": "2012-10-17", - }, - "Topics": Array [ - Object { - "Ref": "checkdelayedordersnotifierSnsTopic66813909", - }, - ], - }, - "Type": "AWS::SNS::TopicPolicy", - }, - "checkdelayedordersschedulerEventsRule980E5207": Object { - "Properties": Object { - "ScheduleExpression": "rate(5 minutes)", - "State": "ENABLED", - "Targets": Array [ - Object { - "Arn": Object { - "Fn::GetAtt": Array [ - "checkdelayedordersLambdaFunction2EC54227", - "Arn", - ], - }, - "Id": "Target0", - }, - ], - }, - "Type": "AWS::Events::Rule", - }, - "closeoutserviceExecutionAbortedAlarm861B143E": Object { - "Properties": Object { - "AlarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", - "ComparisonOperator": "GreaterThanOrEqualToThreshold", - "Dimensions": Array [ - Object { - "Name": "StateMachineArn", - "Value": Object { - "Ref": "closeoutserviceStateMachineC9DD68A8", - }, - }, - ], - "EvaluationPeriods": 1, - "MetricName": "ExecutionsAborted", - "Namespace": "AWS/States", - "Period": 300, - "Statistic": "Maximum", - "Threshold": 1, - }, - "Type": "AWS::CloudWatch::Alarm", - }, - "closeoutserviceExecutionFailedAlarm7495D8BE": Object { - "Properties": Object { - "AlarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", - "ComparisonOperator": "GreaterThanOrEqualToThreshold", - "Dimensions": Array [ - Object { - "Name": "StateMachineArn", - "Value": Object { - "Ref": "closeoutserviceStateMachineC9DD68A8", - }, - }, - ], - "EvaluationPeriods": 1, - "MetricName": "ExecutionsFailed", - "Namespace": "AWS/States", - "Period": 300, - "Statistic": "Sum", - "Threshold": 1, - }, - "Type": "AWS::CloudWatch::Alarm", - }, - "closeoutserviceExecutionThrottledAlarmC5A6E612": Object { - "Properties": Object { - "AlarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", - "ComparisonOperator": "GreaterThanOrEqualToThreshold", - "Dimensions": Array [ - Object { - "Name": "StateMachineArn", - "Value": Object { - "Ref": "closeoutserviceStateMachineC9DD68A8", - }, - }, - ], - "EvaluationPeriods": 1, - "MetricName": "ExecutionThrottled", - "Namespace": "AWS/States", - "Period": 300, - "Statistic": "Sum", - "Threshold": 1, - }, - "Type": "AWS::CloudWatch::Alarm", - }, - "closeoutserviceLambdaFunction684B26D3": Object { - "DependsOn": Array [ - "closeoutserviceLambdaFunctionServiceRoleDefaultPolicy95A79CC3", - "closeoutserviceLambdaFunctionServiceRoleB49E9696", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Ref": "AssetParameters5dc0666f057bc99738d8505d74a8f25576fc501d98f95ea7e69b36b3a7dd6ad1S3BucketF5B31E9E", - }, - "S3Key": Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::Select": Array [ - 0, - Object { - "Fn::Split": Array [ - "||", - Object { - "Ref": "AssetParameters5dc0666f057bc99738d8505d74a8f25576fc501d98f95ea7e69b36b3a7dd6ad1S3VersionKey4A579976", - }, - ], - }, - ], - }, - Object { - "Fn::Select": Array [ - 1, - Object { - "Fn::Split": Array [ - "||", - Object { - "Ref": "AssetParameters5dc0666f057bc99738d8505d74a8f25576fc501d98f95ea7e69b36b3a7dd6ad1S3VersionKey4A579976", - }, - ], - }, - ], - }, - ], - ], - }, - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "STATE_MACHINE_ARN": Object { - "Ref": "closeoutserviceStateMachineC9DD68A8", - }, - }, - }, - "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ - "closeoutserviceLambdaFunctionServiceRoleB49E9696", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "closeoutserviceLambdaFunctionServiceRoleB49E9696": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "closeoutserviceLambdaFunctionServiceRoleDefaultPolicy95A79CC3": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": "states:StartExecution", - "Effect": "Allow", - "Resource": Object { - "Ref": "closeoutserviceStateMachineC9DD68A8", - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "closeoutserviceLambdaFunctionServiceRoleDefaultPolicy95A79CC3", - "Roles": Array [ - Object { - "Ref": "closeoutserviceLambdaFunctionServiceRoleB49E9696", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "closeoutserviceStateMachineC9DD68A8": Object { - "DependsOn": Array [ - "closeoutserviceStateMachineRoleDefaultPolicy5F05BEB8", - "closeoutserviceStateMachineRoleCA7F9A09", - ], - "Properties": Object { - "DefinitionString": Object { - "Fn::Join": Array [ - "", - Array [ - "{\\"StartAt\\":\\"create-reports-task\\",\\"States\\":{\\"create-reports-task\\":{\\"Next\\":\\"calculate-tips-task\\",\\"Type\\":\\"Task\\",\\"Resource\\":\\"", - Object { - "Fn::GetAtt": Array [ - "createreportLambdaFunctionB37EBE52", - "Arn", - ], - }, - "\\"},\\"calculate-tips-task\\":{\\"Next\\":\\"archive-orders-task\\",\\"Type\\":\\"Task\\",\\"Resource\\":\\"", - Object { - "Fn::GetAtt": Array [ - "calculatetipsLambdaFunction9F2FE033", - "Arn", - ], - }, - "\\"},\\"archive-orders-task\\":{\\"End\\":true,\\"Type\\":\\"Task\\",\\"Resource\\":\\"", - Object { - "Fn::GetAtt": Array [ - "archiveordersLambdaFunction66659E04", - "Arn", - ], - }, - "\\"}}}", - ], - ], - }, - "LoggingConfiguration": Object { - "Destinations": Array [ - Object { - "CloudWatchLogsLogGroup": Object { - "LogGroupArn": Object { - "Fn::GetAtt": Array [ - "closeoutserviceStateMachineLogGroup56CA2C8F", - "Arn", - ], - }, - }, - }, - ], - "Level": "ERROR", - }, - "RoleArn": Object { - "Fn::GetAtt": Array [ - "closeoutserviceStateMachineRoleCA7F9A09", - "Arn", - ], - }, - }, - "Type": "AWS::StepFunctions::StateMachine", - }, - "closeoutserviceStateMachineLogGroup56CA2C8F": Object { - "DeletionPolicy": "Retain", - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W86", - "reason": "Retention period for CloudWatchLogs LogGroups are set to 'Never Expire' to preserve customer data indefinitely", - }, - Object { - "id": "W84", - "reason": "By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys)", - }, - ], - }, - }, - "Properties": Object { - "LogGroupName": "/aws/vendedlogs/states/managerstackcloseoutservicestatemachinelog5da3d5b2d585", - }, - "Type": "AWS::Logs::LogGroup", - "UpdateReplacePolicy": "Retain", - }, - "closeoutserviceStateMachineRoleCA7F9A09": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "states.us-east-1.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - }, - "Type": "AWS::IAM::Role", - }, - "closeoutserviceStateMachineRoleDefaultPolicy5F05BEB8": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "The 'LogDelivery' actions do not support resource-level authorizations", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogDelivery", - "logs:GetLogDelivery", - "logs:UpdateLogDelivery", - "logs:DeleteLogDelivery", - "logs:ListLogDeliveries", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ - "createreportLambdaFunctionB37EBE52", - "Arn", - ], - }, - }, - Object { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ - "calculatetipsLambdaFunction9F2FE033", - "Arn", - ], - }, - }, - Object { - "Action": "lambda:InvokeFunction", - "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ - "archiveordersLambdaFunction66659E04", - "Arn", - ], - }, - }, - Object { - "Action": Array [ - "logs:PutResourcePolicy", - "logs:DescribeResourcePolicies", - "logs:DescribeLogGroups", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "closeoutserviceStateMachineRoleDefaultPolicy5F05BEB8", - "Roles": Array [ - Object { - "Ref": "closeoutserviceStateMachineRoleCA7F9A09", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "createreportLambdaFunctionB37EBE52": Object { - "DependsOn": Array [ - "createreportLambdaFunctionServiceRoleDefaultPolicy5A317B6C", - "createreportLambdaFunctionServiceRole33C78256", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Ref": "AssetParameters2f0da58e411ab6b0549e6ad40bf1c54171752a646b89e453c5c3803ff20c254cS3Bucket1B8C7DD7", - }, - "S3Key": Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::Select": Array [ - 0, - Object { - "Fn::Split": Array [ - "||", - Object { - "Ref": "AssetParameters2f0da58e411ab6b0549e6ad40bf1c54171752a646b89e453c5c3803ff20c254cS3VersionKey6C2FB92E", - }, - ], - }, - ], - }, - Object { - "Fn::Select": Array [ - 1, - Object { - "Fn::Split": Array [ - "||", - Object { - "Ref": "AssetParameters2f0da58e411ab6b0549e6ad40bf1c54171752a646b89e453c5c3803ff20c254cS3VersionKey6C2FB92E", - }, - ], - }, - ], - }, - ], - ], - }, - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "DDB_TABLE_NAME": Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefdatabaseEBDE4557157C00B6", - }, - "S3_BUCKET_NAME": Object { - "Ref": "reportsbucketS3BucketCC334898", - }, - }, - }, - "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ - "createreportLambdaFunctionServiceRole33C78256", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "createreportLambdaFunctionServiceRole33C78256": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "createreportLambdaFunctionServiceRoleDefaultPolicy5A317B6C": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": Array [ - "dynamodb:BatchGetItem", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:Query", - "dynamodb:GetItem", - "dynamodb:Scan", - "dynamodb:ConditionCheckItem", - "dynamodb:BatchWriteItem", - "dynamodb:PutItem", - "dynamodb:UpdateItem", - "dynamodb:DeleteItem", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttdatabaseEBDE4557ArnC01D766F", - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttdatabaseEBDE4557ArnC01D766F", - }, - "/index/*", - ], - ], - }, - ], - }, - Object { - "Action": Array [ - "s3:GetObject*", - "s3:GetBucket*", - "s3:List*", - "s3:DeleteObject*", - "s3:PutObject*", - "s3:Abort*", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3BucketCC334898", - "Arn", - ], - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3BucketCC334898", - "Arn", - ], - }, - "/*", - ], - ], - }, - ], - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "createreportLambdaFunctionServiceRoleDefaultPolicy5A317B6C", - "Roles": Array [ - Object { - "Ref": "createreportLambdaFunctionServiceRole33C78256", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "listordersLambdaFunction78C3BA19": Object { - "DependsOn": Array [ - "listordersLambdaFunctionServiceRoleDefaultPolicyA214985E", - "listordersLambdaFunctionServiceRole3371D255", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W58", - "reason": "Lambda functions has the required permission to write CloudWatch Logs. It uses custom policy instead of arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole with tighter permissions.", - }, - Object { - "id": "W89", - "reason": "This is not a rule for the general case, just for specific use cases/industries", - }, - Object { - "id": "W92", - "reason": "Impossible for us to define the correct concurrency for clients", - }, - ], - }, - }, - "Properties": Object { - "Code": Object { - "S3Bucket": Object { - "Ref": "AssetParameters3579f3ba4ed0a2e2a89e25a539f1b17dc8fe7d795e0e4cd6e93d875c48f3ecfbS3Bucket9ED6F329", - }, - "S3Key": Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::Select": Array [ - 0, - Object { - "Fn::Split": Array [ - "||", - Object { - "Ref": "AssetParameters3579f3ba4ed0a2e2a89e25a539f1b17dc8fe7d795e0e4cd6e93d875c48f3ecfbS3VersionKey32CA5343", - }, - ], - }, - ], - }, - Object { - "Fn::Select": Array [ - 1, - Object { - "Fn::Split": Array [ - "||", - Object { - "Ref": "AssetParameters3579f3ba4ed0a2e2a89e25a539f1b17dc8fe7d795e0e4cd6e93d875c48f3ecfbS3VersionKey32CA5343", - }, - ], - }, - ], - }, - ], - ], - }, - }, - "Environment": Object { - "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", - "DDB_TABLE_NAME": Object { - "Fn::ImportValue": "SharedStack:ExportsOutputRefdatabaseEBDE4557157C00B6", - }, - }, - }, - "Handler": "index.handler", - "Role": Object { - "Fn::GetAtt": Array [ - "listordersLambdaFunctionServiceRole3371D255", - "Arn", - ], - }, - "Runtime": "nodejs14.x", - "TracingConfig": Object { - "Mode": "Active", - }, - }, - "Type": "AWS::Lambda::Function", - }, - "listordersLambdaFunctionServiceRole3371D255": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "lambda.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:PutLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":log-group:/aws/lambda/*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaFunctionServiceRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "listordersLambdaFunctionServiceRoleDefaultPolicyA214985E": Object { - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W12", - "reason": "Lambda needs the following minimum required permissions to send trace data to X-Ray and access ENIs in a VPC.", - }, - ], - }, - }, - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "xray:PutTraceSegments", - "xray:PutTelemetryRecords", - ], - "Effect": "Allow", - "Resource": "*", - }, - Object { - "Action": Array [ - "dynamodb:BatchGetItem", - "dynamodb:GetRecords", - "dynamodb:GetShardIterator", - "dynamodb:Query", - "dynamodb:GetItem", - "dynamodb:Scan", - "dynamodb:ConditionCheckItem", - "dynamodb:BatchWriteItem", - "dynamodb:PutItem", - "dynamodb:UpdateItem", - "dynamodb:DeleteItem", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttdatabaseEBDE4557ArnC01D766F", - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::ImportValue": "SharedStack:ExportsOutputFnGetAttdatabaseEBDE4557ArnC01D766F", - }, - "/index/*", - ], - ], - }, - ], - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "listordersLambdaFunctionServiceRoleDefaultPolicyA214985E", - "Roles": Array [ - Object { - "Ref": "listordersLambdaFunctionServiceRole3371D255", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - "managerapiApiAccessLogGroup35F9537B": Object { - "DeletionPolicy": "Retain", - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W86", - "reason": "Retention period for CloudWatchLogs LogGroups are set to 'Never Expire' to preserve customer data indefinitely", - }, - Object { - "id": "W84", - "reason": "By default CloudWatchLogs LogGroups data is encrypted using the CloudWatch server-side encryption keys (AWS Managed Keys)", - }, - ], - }, - }, - "Type": "AWS::Logs::LogGroup", - "UpdateReplacePolicy": "Retain", - }, - "managerapiCognitoAuthorizer5745AF8D": Object { - "Properties": Object { - "IdentitySource": "method.request.header.Authorization", - "Name": "authorizer", - "ProviderARNs": Array [ - Object { - "Fn::GetAtt": Array [ - "managerapiCognitoUserPool03946196", - "Arn", - ], - }, - ], - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "Type": "COGNITO_USER_POOLS", - }, - "Type": "AWS::ApiGateway::Authorizer", - }, - "managerapiCognitoUserPool03946196": Object { - "DeletionPolicy": "Retain", - "Properties": Object { - "AccountRecoverySetting": Object { - "RecoveryMechanisms": Array [ - Object { - "Name": "verified_phone_number", - "Priority": 1, - }, - Object { - "Name": "verified_email", - "Priority": 2, - }, - ], - }, - "AdminCreateUserConfig": Object { - "AllowAdminCreateUserOnly": true, - }, - "EmailVerificationMessage": "The verification code to your new account is {####}", - "EmailVerificationSubject": "Verify your new account", - "SmsVerificationMessage": "The verification code to your new account is {####}", - "UserPoolAddOns": Object { - "AdvancedSecurityMode": "ENFORCED", - }, - "VerificationMessageTemplate": Object { - "DefaultEmailOption": "CONFIRM_WITH_CODE", - "EmailMessage": "The verification code to your new account is {####}", - "EmailSubject": "Verify your new account", - "SmsMessage": "The verification code to your new account is {####}", - }, - }, - "Type": "AWS::Cognito::UserPool", - "UpdateReplacePolicy": "Retain", - }, - "managerapiCognitoUserPoolClientB3BC933D": Object { - "Properties": Object { - "AllowedOAuthFlows": Array [ - "implicit", - "code", - ], - "AllowedOAuthFlowsUserPoolClient": true, - "AllowedOAuthScopes": Array [ - "profile", - "phone", - "email", - "openid", - "aws.cognito.signin.user.admin", - ], - "CallbackURLs": Array [ - "https://example.com", - ], - "SupportedIdentityProviders": Array [ - "COGNITO", - ], - "UserPoolId": Object { - "Ref": "managerapiCognitoUserPool03946196", - }, - }, - "Type": "AWS::Cognito::UserPoolClient", - }, - "managerapiLambdaRestApi62BEEAC7": Object { - "Properties": Object { - "EndpointConfiguration": Object { - "Types": Array [ - "EDGE", - ], - }, - "Name": "LambdaRestApi", - }, - "Type": "AWS::ApiGateway::RestApi", - }, - "managerapiLambdaRestApiAccount350A78F5": Object { - "DependsOn": Array [ - "managerapiLambdaRestApi62BEEAC7", - ], - "Properties": Object { - "CloudWatchRoleArn": Object { - "Fn::GetAtt": Array [ - "managerapiLambdaRestApiCloudWatchRole43F48235", - "Arn", - ], - }, - }, - "Type": "AWS::ApiGateway::Account", - }, - "managerapiLambdaRestApiCloudWatchRole43F48235": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "apigateway.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Policies": Array [ - Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "logs:CreateLogGroup", - "logs:CreateLogStream", - "logs:DescribeLogGroups", - "logs:DescribeLogStreams", - "logs:PutLogEvents", - "logs:GetLogEvents", - "logs:FilterLogEvents", - ], - "Effect": "Allow", - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":logs:", - Object { - "Ref": "AWS::Region", - }, - ":", - Object { - "Ref": "AWS::AccountId", - }, - ":*", - ], - ], - }, - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "LambdaRestApiCloudWatchRolePolicy", - }, - ], - }, - "Type": "AWS::IAM::Role", - }, - "managerapiLambdaRestApiDeployment719D102Af9d615a7825f1f2f2844015860433cab": Object { - "DependsOn": Array [ - "managerapiLambdaRestApicloseoutserviceproxyANY182BEB46", - "managerapiLambdaRestApicloseoutserviceproxyECAF0FA1", - "managerapiLambdaRestApicloseoutservice2D3987E6", - "managerapiLambdaRestApilistordersproxyANY9C43AA89", - "managerapiLambdaRestApilistordersproxy3993085F", - "managerapiLambdaRestApilistorders017D1C2F", - "managerapiLambdaRestApireportsGET3B0B072F", - "managerapiLambdaRestApireportsA438BAFD", - ], - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W45", - "reason": "ApiGateway has AccessLogging enabled in AWS::ApiGateway::Stage resource, but cfn_nag checkes for it in AWS::ApiGateway::Deployment resource", - }, - ], - }, - }, - "Properties": Object { - "Description": "Automatically created by the RestApi construct", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Deployment", - }, - "managerapiLambdaRestApiDeploymentStageprod59C4A8D4": Object { - "Properties": Object { - "AccessLogSetting": Object { - "DestinationArn": Object { - "Fn::GetAtt": Array [ - "managerapiApiAccessLogGroup35F9537B", - "Arn", - ], - }, - "Format": "{\\"requestId\\":\\"$context.requestId\\",\\"ip\\":\\"$context.identity.sourceIp\\",\\"user\\":\\"$context.identity.user\\",\\"caller\\":\\"$context.identity.caller\\",\\"requestTime\\":\\"$context.requestTime\\",\\"httpMethod\\":\\"$context.httpMethod\\",\\"resourcePath\\":\\"$context.resourcePath\\",\\"status\\":\\"$context.status\\",\\"protocol\\":\\"$context.protocol\\",\\"responseLength\\":\\"$context.responseLength\\"}", - }, - "DeploymentId": Object { - "Ref": "managerapiLambdaRestApiDeployment719D102Af9d615a7825f1f2f2844015860433cab", - }, - "MethodSettings": Array [ - Object { - "DataTraceEnabled": true, - "HttpMethod": "*", - "LoggingLevel": "INFO", - "ResourcePath": "/*", - }, - ], - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "StageName": "prod", - "TracingEnabled": true, - }, - "Type": "AWS::ApiGateway::Stage", - }, - "managerapiLambdaRestApiUsagePlanF10CE619": Object { - "Properties": Object { - "ApiStages": Array [ - Object { - "ApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "Stage": Object { - "Ref": "managerapiLambdaRestApiDeploymentStageprod59C4A8D4", - }, - "Throttle": Object {}, - }, - ], - }, - "Type": "AWS::ApiGateway::UsagePlan", - }, - "managerapiLambdaRestApicloseoutservice2D3987E6": Object { - "Properties": Object { - "ParentId": Object { - "Fn::GetAtt": Array [ - "managerapiLambdaRestApi62BEEAC7", - "RootResourceId", - ], - }, - "PathPart": "close-out-service", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Resource", - }, - "managerapiLambdaRestApicloseoutserviceproxyANY182BEB46": Object { - "Properties": Object { - "AuthorizationType": "COGNITO_USER_POOLS", - "AuthorizerId": Object { - "Ref": "managerapiCognitoAuthorizer5745AF8D", - }, - "HttpMethod": "ANY", - "Integration": Object { - "IntegrationHttpMethod": "POST", - "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":apigateway:us-east-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ - "closeoutserviceLambdaFunction684B26D3", - "Arn", - ], - }, - "/invocations", - ], - ], - }, - }, - "ResourceId": Object { - "Ref": "managerapiLambdaRestApicloseoutserviceproxyECAF0FA1", - }, - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Method", - }, - "managerapiLambdaRestApicloseoutserviceproxyANYApiPermissionManagerStackmanagerapiLambdaRestApi386CA826ANYcloseoutserviceproxy132F7E1D": Object { - "Properties": Object { - "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ - "closeoutserviceLambdaFunction684B26D3", - "Arn", - ], - }, - "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":execute-api:us-east-1:ACCOUNT_NUMBER_HERE:", - Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "/", - Object { - "Ref": "managerapiLambdaRestApiDeploymentStageprod59C4A8D4", - }, - "/*/close-out-service/*", - ], - ], - }, - }, - "Type": "AWS::Lambda::Permission", - }, - "managerapiLambdaRestApicloseoutserviceproxyANYApiPermissionTestManagerStackmanagerapiLambdaRestApi386CA826ANYcloseoutserviceproxy8A25C882": Object { - "Properties": Object { - "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ - "closeoutserviceLambdaFunction684B26D3", - "Arn", - ], - }, - "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":execute-api:us-east-1:ACCOUNT_NUMBER_HERE:", - Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "/test-invoke-stage/*/close-out-service/*", - ], - ], - }, - }, - "Type": "AWS::Lambda::Permission", - }, - "managerapiLambdaRestApicloseoutserviceproxyECAF0FA1": Object { - "Properties": Object { - "ParentId": Object { - "Ref": "managerapiLambdaRestApicloseoutservice2D3987E6", - }, - "PathPart": "{proxy+}", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Resource", - }, - "managerapiLambdaRestApilistorders017D1C2F": Object { - "Properties": Object { - "ParentId": Object { - "Fn::GetAtt": Array [ - "managerapiLambdaRestApi62BEEAC7", - "RootResourceId", - ], - }, - "PathPart": "list-orders", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Resource", - }, - "managerapiLambdaRestApilistordersproxy3993085F": Object { - "Properties": Object { - "ParentId": Object { - "Ref": "managerapiLambdaRestApilistorders017D1C2F", - }, - "PathPart": "{proxy+}", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Resource", - }, - "managerapiLambdaRestApilistordersproxyANY9C43AA89": Object { - "Properties": Object { - "AuthorizationType": "COGNITO_USER_POOLS", - "AuthorizerId": Object { - "Ref": "managerapiCognitoAuthorizer5745AF8D", - }, - "HttpMethod": "ANY", - "Integration": Object { - "IntegrationHttpMethod": "POST", - "Type": "AWS_PROXY", - "Uri": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":apigateway:us-east-1:lambda:path/2015-03-31/functions/", - Object { - "Fn::GetAtt": Array [ - "listordersLambdaFunction78C3BA19", - "Arn", - ], - }, - "/invocations", - ], - ], - }, - }, - "ResourceId": Object { - "Ref": "managerapiLambdaRestApilistordersproxy3993085F", - }, - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Method", - }, - "managerapiLambdaRestApilistordersproxyANYApiPermissionManagerStackmanagerapiLambdaRestApi386CA826ANYlistordersproxyF55EE737": Object { - "Properties": Object { - "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ - "listordersLambdaFunction78C3BA19", - "Arn", - ], - }, - "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":execute-api:us-east-1:ACCOUNT_NUMBER_HERE:", - Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "/", - Object { - "Ref": "managerapiLambdaRestApiDeploymentStageprod59C4A8D4", - }, - "/*/list-orders/*", - ], - ], - }, - }, - "Type": "AWS::Lambda::Permission", - }, - "managerapiLambdaRestApilistordersproxyANYApiPermissionTestManagerStackmanagerapiLambdaRestApi386CA826ANYlistordersproxyA58F4DD8": Object { - "Properties": Object { - "Action": "lambda:InvokeFunction", - "FunctionName": Object { - "Fn::GetAtt": Array [ - "listordersLambdaFunction78C3BA19", - "Arn", - ], - }, - "Principal": "apigateway.amazonaws.com", - "SourceArn": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":execute-api:us-east-1:ACCOUNT_NUMBER_HERE:", - Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - "/test-invoke-stage/*/list-orders/*", - ], - ], - }, - }, - "Type": "AWS::Lambda::Permission", - }, - "managerapiLambdaRestApireportsA438BAFD": Object { - "Properties": Object { - "ParentId": Object { - "Fn::GetAtt": Array [ - "managerapiLambdaRestApi62BEEAC7", - "RootResourceId", - ], - }, - "PathPart": "reports", - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Resource", - }, - "managerapiLambdaRestApireportsGET3B0B072F": Object { - "Properties": Object { - "AuthorizationType": "COGNITO_USER_POOLS", - "AuthorizerId": Object { - "Ref": "managerapiCognitoAuthorizer5745AF8D", - }, - "HttpMethod": "GET", - "Integration": Object { - "Credentials": Object { - "Fn::GetAtt": Array [ - "roleC7B7E775", - "Arn", - ], - }, - "IntegrationHttpMethod": "GET", - "Type": "AWS", - "Uri": Object { - "Fn::Join": Array [ - "", - Array [ - "arn:", - Object { - "Ref": "AWS::Partition", - }, - ":apigateway:us-east-1:s3:path/{bucket}", - ], - ], - }, - }, - "MethodResponses": Array [ - Object { - "StatusCode": "200", - }, - ], - "ResourceId": Object { - "Ref": "managerapiLambdaRestApireportsA438BAFD", - }, - "RestApiId": Object { - "Ref": "managerapiLambdaRestApi62BEEAC7", - }, - }, - "Type": "AWS::ApiGateway::Method", - }, - "reportsbucketS3BucketCC334898": Object { - "DeletionPolicy": "Retain", - "Properties": Object { - "BucketEncryption": Object { - "ServerSideEncryptionConfiguration": Array [ - Object { - "ServerSideEncryptionByDefault": Object { - "SSEAlgorithm": "AES256", - }, - }, - ], - }, - "LifecycleConfiguration": Object { - "Rules": Array [ - Object { - "NoncurrentVersionTransitions": Array [ - Object { - "StorageClass": "GLACIER", - "TransitionInDays": 90, - }, - ], - "Status": "Enabled", - }, - ], - }, - "LoggingConfiguration": Object { - "DestinationBucketName": Object { - "Ref": "reportsbucketS3LoggingBucket088F7E0E", - }, - }, - "PublicAccessBlockConfiguration": Object { - "BlockPublicAcls": true, - "BlockPublicPolicy": true, - "IgnorePublicAcls": true, - "RestrictPublicBuckets": true, - }, - "VersioningConfiguration": Object { - "Status": "Enabled", - }, - }, - "Type": "AWS::S3::Bucket", - "UpdateReplacePolicy": "Retain", - }, - "reportsbucketS3BucketPolicyCF9C1527": Object { - "Properties": Object { - "Bucket": Object { - "Ref": "reportsbucketS3BucketCC334898", - }, - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "*", - "Condition": Object { - "Bool": Object { - "aws:SecureTransport": "false", - }, - }, - "Effect": "Deny", - "Principal": Object { - "AWS": "*", - }, - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3BucketCC334898", - "Arn", - ], - }, - "/*", - ], - ], - }, - "Sid": "HttpsOnly", - }, - ], - "Version": "2012-10-17", - }, - }, - "Type": "AWS::S3::BucketPolicy", - }, - "reportsbucketS3LoggingBucket088F7E0E": Object { - "DeletionPolicy": "Retain", - "Metadata": Object { - "cfn_nag": Object { - "rules_to_suppress": Array [ - Object { - "id": "W35", - "reason": "This S3 bucket is used as the access logging bucket for another bucket", - }, - ], - }, - }, - "Properties": Object { - "AccessControl": "LogDeliveryWrite", - "BucketEncryption": Object { - "ServerSideEncryptionConfiguration": Array [ - Object { - "ServerSideEncryptionByDefault": Object { - "SSEAlgorithm": "AES256", - }, - }, - ], - }, - "PublicAccessBlockConfiguration": Object { - "BlockPublicAcls": true, - "BlockPublicPolicy": true, - "IgnorePublicAcls": true, - "RestrictPublicBuckets": true, - }, - }, - "Type": "AWS::S3::Bucket", - "UpdateReplacePolicy": "Retain", - }, - "reportsbucketS3LoggingBucketPolicy82A7D267": Object { - "Properties": Object { - "Bucket": Object { - "Ref": "reportsbucketS3LoggingBucket088F7E0E", - }, - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "*", - "Condition": Object { - "Bool": Object { - "aws:SecureTransport": "false", - }, - }, - "Effect": "Deny", - "Principal": Object { - "AWS": "*", - }, - "Resource": Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3LoggingBucket088F7E0E", - "Arn", - ], - }, - "/*", - ], - ], - }, - "Sid": "HttpsOnly", - }, - ], - "Version": "2012-10-17", - }, - }, - "Type": "AWS::S3::BucketPolicy", - }, - "roleC7B7E775": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { - "Action": "sts:AssumeRole", - "Effect": "Allow", - "Principal": Object { - "Service": "apigateway.amazonaws.com", - }, - }, - ], - "Version": "2012-10-17", - }, - "Path": "/service-role/", - }, - "Type": "AWS::IAM::Role", - }, - "roleDefaultPolicy7C980EBA": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ - "s3:GetObject*", - "s3:GetBucket*", - "s3:List*", - ], - "Effect": "Allow", - "Resource": Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3BucketCC334898", - "Arn", - ], - }, - Object { - "Fn::Join": Array [ - "", - Array [ - Object { - "Fn::GetAtt": Array [ - "reportsbucketS3BucketCC334898", - "Arn", - ], - }, - "/*", - ], - ], - }, - ], - }, - ], - "Version": "2012-10-17", - }, - "PolicyName": "roleDefaultPolicy7C980EBA", - "Roles": Array [ - Object { - "Ref": "roleC7B7E775", - }, - ], - }, - "Type": "AWS::IAM::Policy", - }, - }, -} -`; diff --git a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/serviceStaffStack.test.js.snap b/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/serviceStaffStack.test.js.snap index 838090773..c37d27adf 100644 --- a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/serviceStaffStack.test.js.snap +++ b/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/serviceStaffStack.test.js.snap @@ -66,11 +66,10 @@ Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "5fec086605565b291ca1224e3f1e0fd0426daef8d94a60e13094691c360b2d61.zip", + "S3Key": "f7e78725db82a6bcdfb3881f27ecf9760863196f64e16042f3eb567f522d9449.zip", }, "Environment": Object { "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", "DDB_TABLE_NAME": Object { "Fn::ImportValue": "SharedStack:ExportsOutputRefordertable80C5609084F626AD", }, @@ -83,7 +82,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "Timeout": 15, "TracingConfig": Object { "Mode": "Active", @@ -241,11 +240,10 @@ Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "8d832041090c6117ec13ab972ef4301b41a5e5a8c030546b56f79be55b45a691.zip", + "S3Key": "f3fb724d107c92bcdc47f3123f612fd2cd0eecd312331259982cb439df89f4eb.zip", }, "Environment": Object { "Variables": Object { - "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", "DDB_TABLE_NAME": Object { "Fn::ImportValue": "SharedStack:ExportsOutputRefordertable80C5609084F626AD", }, @@ -258,7 +256,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "Timeout": 15, "TracingConfig": Object { "Mode": "Active", @@ -591,7 +589,7 @@ Object { }, }, "Properties": Object { - "Description": "Automatically created by the RestApi construct", + "Description": "Demo: Service staff API", "RestApiId": Object { "Ref": "servicestaffapiLambdaRestApi81C353A0", }, diff --git a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/serviceStaffStack.test.ts.snap b/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/serviceStaffStack.test.ts.snap index 884cab4f0..f91c4e580 100644 --- a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/serviceStaffStack.test.ts.snap +++ b/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/serviceStaffStack.test.ts.snap @@ -130,7 +130,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": Object { "Mode": "Active", }, @@ -335,7 +335,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "TracingConfig": Object { "Mode": "Active", }, diff --git a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/sharedStack.test.js.snap b/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/sharedStack.test.js.snap index 90236dca8..20d7f4777 100644 --- a/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/sharedStack.test.js.snap +++ b/source/use_cases/aws-restaurant-management-demo/test/__snapshots__/sharedStack.test.js.snap @@ -118,13 +118,13 @@ Object { "shareddbfunctionslayerA9CFEC5A": Object { "Properties": Object { "CompatibleRuntimes": Array [ - "nodejs14.x", + "nodejs16.x", ], "Content": Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-us-east-1", }, - "S3Key": "1e2da15c61e02d6b4d9a0d275ac198d3772dc45465f064a330f35db63a01bb00.zip", + "S3Key": "10564c98f41d5ddbd78ce6aa50e29a44184e170be4b504e0bdcdb341bf04f129.zip", }, "Description": "Layer for common database access functions", "LicenseInfo": "Apache-2.0", diff --git a/source/use_cases/aws-restaurant-management-demo/test/integ.basic-deployment.expected.json b/source/use_cases/aws-restaurant-management-demo/test/integ.basic-deployment.expected.json index af4358c12..2d19e9dd9 100644 --- a/source/use_cases/aws-restaurant-management-demo/test/integ.basic-deployment.expected.json +++ b/source/use_cases/aws-restaurant-management-demo/test/integ.basic-deployment.expected.json @@ -245,7 +245,7 @@ "Arn" ] }, - "Runtime": "nodejs14.x" + "Runtime": "nodejs16.x" }, "DependsOn": [ "CloudFrontToS3SetHttpSecurityHeadersServiceRole6BABDE10" @@ -655,7 +655,7 @@ "Arn" ] }, - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "Environment": { "Variables": { "USER_ON_EVENT_FUNCTION_ARN": { diff --git a/source/use_cases/aws-restaurant-management-demo/test/managerStack.test.ts b/source/use_cases/aws-restaurant-management-demo/test/managerStack.test.ts deleted file mode 100644 index bb726994b..000000000 --- a/source/use_cases/aws-restaurant-management-demo/test/managerStack.test.ts +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance - * with the License. A copy of the License is located at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES - * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions - * and limitations under the License. - */ - - import { App } from 'aws-cdk-lib'; - import { ExistingResources } from '../lib/existing-resources'; - import { SharedStack } from '../lib/shared-stack'; - import { ManagerStack } from '../lib/manager-stack'; - import { Template } from 'aws-cdk-lib/assertions'; - - test('test-manager-stack', () => { - const app = new App(); - // Dependent stacks - const existingResources = new ExistingResources(app, `ExistingResourcesStack`); - const sharedStack = new SharedStack(app, `SharedStack`); - // ---- - const stack = new ManagerStack(app, 'ManagerStack', { - db: sharedStack.database, - archiveBucket: existingResources.archiveBucket, - layer: sharedStack.layer - }); - - const template = Template.fromStack(stack); - expect(template).toMatchSnapshot(); - }); \ No newline at end of file diff --git a/source/use_cases/aws-s3-static-website/test/__snapshots__/s3-static-site-stack.test.js.snap b/source/use_cases/aws-s3-static-website/test/__snapshots__/s3-static-site-stack.test.js.snap index 03b065999..39d8b4777 100644 --- a/source/use_cases/aws-s3-static-website/test/__snapshots__/s3-static-site-stack.test.js.snap +++ b/source/use_cases/aws-s3-static-website/test/__snapshots__/s3-static-site-stack.test.js.snap @@ -438,7 +438,7 @@ Object { "S3Bucket": Object { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, - "S3Key": "a25ad9c0d11729e2a901249c21b3095a071174c6fc98296269154dcebbb42a08.zip", + "S3Key": "e8fea7e029780f03a78580d41b7ffbc4551d6e7d6caa190a451880191c166189.zip", }, "Description": "AWS CDK resource provider framework - onEvent (S3StaticWebsiteStack/CustomResourceProvider)", "Environment": Object { @@ -458,7 +458,7 @@ Object { "Arn", ], }, - "Runtime": "nodejs12.x", + "Runtime": "nodejs14.x", "Timeout": 900, }, "Type": "AWS::Lambda::Function", diff --git a/source/use_cases/aws-s3-static-website/test/integ.basic-deployment.expected.json b/source/use_cases/aws-s3-static-website/test/integ.basic-deployment.expected.json index 3128a568e..f7289e228 100644 --- a/source/use_cases/aws-s3-static-website/test/integ.basic-deployment.expected.json +++ b/source/use_cases/aws-s3-static-website/test/integ.basic-deployment.expected.json @@ -617,7 +617,7 @@ } }, "Handler": "framework.onEvent", - "Runtime": "nodejs14.x", + "Runtime": "nodejs16.x", "Timeout": 900 }, "DependsOn": [