From 50d3e9c52ffded63c0722c18f450da08cf2f77c5 Mon Sep 17 00:00:00 2001 From: Hitendra Nishar Date: Fri, 7 Aug 2020 18:20:53 -0400 Subject: [PATCH] Update to version v1.57.0 --- CHANGELOG.md | 6 + source/lerna.json | 2 +- source/package.json | 2 +- .../aws-apigateway-dynamodb/package.json | 28 +- .../aws-apigateway-lambda/package.json | 28 +- .../aws-apigateway-sqs/package.json | 32 +- .../package.json | 40 +- .../aws-cloudfront-apigateway/package.json | 32 +- .../aws-cloudfront-s3/README.md | 2 +- .../aws-cloudfront-s3/lib/index.ts | 15 +- .../aws-cloudfront-s3/package.json | 24 +- .../test/integ.existing-bucket.expected.json | 493 +++++++++++++++++ .../test/integ.existing-bucket.ts | 32 ++ .../package.json | 32 +- .../package.json | 48 +- .../aws-dynamodb-stream-lambda/package.json | 28 +- .../aws-events-rule-lambda/package.json | 24 +- .../package.json | 40 +- .../aws-iot-kinesisfirehose-s3/README.md | 4 +- .../aws-iot-kinesisfirehose-s3/lib/index.ts | 4 +- .../aws-iot-kinesisfirehose-s3/package.json | 36 +- .../aws-iot-lambda-dynamodb/package.json | 32 +- .../aws-iot-lambda/package.json | 24 +- .../README.md | 4 +- .../lib/index.ts | 4 +- .../package.json | 40 +- .../aws-kinesisfirehose-s3/README.md | 4 +- .../aws-kinesisfirehose-s3/lib/index.ts | 23 +- .../aws-kinesisfirehose-s3/package.json | 28 +- .../integ.pre-existing-bucket.expected.json | 156 ++++++ .../test/integ.pre-existing-bucket.ts | 30 ++ .../aws-kinesisstreams-lambda/package.json | 28 +- .../aws-lambda-dynamodb/package.json | 20 +- .../package.json | 32 +- .../aws-lambda-s3/README.md | 4 +- .../aws-lambda-s3/lib/index.ts | 33 +- .../aws-lambda-s3/package.json | 20 +- .../integ.pre-existing-bucket.expected.json | 194 +++++++ .../test/integ.pre-existing-bucket.ts | 39 ++ .../aws-lambda-sns/package.json | 24 +- .../aws-lambda-sqs-lambda/package.json | 28 +- .../aws-lambda-sqs/package.json | 20 +- .../aws-lambda-step-function/package.json | 28 +- .../aws-s3-lambda/README.md | 2 +- .../aws-s3-lambda/lib/index.ts | 17 +- .../aws-s3-lambda/package.json | 32 +- .../aws-s3-step-function/README.md | 4 +- .../aws-s3-step-function/lib/index.ts | 21 +- .../aws-s3-step-function/package.json | 52 +- .../integ.pre-existing-bucket.expected.json | 498 ++++++++++++++++++ .../test/integ.pre-existing-bucket.ts | 34 ++ .../aws-sns-lambda/package.json | 32 +- .../aws-sqs-lambda/package.json | 28 +- .../core/lib/s3-bucket-helper.ts | 17 +- .../core/package.json | 88 ++-- .../s3-bucket-helper.test.js.snap | 12 - .../core/test/s3-bucket-helper.test.ts | 11 +- source/tools/cdk-integ-tools/package.json | 6 +- .../aws-s3-static-website/package.json | 22 +- .../aws-serverless-image-handler/package.json | 40 +- .../aws-serverless-web-app/package.json | 32 +- 61 files changed, 2096 insertions(+), 619 deletions(-) create mode 100644 source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.expected.json create mode 100644 source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.ts create mode 100644 source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-bucket.expected.json create mode 100644 source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-bucket.ts create mode 100644 source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.expected.json create mode 100644 source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.ts create mode 100644 source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.expected.json create mode 100644 source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index c07f38668..9ad4aed1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.57.0] - 2020-08-07 + +### Changed +- Upgraded all patterns to CDK v1.57.0 +- Use `s3.IBucket` type instead of `s3.Bucket` for `existingBucketObj` construct props ([#33](https://github.com/awslabs/aws-solutions-constructs/issues/33)) + ## [1.56.0] - 2020-08-05 ### Changed diff --git a/source/lerna.json b/source/lerna.json index 76df93d14..78b8badc5 100644 --- a/source/lerna.json +++ b/source/lerna.json @@ -6,5 +6,5 @@ "./patterns/@aws-solutions-constructs/*" ], "rejectCycles": "true", - "version": "1.56.0" + "version": "1.57.0" } diff --git a/source/package.json b/source/package.json index e3b9553bf..efeafab56 100644 --- a/source/package.json +++ b/source/package.json @@ -1,6 +1,6 @@ { "name": "aws-solutions-constructs", - "version": "1.56.0", + "version": "1.57.0", "description": "AWS Solutions Constructs Library", "repository": { "type": "git", diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/package.json index 8b442b0f8..66d717c90 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-dynamodb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-dynamodb", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS API Gateway and Amazon DynamoDB integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -72,12 +72,12 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-logs": "~1.56.0" + "@aws-cdk/aws-logs": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/package.json index 4f1f5b691..a10d909e9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-lambda", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK constructs for defining an interaction between an API Gateway and a Lambda function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -72,12 +72,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-iam": "~1.56.0" + "@aws-cdk/aws-iam": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/package.json index 559240455..787842fba 100644 --- a/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-apigateway-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-apigateway-sqs", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon S3 bucket.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-sqs": "~1.56.0", - "@aws-cdk/aws-kms": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-sqs": "~1.57.0", + "@aws-cdk/aws-kms": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -73,13 +73,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-sqs": "~1.56.0", - "@aws-cdk/aws-kms": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-sqs": "~1.57.0", + "@aws-cdk/aws-kms": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-logs": "~1.56.0" + "@aws-cdk/aws-logs": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/package.json index 8609f7a3b..3fac88ce9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS Cloudfront to AWS API Gateway to AWS Lambda integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,19 +53,19 @@ } }, "dependencies": { - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-cloudfront": "~1.56.0", - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-cloudfront": "~1.57.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -75,15 +75,15 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-cloudfront": "~1.56.0", - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway": "~1.56.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-cloudfront": "~1.57.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0" + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/package.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/package.json index 543d82d59..77b28e9d2 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-apigateway/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cloudfront-apigateway", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS Cloudfront to AWS API Gateway integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-cloudfront": "~1.56.0", - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-cloudfront": "~1.57.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -73,13 +73,13 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-cloudfront": "~1.56.0", - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-cloudfront": "~1.57.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-s3": "~1.56.0" + "@aws-cdk/aws-s3": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/README.md b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/README.md index 026496fba..a71126cdd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/README.md @@ -61,7 +61,7 @@ _Parameters_ |cloudFrontWebDistribution|[`cloudfront.CloudFrontWebDistribution`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudfront.CloudFrontWebDistribution.html)|Returns an instance of cloudfront.CloudFrontWebDistribution created by the construct| |edgeLambdaFunctionVersion|[`lambda.Version`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Version.html)|Returns an instance of the edge Lambda function version created by the pattern.| |cloudFrontLoggingBucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/aws-s3-readme.html)|Returns an instance of the logging bucket for CloudFront WebDistribution.| -|s3Bucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct.| +|s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct.| |s3LoggingBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.| ## Default settings diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/lib/index.ts index 09c6abdc8..4c07b05dd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/lib/index.ts @@ -52,7 +52,7 @@ export class CloudFrontToS3 extends Construct { public readonly cloudFrontWebDistribution: cloudfront.CloudFrontWebDistribution; public readonly edgeLambdaFunctionVersion?: lambda.Version; public readonly cloudFrontLoggingBucket?: s3.Bucket; - public readonly s3Bucket: s3.Bucket; + public readonly s3Bucket?: s3.Bucket; public readonly s3LoggingBucket?: s3.Bucket; /** @@ -65,14 +65,19 @@ export class CloudFrontToS3 extends Construct { */ constructor(scope: Construct, id: string, props: CloudFrontToS3Props) { super(scope, id); + let bucket: s3.Bucket; - [this.s3Bucket, this.s3LoggingBucket] = defaults.buildS3Bucket(this, { - existingBucketObj: props.existingBucketObj, + if (!props.existingBucketObj) { + [this.s3Bucket, this.s3LoggingBucket] = defaults.buildS3Bucket(this, { bucketProps: props.bucketProps - }); + }); + bucket = this.s3Bucket; + } else { + bucket = props.existingBucketObj; + } [this.cloudFrontWebDistribution, this.edgeLambdaFunctionVersion, this.cloudFrontLoggingBucket] = - defaults.CloudFrontDistributionForS3(this, this.s3Bucket, + defaults.CloudFrontDistributionForS3(this, bucket, props.cloudFrontDistributionProps, props.insertHttpSecurityHeaders); } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/package.json index aa25e8702..bd2a446d7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cloudfront-s3", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS Cloudfront to AWS S3 integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-cloudfront": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-cloudfront": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -71,11 +71,11 @@ ] }, "peerDependencies": { - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-cloudfront": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-cloudfront": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-lambda": "~1.56.0" + "@aws-cdk/aws-lambda": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.expected.json new file mode 100644 index 000000000..5223c4abe --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.expected.json @@ -0,0 +1,493 @@ +{ + "Resources": { + "S3LoggingBucket800A2B27": { + "Type": "AWS::S3::Bucket", + "Properties": { + "AccessControl": "LogDeliveryWrite", + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W35", + "reason": "This S3 bucket is used as the access logging bucket for another bucket" + } + ] + } + } + }, + "S3LoggingBucketPolicy6B3AA8AF": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "S3LoggingBucket800A2B27" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": "*", + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "S3LoggingBucket800A2B27", + "Arn" + ] + }, + "/*" + ] + ] + }, + "Sid": "HttpsOnly" + } + ], + "Version": "2012-10-17" + } + } + }, + "S3Bucket07682993": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "LoggingConfiguration": { + "DestinationBucketName": { + "Ref": "S3LoggingBucket800A2B27" + } + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "S3BucketPolicyF560589A": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "S3Bucket07682993" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": "*", + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "S3Bucket07682993", + "Arn" + ] + }, + "/*" + ] + ] + }, + "Sid": "HttpsOnly" + }, + { + "Action": [ + "s3:GetObject*", + "s3:GetBucket*", + "s3:List*" + ], + "Effect": "Allow", + "Principal": { + "AWS": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":iam::cloudfront:user/CloudFront Origin Access Identity ", + { + "Ref": "testcloudfronts3CloudFrontOriginAccessIdentity2C681839" + } + ] + ] + } + }, + "Resource": [ + { + "Fn::GetAtt": [ + "S3Bucket07682993", + "Arn" + ] + }, + { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "S3Bucket07682993", + "Arn" + ] + }, + "/*" + ] + ] + } + ] + }, + { + "Action": "s3:GetObject", + "Effect": "Allow", + "Principal": { + "CanonicalUser": { + "Fn::GetAtt": [ + "testcloudfronts3CloudFrontOriginAccessIdentity2C681839", + "S3CanonicalUserId" + ] + } + }, + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "S3Bucket07682993", + "Arn" + ] + }, + "/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + } + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "F16", + "reason": "Public website bucket policy requires a wildcard principal" + } + ] + } + } + }, + "testcloudfronts3CloudFrontOriginAccessIdentity2C681839": { + "Type": "AWS::CloudFront::CloudFrontOriginAccessIdentity", + "Properties": { + "CloudFrontOriginAccessIdentityConfig": { + "Comment": "Access S3 bucket content only through CloudFront" + } + } + }, + "testcloudfronts3SetHttpSecurityHeadersServiceRole74D1E252": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + }, + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "edgelambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:aws:logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/lambda/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "LambdaFunctionServiceRolePolicy" + } + ] + } + }, + "testcloudfronts3SetHttpSecurityHeaders6C5A1E69": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "ZipFile": "exports.handler = (event, context, callback) => { const response = event.Records[0].cf.response; const headers = response.headers; headers['x-xss-protection'] = [ { key: 'X-XSS-Protection', value: '1; mode=block' } ]; headers['x-frame-options'] = [ { key: 'X-Frame-Options', value: 'DENY' } ]; headers['x-content-type-options'] = [ { key: 'X-Content-Type-Options', value: 'nosniff' } ]; headers['strict-transport-security'] = [ { key: 'Strict-Transport-Security', value: 'max-age=63072000; includeSubdomains; preload' } ]; headers['referrer-policy'] = [ { key: 'Referrer-Policy', value: 'same-origin' } ]; headers['content-security-policy'] = [ { key: 'Content-Security-Policy', value: \"default-src 'none'; base-uri 'self'; img-src 'self'; script-src 'self'; style-src 'self' https:; object-src 'none'; frame-ancestors 'none'; font-src 'self' https:; form-action 'self'; manifest-src 'self'; connect-src 'self'\" } ]; callback(null, response); };" + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "testcloudfronts3SetHttpSecurityHeadersServiceRole74D1E252", + "Arn" + ] + }, + "Runtime": "nodejs12.x" + }, + "DependsOn": [ + "testcloudfronts3SetHttpSecurityHeadersServiceRole74D1E252" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "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 more tighter permissions." + } + ] + } + } + }, + "testcloudfronts3SetHttpSecurityHeadersVersionF1C744BB": { + "Type": "AWS::Lambda::Version", + "Properties": { + "FunctionName": { + "Ref": "testcloudfronts3SetHttpSecurityHeaders6C5A1E69" + } + } + }, + "testcloudfronts3CloudfrontLoggingBucket985C0FE8": { + "Type": "AWS::S3::Bucket", + "Properties": { + "AccessControl": "LogDeliveryWrite", + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W35", + "reason": "This S3 bucket is used as the access logging bucket for CloudFront Distribution" + } + ] + } + } + }, + "testcloudfronts3CloudfrontLoggingBucketPolicyDF55851B": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "testcloudfronts3CloudfrontLoggingBucket985C0FE8" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": "*", + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "testcloudfronts3CloudfrontLoggingBucket985C0FE8", + "Arn" + ] + }, + "/*" + ] + ] + }, + "Sid": "HttpsOnly" + } + ], + "Version": "2012-10-17" + } + } + }, + "testcloudfronts3CloudFrontDistributionCFDistribution61FCC088": { + "Type": "AWS::CloudFront::Distribution", + "Properties": { + "DistributionConfig": { + "DefaultCacheBehavior": { + "AllowedMethods": [ + "GET", + "HEAD" + ], + "CachedMethods": [ + "GET", + "HEAD" + ], + "Compress": true, + "ForwardedValues": { + "Cookies": { + "Forward": "none" + }, + "QueryString": false + }, + "LambdaFunctionAssociations": [ + { + "EventType": "origin-response", + "LambdaFunctionARN": { + "Ref": "testcloudfronts3SetHttpSecurityHeadersVersionF1C744BB" + } + } + ], + "TargetOriginId": "origin1", + "ViewerProtocolPolicy": "redirect-to-https" + }, + "DefaultRootObject": "index.html", + "Enabled": true, + "HttpVersion": "http2", + "IPV6Enabled": true, + "Logging": { + "Bucket": { + "Fn::GetAtt": [ + "testcloudfronts3CloudfrontLoggingBucket985C0FE8", + "RegionalDomainName" + ] + }, + "IncludeCookies": false + }, + "Origins": [ + { + "ConnectionAttempts": 3, + "ConnectionTimeout": 10, + "DomainName": { + "Fn::GetAtt": [ + "S3Bucket07682993", + "RegionalDomainName" + ] + }, + "Id": "origin1", + "S3OriginConfig": { + "OriginAccessIdentity": { + "Fn::Join": [ + "", + [ + "origin-access-identity/cloudfront/", + { + "Ref": "testcloudfronts3CloudFrontOriginAccessIdentity2C681839" + } + ] + ] + } + } + } + ], + "PriceClass": "PriceClass_100", + "ViewerCertificate": { + "CloudFrontDefaultCertificate": true + } + } + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W70", + "reason": "Since the distribution uses the CloudFront domain name, CloudFront automatically sets the security policy to TLSv1 regardless of the value of MinimumProtocolVersion" + } + ] + } + } + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.ts b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.ts new file mode 100644 index 000000000..7be550cf1 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-cloudfront-s3/test/integ.existing-bucket.ts @@ -0,0 +1,32 @@ +/** + * Copyright 2019 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. + */ + +// Imports +import { App, Stack } from "@aws-cdk/core"; +import * as s3 from "@aws-cdk/aws-s3"; +import * as defaults from "@aws-solutions-constructs/core"; +import { CloudFrontToS3 } from "../lib"; + +// Setup +const app = new App(); +const stack = new Stack(app, 'test-cloudfront-s3-existing-bucket-stack'); + +let mybucket: s3.Bucket; +[mybucket] = defaults.buildS3Bucket(stack, {}); + +new CloudFrontToS3(stack, 'test-cloudfront-s3', { + existingBucketObj: mybucket +}); + +// Synth +app.synth(); diff --git a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/package.json index a10e96f51..ea3aff403 100644 --- a/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-cognito-apigateway-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-cognito-apigateway-lambda", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS Cognito to AWS API Gateway to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-cognito": "~1.56.0", - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-cognito": "~1.57.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -73,13 +73,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-cognito": "~1.56.0", - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-cognito": "~1.57.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0" + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/package.json b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/package.json index 8df266760..4ba55e001 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-dynamodb-stream-lambda-elasticsearch-kibana", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for Amazon Dynamodb stream to AWS Lambda to AWS Elasticsearch with Kibana integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,21 +53,21 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-lambda-event-sources": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-cognito": "~1.56.0", - "@aws-cdk/aws-elasticsearch": "~1.56.0", - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-cdk/aws-cloudwatch": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-solutions-constructs/aws-dynamodb-stream-lambda": "~1.56.0", - "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-lambda-event-sources": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-cognito": "~1.57.0", + "@aws-cdk/aws-elasticsearch": "~1.57.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-cdk/aws-cloudwatch": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-solutions-constructs/aws-dynamodb-stream-lambda": "~1.57.0", + "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -77,17 +77,17 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-cognito": "~1.56.0", - "@aws-cdk/aws-elasticsearch": "~1.56.0", - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-cdk/aws-cloudwatch": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-solutions-constructs/aws-dynamodb-stream-lambda": "~1.56.0", - "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "~1.56.0", - "@aws-cdk/aws-lambda-event-sources": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-cognito": "~1.57.0", + "@aws-cdk/aws-elasticsearch": "~1.57.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-cdk/aws-cloudwatch": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-solutions-constructs/aws-dynamodb-stream-lambda": "~1.57.0", + "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana": "~1.57.0", + "@aws-cdk/aws-lambda-event-sources": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-iam": "~1.56.0" + "@aws-cdk/aws-iam": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/package.json index eccadf6d5..f2b0a1832 100644 --- a/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-dynamodb-stream-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-dynamodb-stream-lambda", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS DynamoDB Stream to AWS Lambda integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-lambda-event-sources": "~1.56.0", - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-lambda-event-sources": "~1.57.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -72,12 +72,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-cdk/aws-lambda-event-sources": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-cdk/aws-lambda-event-sources": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-iam": "~1.56.0" + "@aws-cdk/aws-iam": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/package.json index f9eadf393..32ec45ef6 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-lambda", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for deploying AWS Events Rule that inveokes AWS Lambda", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-events": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-events": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -71,11 +71,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-events": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-events": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/package.json b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/package.json index 3997d1f2e..38a6d8fd7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-events-rule-step-function/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-events-rule-step-function", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for deploying AWS Events Rule that invokes AWS Step Function", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,19 +53,19 @@ } }, "dependencies": { - "@aws-cdk/aws-stepfunctions": "~1.56.0", - "@aws-cdk/aws-stepfunctions-tasks": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-events": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-cdk/aws-cloudwatch": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-stepfunctions": "~1.57.0", + "@aws-cdk/aws-stepfunctions-tasks": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-events": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-cdk/aws-cloudwatch": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -75,15 +75,15 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-stepfunctions": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-events": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-stepfunctions": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-events": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-cloudwatch": "~1.56.0", - "@aws-cdk/aws-stepfunctions-tasks": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0" + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-cloudwatch": "~1.57.0", + "@aws-cdk/aws-stepfunctions-tasks": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/README.md b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/README.md index d1406a6d0..6d6aac80f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/README.md @@ -62,7 +62,7 @@ _Parameters_ |:-------------|:----------------|-----------------| |iotTopicRuleProps|[`iot.CfnTopicRuleProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRuleProps.html)|User provided CfnTopicRuleProps to override the defaults| |kinesisFirehoseProps?|[`kinesisfirehose.CfnDeliveryStreamProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStreamProps.html)|Optional user provided props to override the default props for Kinesis Firehose Delivery Stream| -|existingBucketObj?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Existing instance of S3 Bucket object, if this is set then the bucketProps is ignored.| +|existingBucketObj?|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Existing instance of S3 Bucket object, if this is set then the bucketProps is ignored.| |bucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|User provided props to override the default props for the S3 Bucket.| ## Pattern Properties @@ -70,7 +70,7 @@ _Parameters_ | **Name** | **Type** | **Description** | |:-------------|:----------------|-----------------| |kinesisFirehose|[`kinesisfirehose.CfnDeliveryStream`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html)|Returns an instance of kinesisfirehose.CfnDeliveryStream created by the construct| -|s3Bucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct| +|s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct| |s3LoggingBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.| |iotTopicRule|[`iot.CfnTopicRule`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iot.CfnTopicRule.html)|Returns an instance of iot.CfnTopicRule created by the construct| |iotActionsRole|[`iam.Role`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)|Returns an instance of the iam.Role created by the construct for IoT Rule| diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/lib/index.ts index c33d67803..a1584b21b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/lib/index.ts @@ -42,7 +42,7 @@ export interface IotToKinesisFirehoseToS3Props { * * @default - None */ - readonly existingBucketObj?: s3.Bucket, + readonly existingBucketObj?: s3.IBucket, /** * User provided props to override the default props for the S3 Bucket. * @@ -56,7 +56,7 @@ export class IotToKinesisFirehoseToS3 extends Construct { public readonly kinesisFirehose: kinesisfirehose.CfnDeliveryStream; public readonly kinesisFirehoseLogGroup: logs.LogGroup; public readonly kinesisFirehoseRole: iam.Role; - public readonly s3Bucket: s3.Bucket; + public readonly s3Bucket?: s3.Bucket; public readonly s3LoggingBucket?: s3.Bucket; public readonly iotActionsRole: iam.Role; diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/package.json index ee9c33e58..58deaf4bd 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-kinesisfirehose-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-kinesisfirehose-s3", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS IoT to AWS Kinesis Firehose to AWS S3 integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-kinesisfirehose": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-iot": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "~1.56.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-kinesisfirehose": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-iot": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -74,14 +74,14 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-kinesisfirehose": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-iot": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "~1.56.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-kinesisfirehose": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-iot": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-logs": "~1.56.0" + "@aws-cdk/aws-logs": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/package.json index 271923e9b..9a4501dd1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda-dynamodb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-lambda-dynamodb", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS IoT to AWS Lambda to AWS DyanmoDB integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-iot": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-solutions-constructs/aws-iot-lambda": "~1.56.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "~1.56.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-iot": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-solutions-constructs/aws-iot-lambda": "~1.57.0", + "@aws-solutions-constructs/aws-lambda-dynamodb": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -73,13 +73,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-iot": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-solutions-constructs/aws-iot-lambda": "~1.56.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "~1.56.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-iot": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-solutions-constructs/aws-iot-lambda": "~1.57.0", + "@aws-solutions-constructs/aws-lambda-dynamodb": "~1.57.0", "constructs": "^3.0.2" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/package.json index 38a440e2a..e02648fe9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-iot-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-iot-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-iot-lambda", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS IoT to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-iot": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-iot": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -71,11 +71,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iot": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", + "@aws-cdk/aws-iot": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", "constructs": "^3.0.2" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/README.md b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/README.md index b060efa28..f9b40d9d1 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/README.md @@ -80,7 +80,7 @@ _Parameters_ |:-------------|:----------------|-----------------| |kinesisFirehoseProps?|[`kinesisFirehose.CfnDeliveryStreamProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStreamProps.html)|Optional user-provided props to override the default props for the Kinesis Firehose delivery stream.| |kinesisAnalyticsProps?|[`kinesisAnalytics.CfnApplicationProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisanalytics.CfnApplicationProps.html)|Optional user-provided props to override the default props for the Kinesis Analytics application.| -|existingBucketObj?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Existing instance of S3 Bucket object, if this is set then the bucketProps is ignored.| +|existingBucketObj?|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Existing instance of S3 Bucket object, if this is set then the bucketProps is ignored.| |bucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|User provided props to override the default props for the S3 Bucket.| ## Pattern Properties @@ -91,7 +91,7 @@ _Parameters_ |kinesisFirehose|[`kinesisFirehose.CfnDeliveryStream`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html)|Returns an instance of the Kinesis Firehose delivery stream created by the pattern.| |kinesisFirehoseRole|[`iam.Role`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)|Returns an instance of the iam.Role created by the construct for Kinesis Data Firehose delivery stream| |kinesisFirehoseLogGroup|[`logs.LogGroup`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)|Returns an instance of the LogGroup created by the construct for Kinesis Data Firehose delivery stream| -|s3Bucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the S3 bucket created by the pattern.| +|s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the S3 bucket created by the pattern.| |s3LoggingBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.| ## Default settings diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/lib/index.ts index 083b4283e..061589236 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/lib/index.ts @@ -42,7 +42,7 @@ export interface KinesisFirehoseToAnalyticsAndS3Props { * * @default - None */ - readonly existingBucketObj?: s3.Bucket, + readonly existingBucketObj?: s3.IBucket, /** * User provided props to override the default props for the S3 Bucket. * @@ -59,7 +59,7 @@ export class KinesisFirehoseToAnalyticsAndS3 extends Construct { public readonly kinesisFirehose: kinesisFirehose.CfnDeliveryStream; public readonly kinesisFirehoseRole: iam.Role; public readonly kinesisFirehoseLogGroup: logs.LogGroup; - public readonly s3Bucket: s3.Bucket; + public readonly s3Bucket?: s3.Bucket; public readonly s3LoggingBucket?: s3.Bucket; /** diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/package.json index 9983f43de..b3b15e25c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisfirehose-s3-and-kinesisanalytics", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK constructs for defining an interaction between an Amazon Kinesis Data Firehose delivery stream and (1) an Amazon S3 bucket, and (2) an Amazon Kinesis Data Analytics application.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,19 +53,19 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-kinesis": "~1.56.0", - "@aws-cdk/aws-kinesisanalytics": "~1.56.0", - "@aws-cdk/aws-kinesisfirehose": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "~1.56.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-kinesis": "~1.57.0", + "@aws-cdk/aws-kinesisanalytics": "~1.57.0", + "@aws-cdk/aws-kinesisfirehose": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -75,15 +75,15 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-kinesis": "~1.56.0", - "@aws-cdk/aws-kinesisanalytics": "~1.56.0", - "@aws-cdk/aws-kinesisfirehose": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-solutions-constructs/aws-kinesisfirehose-s3": "~1.56.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-kinesis": "~1.57.0", + "@aws-cdk/aws-kinesisanalytics": "~1.57.0", + "@aws-cdk/aws-kinesisfirehose": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-solutions-constructs/aws-kinesisfirehose-s3": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-logs": "~1.56.0" + "@aws-cdk/aws-logs": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/README.md b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/README.md index 5c56467d0..23318346b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/README.md @@ -50,7 +50,7 @@ _Parameters_ | **Name** | **Type** | **Description** | |:-------------|:----------------|-----------------| |kinesisFirehoseProps?|[`kinesisfirehose.CfnDeliveryStreamProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStreamProps.html)|Optional user provided props to override the default props for Kinesis Firehose Delivery Stream| -|existingBucketObj?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Existing instance of S3 Bucket object, if this is set then the bucketProps is ignored.| +|existingBucketObj?|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Existing instance of S3 Bucket object, if this is set then the bucketProps is ignored.| |bucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|User provided props to override the default props for the S3 Bucket.| ## Pattern Properties @@ -58,7 +58,7 @@ _Parameters_ | **Name** | **Type** | **Description** | |:-------------|:----------------|-----------------| |kinesisFirehose|[`kinesisfirehose.CfnDeliveryStream`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-kinesisfirehose.CfnDeliveryStream.html)|Returns an instance of kinesisfirehose.CfnDeliveryStream created by the construct| -|s3Bucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct| +|s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct| |s3LoggingBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.| |kinesisFirehoseRole|[`iam.Role`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.Role.html)|Returns an instance of the iam.Role created by the construct for Kinesis Data Firehose delivery stream| |kinesisFirehoseLogGroup|[`logs.LogGroup`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)|Returns an instance of the LogGroup created by the construct for Kinesis Data Firehose delivery stream| 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 f451468f1..81e8510de 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 @@ -35,7 +35,7 @@ export interface KinesisFirehoseToS3Props { * * @default - None */ - readonly existingBucketObj?: s3.Bucket, + readonly existingBucketObj?: s3.IBucket, /** * User provided props to override the default props for the S3 Bucket. * @@ -48,7 +48,7 @@ export class KinesisFirehoseToS3 extends Construct { public readonly kinesisFirehose: kinesisfirehose.CfnDeliveryStream; public readonly kinesisFirehoseRole: iam.Role; public readonly kinesisFirehoseLogGroup: logs.LogGroup; - public readonly s3Bucket: s3.Bucket; + public readonly s3Bucket?: s3.Bucket; public readonly s3LoggingBucket?: s3.Bucket; /** @@ -57,11 +57,18 @@ export class KinesisFirehoseToS3 extends Construct { constructor(scope: Construct, id: string, props: KinesisFirehoseToS3Props) { super(scope, id); + let bucket: s3.IBucket; + // Setup S3 Bucket - [this.s3Bucket, this.s3LoggingBucket] = defaults.buildS3Bucket(this, { - existingBucketObj: props.existingBucketObj, - bucketProps: props.bucketProps - }); + if (!props.existingBucketObj) { + [this.s3Bucket, this.s3LoggingBucket] = defaults.buildS3Bucket(this, { + bucketProps: props.bucketProps + }); + + bucket = this.s3Bucket; + } else { + bucket = props.existingBucketObj; + } // Setup Cloudwatch Log group & stream for Kinesis Firehose this.kinesisFirehoseLogGroup = new logs.LogGroup(this, 'firehose-log-group', defaults.DefaultLogGroupProps()); @@ -83,7 +90,7 @@ export class KinesisFirehoseToS3 extends Construct { 's3:ListBucketMultipartUploads', 's3:PutObject' ], - resources: [`${this.s3Bucket.bucketArn}`, `${this.s3Bucket.bucketArn}/*`] + resources: [`${bucket.bucketArn}`, `${bucket.bucketArn}/*`] }), new iam.PolicyStatement({ actions: [ @@ -98,7 +105,7 @@ export class KinesisFirehoseToS3 extends Construct { // Setup the default Kinesis Firehose props const defaultKinesisFirehoseProps: kinesisfirehose.CfnDeliveryStreamProps = - defaults.DefaultCfnDeliveryStreamProps(this.s3Bucket.bucketArn, this.kinesisFirehoseRole.roleArn, + defaults.DefaultCfnDeliveryStreamProps(bucket.bucketArn, this.kinesisFirehoseRole.roleArn, this.kinesisFirehoseLogGroup.logGroupName, cwLogStream.logStreamName); // Override with the input props diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/package.json index f3504c2c2..924010bec 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisfirehose-s3", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK constructs for defining an interaction between an Amazon Kinesis Data Firehose delivery stream and an Amazon S3 bucket.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-kinesisfirehose": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-kinesisfirehose": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -72,12 +72,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-kinesisfirehose": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-kinesisfirehose": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-bucket.expected.json new file mode 100644 index 000000000..c8c57b35c --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-bucket.expected.json @@ -0,0 +1,156 @@ +{ + "Description": "Integration Test for aws-kinesisfirehose-s3", + "Resources": { + "testfirehoses3preexistingbucketstackfirehoseloggroupC6AF6572": { + "Type": "AWS::Logs::LogGroup", + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "testfirehoses3preexistingbucketstackfirehoseloggroupfirehoselogstreamDCA77A8C": { + "Type": "AWS::Logs::LogStream", + "Properties": { + "LogGroupName": { + "Ref": "testfirehoses3preexistingbucketstackfirehoseloggroupC6AF6572" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "testfirehoses3preexistingbucketstackKinesisFirehoseRole84325204": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "firehose.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "testfirehoses3preexistingbucketstackKinesisFirehosePolicy1A30B0A8": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "s3:AbortMultipartUpload", + "s3:GetBucketLocation", + "s3:GetObject", + "s3:ListBucket", + "s3:ListBucketMultipartUploads", + "s3:PutObject" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::cdktoolkit-stagingbucket-1cjqz1mn5psg3" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::cdktoolkit-stagingbucket-1cjqz1mn5psg3/*" + ] + ] + } + ] + }, + { + "Action": "logs:PutLogEvents", + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:aws:logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:", + { + "Ref": "testfirehoses3preexistingbucketstackfirehoseloggroupC6AF6572" + }, + ":log-stream:", + { + "Ref": "testfirehoses3preexistingbucketstackfirehoseloggroupfirehoselogstreamDCA77A8C" + } + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testfirehoses3preexistingbucketstackKinesisFirehosePolicy1A30B0A8", + "Roles": [ + { + "Ref": "testfirehoses3preexistingbucketstackKinesisFirehoseRole84325204" + } + ] + } + }, + "testfirehoses3preexistingbucketstackKinesisFirehoseCBFE01D6": { + "Type": "AWS::KinesisFirehose::DeliveryStream", + "Properties": { + "ExtendedS3DestinationConfiguration": { + "BucketARN": { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::cdktoolkit-stagingbucket-1cjqz1mn5psg3" + ] + ] + }, + "BufferingHints": { + "IntervalInSeconds": 300, + "SizeInMBs": 5 + }, + "CloudWatchLoggingOptions": { + "Enabled": true, + "LogGroupName": { + "Ref": "testfirehoses3preexistingbucketstackfirehoseloggroupC6AF6572" + }, + "LogStreamName": { + "Ref": "testfirehoses3preexistingbucketstackfirehoseloggroupfirehoselogstreamDCA77A8C" + } + }, + "CompressionFormat": "GZIP", + "RoleARN": { + "Fn::GetAtt": [ + "testfirehoses3preexistingbucketstackKinesisFirehoseRole84325204", + "Arn" + ] + } + } + } + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-bucket.ts b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-bucket.ts new file mode 100644 index 000000000..25ed5254c --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisfirehose-s3/test/integ.pre-existing-bucket.ts @@ -0,0 +1,30 @@ +/** + * Copyright 2019 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. + */ + +// Imports +import { App, Stack } from "@aws-cdk/core"; +import { KinesisFirehoseToS3 } from "../lib"; +import * as s3 from "@aws-cdk/aws-s3"; + +// Setup +const app = new App(); +const stack = new Stack(app, 'test-firehose-s3-pre-existing-bucket-stack'); +stack.templateOptions.description = 'Integration Test for aws-kinesisfirehose-s3'; + +const mybucket: s3.IBucket = s3.Bucket.fromBucketName(stack, 'mybucket', 'cdktoolkit-stagingbucket-1cjqz1mn5psg3'); +new KinesisFirehoseToS3(stack, 'test-firehose-s3-pre-existing-bucket-stack', { + existingBucketObj: mybucket +}); + +// Synth +app.synth(); diff --git a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/package.json index 2f6227a98..9d0894d8c 100644 --- a/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-kinesisstreams-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-kinesisstreams-lambda", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK constructs for defining an interaction between an Amazon Kinesis Data Stream and an AWS Lambda function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-kinesis": "~1.56.0", - "@aws-cdk/aws-kms": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-kinesis": "~1.57.0", + "@aws-cdk/aws-kms": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -72,12 +72,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-kinesis": "~1.56.0", - "@aws-cdk/aws-kms": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-kinesis": "~1.57.0", + "@aws-cdk/aws-kms": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/package.json index 293de0c80..e91a882a9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-dynamodb/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-dynamodb", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS Lambda to AWS DynamoDB integration.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,14 +53,14 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -70,10 +70,10 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/package.json index 0731bcc5d..2bd2759e8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-elasticsearch-kibana/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-elasticsearch-kibana", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS Lambda to AWS Elasticsearch with Kibana integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-cognito": "~1.56.0", - "@aws-cdk/aws-elasticsearch": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-cloudwatch": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-cognito": "~1.57.0", + "@aws-cdk/aws-elasticsearch": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-cloudwatch": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -73,13 +73,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-cognito": "~1.56.0", - "@aws-cdk/aws-elasticsearch": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-cloudwatch": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-cognito": "~1.57.0", + "@aws-cdk/aws-elasticsearch": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-cloudwatch": "~1.57.0", "constructs": "^3.0.2" } } 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 aa0f9e419..65f48a7d7 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/README.md @@ -57,7 +57,7 @@ _Parameters_ |:-------------|:----------------|-----------------| |existingLambdaObj?|[`lambda.Function`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)|Existing instance of Lambda Function object, if this is set then the lambdaFunctionProps is ignored.| |lambdaFunctionProps?|[`lambda.FunctionProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.FunctionProps.html)|User provided props to override the default props for the Lambda function.| -|existingBucketObj?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Existing instance of S3 Bucket object, if this is set then the bucketProps is ignored.| +|existingBucketObj?|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Existing instance of S3 Bucket object, if this is set then the bucketProps is ignored.| |bucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|User provided props to override the default props for the S3 Bucket.| |bucketPermissions?|`string[]`|Optional bucket permissions to grant to the Lambda function. One or more of the following may be specified: `Delete`, `Put`, `Read`, `ReadWrite`, `Write`.| @@ -66,7 +66,7 @@ _Parameters_ | **Name** | **Type** | **Description** | |:-------------|:----------------|-----------------| |lambdaFunction|[`lambda.Function`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)|Returns an instance of the Lambda function created by the pattern.| -|s3Bucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the S3 bucket created by the pattern.| +|s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the S3 bucket created by the pattern.| |s3LoggingBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.| ## Default settings diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/lib/index.ts index 13e61147f..9d3ee2be8 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/lib/index.ts @@ -38,7 +38,7 @@ export interface LambdaToS3Props { * * @default - None */ - readonly existingBucketObj?: s3.Bucket, + readonly existingBucketObj?: s3.IBucket, /** * User provided props to override the default props for the S3 Bucket. * @@ -59,7 +59,7 @@ export interface LambdaToS3Props { */ export class LambdaToS3 extends Construct { public readonly lambdaFunction: lambda.Function; - public readonly s3Bucket: s3.Bucket; + public readonly s3Bucket?: s3.Bucket; public readonly s3LoggingBucket?: s3.Bucket; /** @@ -72,6 +72,7 @@ export class LambdaToS3 extends Construct { */ constructor(scope: Construct, id: string, props: LambdaToS3Props) { super(scope, id); + let bucket: s3.IBucket; // Setup the Lambda function this.lambdaFunction = defaults.buildLambdaFunction(this, { @@ -79,34 +80,38 @@ export class LambdaToS3 extends Construct { lambdaFunctionProps: props.lambdaFunctionProps }); - // Setup the S3 bucket - [this.s3Bucket, this.s3LoggingBucket] = defaults.buildS3Bucket(this, { - existingBucketObj: props.existingBucketObj, - bucketProps: props.bucketProps - }); + // Setup S3 Bucket + if (!props.existingBucketObj) { + [this.s3Bucket, this.s3LoggingBucket] = defaults.buildS3Bucket(this, { + bucketProps: props.bucketProps + }); + bucket = this.s3Bucket; + } else { + bucket = props.existingBucketObj; + } // Configure environment variables - this.lambdaFunction.addEnvironment('S3_BUCKET_NAME', this.s3Bucket.bucketName); + this.lambdaFunction.addEnvironment('S3_BUCKET_NAME', bucket.bucketName); // Add the requested or default bucket permissions if (props.bucketPermissions) { if (props.bucketPermissions.includes('Delete')) { - this.s3Bucket.grantDelete(this.lambdaFunction.grantPrincipal); + bucket.grantDelete(this.lambdaFunction.grantPrincipal); } if (props.bucketPermissions.includes('Put')) { - this.s3Bucket.grantPut(this.lambdaFunction.grantPrincipal); + bucket.grantPut(this.lambdaFunction.grantPrincipal); } if (props.bucketPermissions.includes('Read')) { - this.s3Bucket.grantRead(this.lambdaFunction.grantPrincipal); + bucket.grantRead(this.lambdaFunction.grantPrincipal); } if (props.bucketPermissions.includes('ReadWrite')) { - this.s3Bucket.grantReadWrite(this.lambdaFunction.grantPrincipal); + bucket.grantReadWrite(this.lambdaFunction.grantPrincipal); } if (props.bucketPermissions.includes('Write')) { - this.s3Bucket.grantWrite(this.lambdaFunction.grantPrincipal); + bucket.grantWrite(this.lambdaFunction.grantPrincipal); } } else { - this.s3Bucket.grantReadWrite(this.lambdaFunction.grantPrincipal); + bucket.grantReadWrite(this.lambdaFunction.grantPrincipal); } } } \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/package.json index 477bcd995..ef409128f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-s3/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-s3", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon S3 bucket.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,14 +53,14 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -70,10 +70,10 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" } } 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 new file mode 100644 index 000000000..602bb5757 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.expected.json @@ -0,0 +1,194 @@ +{ + "Description": "Integration Test for aws-lambda-s3", + "Resources": { + "testlambdas3preexistingbucketLambdaFunctionServiceRole9AC7CED0": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "lambda.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + }, + "Policies": [ + { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogGroup", + "logs:CreateLogStream", + "logs:PutLogEvents" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:aws:logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":log-group:/aws/lambda/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "LambdaFunctionServiceRolePolicy" + } + ] + } + }, + "testlambdas3preexistingbucketLambdaFunctionServiceRoleDefaultPolicy1B2212F1": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "s3:GetObject*", + "s3:GetBucket*", + "s3:List*", + "s3:DeleteObject*", + "s3:PutObject*", + "s3:Abort*" + ], + "Effect": "Allow", + "Resource": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::cdktoolkit-stagingbucket-1cjqz1mn5psg3" + ] + ] + }, + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::cdktoolkit-stagingbucket-1cjqz1mn5psg3/*" + ] + ] + } + ] + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "testlambdas3preexistingbucketLambdaFunctionServiceRoleDefaultPolicy1B2212F1", + "Roles": [ + { + "Ref": "testlambdas3preexistingbucketLambdaFunctionServiceRole9AC7CED0" + } + ] + } + }, + "testlambdas3preexistingbucketLambdaFunctionA56FB2C7": { + "Type": "AWS::Lambda::Function", + "Properties": { + "Code": { + "S3Bucket": { + "Ref": "AssetParameters8efd3dd9643a4d64a128ad582cab718a1e464bcc719bbbcf0e7b0481188a0420S3Bucket749AC458" + }, + "S3Key": { + "Fn::Join": [ + "", + [ + { + "Fn::Select": [ + 0, + { + "Fn::Split": [ + "||", + { + "Ref": "AssetParameters8efd3dd9643a4d64a128ad582cab718a1e464bcc719bbbcf0e7b0481188a0420S3VersionKeyFF5CC16D" + } + ] + } + ] + }, + { + "Fn::Select": [ + 1, + { + "Fn::Split": [ + "||", + { + "Ref": "AssetParameters8efd3dd9643a4d64a128ad582cab718a1e464bcc719bbbcf0e7b0481188a0420S3VersionKeyFF5CC16D" + } + ] + } + ] + } + ] + ] + } + }, + "Handler": "index.handler", + "Role": { + "Fn::GetAtt": [ + "testlambdas3preexistingbucketLambdaFunctionServiceRole9AC7CED0", + "Arn" + ] + }, + "Runtime": "nodejs10.x", + "Environment": { + "Variables": { + "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", + "S3_BUCKET_NAME": "cdktoolkit-stagingbucket-1cjqz1mn5psg3" + } + } + }, + "DependsOn": [ + "testlambdas3preexistingbucketLambdaFunctionServiceRoleDefaultPolicy1B2212F1", + "testlambdas3preexistingbucketLambdaFunctionServiceRole9AC7CED0" + ], + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "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 more tighter permissions." + } + ] + } + } + } + }, + "Parameters": { + "AssetParameters8efd3dd9643a4d64a128ad582cab718a1e464bcc719bbbcf0e7b0481188a0420S3Bucket749AC458": { + "Type": "String", + "Description": "S3 bucket for asset \"8efd3dd9643a4d64a128ad582cab718a1e464bcc719bbbcf0e7b0481188a0420\"" + }, + "AssetParameters8efd3dd9643a4d64a128ad582cab718a1e464bcc719bbbcf0e7b0481188a0420S3VersionKeyFF5CC16D": { + "Type": "String", + "Description": "S3 key for asset version \"8efd3dd9643a4d64a128ad582cab718a1e464bcc719bbbcf0e7b0481188a0420\"" + }, + "AssetParameters8efd3dd9643a4d64a128ad582cab718a1e464bcc719bbbcf0e7b0481188a0420ArtifactHashA71E92AD": { + "Type": "String", + "Description": "Artifact hash for asset \"8efd3dd9643a4d64a128ad582cab718a1e464bcc719bbbcf0e7b0481188a0420\"" + } + } +} \ No newline at end of file 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 new file mode 100644 index 000000000..7612ca3f8 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-s3/test/integ.pre-existing-bucket.ts @@ -0,0 +1,39 @@ +/** + * Copyright 2019 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. + */ + +// Imports +import { App, Stack } from "@aws-cdk/core"; +import { LambdaToS3, LambdaToS3Props } from "../lib"; +import * as lambda from '@aws-cdk/aws-lambda'; +import * as s3 from '@aws-cdk/aws-s3'; + +// Setup +const app = new App(); +const stack = new Stack(app, 'test-lambda-s3-pre-existing-bucket'); +stack.templateOptions.description = 'Integration Test for aws-lambda-s3'; +const mybucket: s3.IBucket = s3.Bucket.fromBucketName(stack, 'mybucket', 'cdktoolkit-stagingbucket-1cjqz1mn5psg3'); + +// Definitions +const props: LambdaToS3Props = { + existingBucketObj: mybucket, + lambdaFunctionProps: { + runtime: lambda.Runtime.NODEJS_10_X, + handler: 'index.handler', + code: lambda.Code.asset(`${__dirname}/lambda`) + } +}; + +new LambdaToS3(stack, 'test-lambda-s3-pre-existing-bucket', props); + +// Synth +app.synth(); \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/package.json index eae34f241..862eac465 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sns/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sns/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-sns", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon SNS topic.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,15 +53,15 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-sns": "~1.56.0", - "@aws-cdk/aws-kms": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-sns": "~1.57.0", + "@aws-cdk/aws-kms": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -71,11 +71,11 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-sns": "~1.56.0", - "@aws-cdk/aws-kms": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-sns": "~1.57.0", + "@aws-cdk/aws-kms": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/package.json index 69fec26b7..18e66fd78 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-sqs-lambda", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK construct that provisions (1) an AWS Lambda function that is configured to send messages to a queue; (2) an Amazon SQS queue; and (3) an AWS Lambda function configured to consume messages from the queue.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-sqs": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-solutions-constructs/aws-lambda-sqs": "~1.56.0", - "@aws-solutions-constructs/aws-sqs-lambda": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-sqs": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-solutions-constructs/aws-lambda-sqs": "~1.57.0", + "@aws-solutions-constructs/aws-sqs-lambda": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -72,12 +72,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-sqs": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-solutions-constructs/aws-lambda-sqs": "~1.56.0", - "@aws-solutions-constructs/aws-sqs-lambda": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-sqs": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-solutions-constructs/aws-lambda-sqs": "~1.57.0", + "@aws-solutions-constructs/aws-sqs-lambda": "~1.57.0", "constructs": "^3.0.2" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/package.json index 3a856b1b8..7ef26345c 100755 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-sqs/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-sqs", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an Amazon SQS queue.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,14 +53,14 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-sqs": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-sqs": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -70,10 +70,10 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-sqs": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-sqs": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/package.json b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/package.json index 40ea19585..8e02c4012 100644 --- a/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-lambda-step-function/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-lambda-step-function", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK constructs for defining an interaction between an AWS Lambda function and an AWS Step Function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-cloudwatch": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-stepfunctions": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-cloudwatch": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-stepfunctions": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0", "eslint-plugin-import": "^2.22.0" @@ -73,12 +73,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-cloudwatch": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-stepfunctions": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-cloudwatch": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-stepfunctions": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-logs": "~1.56.0" + "@aws-cdk/aws-logs": "~1.57.0" } } 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 a41959f3b..46c12ed9f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/README.md @@ -70,7 +70,7 @@ _Parameters_ | **Name** | **Type** | **Description** | |:-------------|:----------------|-----------------| |lambdaFunction|[`lambda.Function`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-lambda.Function.html)|Returns an instance of the lambda.Function created by the construct| -|s3Bucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the s3.Bucket created by the construct| +|s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the s3.Bucket created by the construct| |s3LoggingBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.| ## Default settings diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/lib/index.ts index a1d618017..218964f4f 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/lib/index.ts @@ -56,7 +56,7 @@ export interface S3ToLambdaProps { export class S3ToLambda extends Construct { public readonly lambdaFunction: lambda.Function; - public readonly s3Bucket: s3.Bucket; + public readonly s3Bucket?: s3.Bucket; public readonly s3LoggingBucket?: s3.Bucket; /** @@ -69,19 +69,24 @@ export class S3ToLambda extends Construct { */ constructor(scope: Construct, id: string, props: S3ToLambdaProps) { super(scope, id); + let bucket: s3.Bucket; this.lambdaFunction = defaults.buildLambdaFunction(this, { existingLambdaObj: props.existingLambdaObj, lambdaFunctionProps: props.lambdaFunctionProps }); - [this.s3Bucket, this.s3LoggingBucket] = defaults.buildS3Bucket(this, { - existingBucketObj: props.existingBucketObj, - bucketProps: props.bucketProps - }); + if (!props.existingBucketObj) { + [this.s3Bucket, this.s3LoggingBucket] = defaults.buildS3Bucket(this, { + bucketProps: props.bucketProps + }); + bucket = this.s3Bucket; + } else { + bucket = props.existingBucketObj; + } // Create S3 trigger to invoke lambda function - this.lambdaFunction.addEventSource(new S3EventSource(this.s3Bucket, + this.lambdaFunction.addEventSource(new S3EventSource(bucket, defaults.S3EventSourceProps(props.s3EventSourceProps))); this.addCfnNagSuppress(); diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/package.json index f0edab20f..4b9cf0ab9 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-lambda", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS S3 to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/aws-s3-notifications": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-lambda-event-sources": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/aws-s3-notifications": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-lambda-event-sources": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -73,13 +73,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-cdk/aws-lambda-event-sources": "~1.56.0", - "@aws-cdk/aws-s3-notifications": "~1.56.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-cdk/aws-lambda-event-sources": "~1.57.0", + "@aws-cdk/aws-s3-notifications": "~1.57.0", "constructs": "^3.0.2" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/README.md b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/README.md index 8f43caded..b7fee1d8e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/README.md +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/README.md @@ -56,7 +56,7 @@ _Parameters_ | **Name** | **Type** | **Description** | |:-------------|:----------------|-----------------| -|existingBucketObj?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Existing instance of S3 Bucket object, if this is set then the bucketProps is ignored.| +|existingBucketObj?|[`s3.IBucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.IBucket.html)|Existing instance of S3 Bucket object, if this is set then the bucketProps is ignored.| |bucketProps?|[`s3.BucketProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.BucketProps.html)|User provided props to override the default props for the S3 Bucket.| |stateMachineProps|[`sfn.StateMachineProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachineProps.html)|Optional user provided props to override the default props for sfn.StateMachine| |eventRuleProps?|[`events.RuleProps`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-events.RuleProps.html)|Optional user provided eventRuleProps to override the defaults| @@ -69,7 +69,7 @@ _Parameters_ |stateMachine|[`sfn.StateMachine`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-stepfunctions.StateMachine.html)|Returns an instance of sfn.StateMachine created by the construct| |stateMachineLogGroup|[`logs.LogGroup`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-logs.LogGroup.html)|Returns an instance of the LogGroup created by the construct for StateMachine| |cloudwatchAlarms|[`cloudwatch.Alarm[]`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudwatch.Alarm.html)|Returns a list of cloudwatch.Alarm created by the construct| -|s3Bucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the s3.Bucket created by the construct| +|s3Bucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the s3.Bucket created by the construct| |s3LoggingBucket?|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of s3.Bucket created by the construct as the logging bucket for the primary bucket.| |cloudtrail|[`cloudtrail.Trail`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-cloudtrail.Trail.html)|Returns an instance of the cloudtrail.Trail created by the construct| |cloudtrailBucket|[`s3.Bucket`](https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-s3.Bucket.html)|Returns an instance of the s3.Bucket created by the construct for CloudTrail| diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/lib/index.ts b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/lib/index.ts index fb15f464f..04f017829 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/lib/index.ts +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/lib/index.ts @@ -30,7 +30,7 @@ export interface S3ToStepFunctionProps { * * @default - None */ - readonly existingBucketObj?: s3.Bucket, + readonly existingBucketObj?: s3.IBucket, /** * User provided props to override the default props for the S3 Bucket. * @@ -60,7 +60,7 @@ export interface S3ToStepFunctionProps { export class S3ToStepFunction extends Construct { public readonly stateMachine: sfn.StateMachine; public readonly stateMachineLogGroup: LogGroup; - public readonly s3Bucket: s3.Bucket; + public readonly s3Bucket?: s3.Bucket; public readonly s3LoggingBucket?: s3.Bucket; public readonly cloudwatchAlarms: cloudwatch.Alarm[]; public readonly cloudtrail?: cloudtrail.Trail; @@ -77,11 +77,16 @@ export class S3ToStepFunction extends Construct { */ constructor(scope: Construct, id: string, props: S3ToStepFunctionProps) { super(scope, id); + let bucket: s3.IBucket; - [this.s3Bucket, this.s3LoggingBucket] = defaults.buildS3Bucket(this, { - existingBucketObj: props.existingBucketObj, - bucketProps: props.bucketProps - }); + if (!props.existingBucketObj) { + [this.s3Bucket, this.s3LoggingBucket] = defaults.buildS3Bucket(this, { + bucketProps: props.bucketProps + }); + bucket = this.s3Bucket; + } else { + bucket = props.existingBucketObj; + } if (!props.hasOwnProperty('deployCloudTrail') || props.deployCloudTrail === true) { [this.cloudtrailBucket, this.cloudtrailLoggingBucket] = defaults.buildS3Bucket(this, {}, 'CloudTrail'); @@ -91,7 +96,7 @@ export class S3ToStepFunction extends Construct { }); this.cloudtrail.addS3EventSelector([{ - bucket: this.s3Bucket + bucket }], { readWriteType: cloudtrail.ReadWriteType.ALL, includeManagementEvents: false @@ -116,7 +121,7 @@ export class S3ToStepFunction extends Construct { ], requestParameters: { bucketName: [ - this.s3Bucket.bucketName + bucket.bucketName ] } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/package.json b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/package.json index bc95a325a..e249d82c5 100644 --- a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-step-function", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS S3 to AWS Step Function integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,22 +53,22 @@ } }, "dependencies": { - "@aws-cdk/aws-stepfunctions": "~1.56.0", - "@aws-cdk/aws-stepfunctions-tasks": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-cloudwatch": "~1.56.0", - "@aws-cdk/aws-cloudtrail": "~1.56.0", - "@aws-cdk/aws-events": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-solutions-constructs/aws-events-rule-step-function": "~1.56.0", + "@aws-cdk/aws-stepfunctions": "~1.57.0", + "@aws-cdk/aws-stepfunctions-tasks": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-cloudwatch": "~1.57.0", + "@aws-cdk/aws-cloudtrail": "~1.57.0", + "@aws-cdk/aws-events": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-solutions-constructs/aws-events-rule-step-function": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -78,18 +78,18 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-stepfunctions": "~1.56.0", - "@aws-cdk/aws-stepfunctions-tasks": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-cloudwatch": "~1.56.0", - "@aws-cdk/aws-cloudtrail": "~1.56.0", - "@aws-cdk/aws-events": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-solutions-constructs/aws-events-rule-step-function": "~1.56.0", + "@aws-cdk/aws-stepfunctions": "~1.57.0", + "@aws-cdk/aws-stepfunctions-tasks": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-cloudwatch": "~1.57.0", + "@aws-cdk/aws-cloudtrail": "~1.57.0", + "@aws-cdk/aws-events": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-solutions-constructs/aws-events-rule-step-function": "~1.57.0", "constructs": "^3.0.2", - "@aws-cdk/aws-logs": "~1.56.0" + "@aws-cdk/aws-logs": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.expected.json b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.expected.json new file mode 100644 index 000000000..ec8f35e20 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.expected.json @@ -0,0 +1,498 @@ +{ + "Resources": { + "tests3stepfunctionpreexistingbucketstackCloudTrailS3LoggingBucketB176B631": { + "Type": "AWS::S3::Bucket", + "Properties": { + "AccessControl": "LogDeliveryWrite", + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain", + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W35", + "reason": "This S3 bucket is used as the access logging bucket for another bucket" + } + ] + } + } + }, + "tests3stepfunctionpreexistingbucketstackCloudTrailS3LoggingBucketPolicy11FB1416": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "tests3stepfunctionpreexistingbucketstackCloudTrailS3LoggingBucketB176B631" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": "*", + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "tests3stepfunctionpreexistingbucketstackCloudTrailS3LoggingBucketB176B631", + "Arn" + ] + }, + "/*" + ] + ] + }, + "Sid": "HttpsOnly" + } + ], + "Version": "2012-10-17" + } + } + }, + "tests3stepfunctionpreexistingbucketstackCloudTrailS3Bucket5827CCF5": { + "Type": "AWS::S3::Bucket", + "Properties": { + "BucketEncryption": { + "ServerSideEncryptionConfiguration": [ + { + "ServerSideEncryptionByDefault": { + "SSEAlgorithm": "AES256" + } + } + ] + }, + "LoggingConfiguration": { + "DestinationBucketName": { + "Ref": "tests3stepfunctionpreexistingbucketstackCloudTrailS3LoggingBucketB176B631" + } + }, + "PublicAccessBlockConfiguration": { + "BlockPublicAcls": true, + "BlockPublicPolicy": true, + "IgnorePublicAcls": true, + "RestrictPublicBuckets": true + }, + "VersioningConfiguration": { + "Status": "Enabled" + } + }, + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "tests3stepfunctionpreexistingbucketstackCloudTrailS3BucketPolicyD64F28B9": { + "Type": "AWS::S3::BucketPolicy", + "Properties": { + "Bucket": { + "Ref": "tests3stepfunctionpreexistingbucketstackCloudTrailS3Bucket5827CCF5" + }, + "PolicyDocument": { + "Statement": [ + { + "Action": "*", + "Condition": { + "Bool": { + "aws:SecureTransport": "false" + } + }, + "Effect": "Deny", + "Principal": "*", + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "tests3stepfunctionpreexistingbucketstackCloudTrailS3Bucket5827CCF5", + "Arn" + ] + }, + "/*" + ] + ] + }, + "Sid": "HttpsOnly" + }, + { + "Action": "s3:GetBucketAcl", + "Effect": "Allow", + "Principal": { + "Service": "cloudtrail.amazonaws.com" + }, + "Resource": { + "Fn::GetAtt": [ + "tests3stepfunctionpreexistingbucketstackCloudTrailS3Bucket5827CCF5", + "Arn" + ] + } + }, + { + "Action": "s3:PutObject", + "Condition": { + "StringEquals": { + "s3:x-amz-acl": "bucket-owner-full-control" + } + }, + "Effect": "Allow", + "Principal": { + "Service": "cloudtrail.amazonaws.com" + }, + "Resource": { + "Fn::Join": [ + "", + [ + { + "Fn::GetAtt": [ + "tests3stepfunctionpreexistingbucketstackCloudTrailS3Bucket5827CCF5", + "Arn" + ] + }, + "/AWSLogs/", + { + "Ref": "AWS::AccountId" + }, + "/*" + ] + ] + } + } + ], + "Version": "2012-10-17" + } + } + }, + "tests3stepfunctionpreexistingbucketstackS3EventsTrailD8887331": { + "Type": "AWS::CloudTrail::Trail", + "Properties": { + "IsLogging": true, + "S3BucketName": { + "Ref": "tests3stepfunctionpreexistingbucketstackCloudTrailS3Bucket5827CCF5" + }, + "EnableLogFileValidation": true, + "EventSelectors": [ + { + "DataResources": [ + { + "Type": "AWS::S3::Object", + "Values": [ + { + "Fn::Join": [ + "", + [ + "arn:", + { + "Ref": "AWS::Partition" + }, + ":s3:::cdktoolkit-stagingbucket-1cjqz1mn5psg3/" + ] + ] + } + ] + } + ], + "IncludeManagementEvents": false, + "ReadWriteType": "All" + } + ], + "IncludeGlobalServiceEvents": true, + "IsMultiRegionTrail": true + }, + "DependsOn": [ + "tests3stepfunctionpreexistingbucketstackCloudTrailS3BucketPolicyD64F28B9" + ] + }, + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineLogGroupDD523B41": { + "Type": "AWS::Logs::LogGroup", + "UpdateReplacePolicy": "Retain", + "DeletionPolicy": "Retain" + }, + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineRole791273F9": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": { + "Fn::Join": [ + "", + [ + "states.", + { + "Ref": "AWS::Region" + }, + ".amazonaws.com" + ] + ] + } + } + } + ], + "Version": "2012-10-17" + } + } + }, + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineRoleDefaultPolicy744F0942": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ + "logs:CreateLogDelivery", + "logs:GetLogDelivery", + "logs:UpdateLogDelivery", + "logs:DeleteLogDelivery", + "logs:ListLogDeliveries" + ], + "Effect": "Allow", + "Resource": "*" + }, + { + "Action": [ + "logs:PutResourcePolicy", + "logs:DescribeResourcePolicies", + "logs:DescribeLogGroups" + ], + "Effect": "Allow", + "Resource": { + "Fn::Join": [ + "", + [ + "arn:aws:logs:", + { + "Ref": "AWS::Region" + }, + ":", + { + "Ref": "AWS::AccountId" + }, + ":*" + ] + ] + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineRoleDefaultPolicy744F0942", + "Roles": [ + { + "Ref": "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineRole791273F9" + } + ] + }, + "Metadata": { + "cfn_nag": { + "rules_to_suppress": [ + { + "id": "W12", + "reason": "The 'LogDelivery' actions do not support resource-level authorizations" + } + ] + } + } + }, + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineF70F20BC": { + "Type": "AWS::StepFunctions::StateMachine", + "Properties": { + "RoleArn": { + "Fn::GetAtt": [ + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineRole791273F9", + "Arn" + ] + }, + "DefinitionString": "{\"StartAt\":\"StartState\",\"States\":{\"StartState\":{\"Type\":\"Pass\",\"End\":true}}}", + "LoggingConfiguration": { + "Destinations": [ + { + "CloudWatchLogsLogGroup": { + "LogGroupArn": { + "Fn::GetAtt": [ + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineLogGroupDD523B41", + "Arn" + ] + } + } + } + ], + "Level": "ERROR" + } + }, + "DependsOn": [ + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineRoleDefaultPolicy744F0942", + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineRole791273F9" + ] + }, + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackEventsRuleRole996C80AB": { + "Type": "AWS::IAM::Role", + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { + "Action": "sts:AssumeRole", + "Effect": "Allow", + "Principal": { + "Service": "events.amazonaws.com" + } + } + ], + "Version": "2012-10-17" + } + } + }, + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackEventsRuleRoleDefaultPolicy20EC3FF3": { + "Type": "AWS::IAM::Policy", + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": "states:StartExecution", + "Effect": "Allow", + "Resource": { + "Ref": "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineF70F20BC" + } + } + ], + "Version": "2012-10-17" + }, + "PolicyName": "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackEventsRuleRoleDefaultPolicy20EC3FF3", + "Roles": [ + { + "Ref": "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackEventsRuleRole996C80AB" + } + ] + } + }, + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackEventsRule1611972D": { + "Type": "AWS::Events::Rule", + "Properties": { + "EventPattern": { + "source": [ + "aws.s3" + ], + "detail-type": [ + "AWS API Call via CloudTrail" + ], + "detail": { + "eventSource": [ + "s3.amazonaws.com" + ], + "eventName": [ + "PutObject" + ], + "requestParameters": { + "bucketName": [ + "cdktoolkit-stagingbucket-1cjqz1mn5psg3" + ] + } + } + }, + "State": "ENABLED", + "Targets": [ + { + "Arn": { + "Ref": "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineF70F20BC" + }, + "Id": "Target0", + "RoleArn": { + "Fn::GetAtt": [ + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackEventsRuleRole996C80AB", + "Arn" + ] + } + } + ] + } + }, + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackExecutionFailedAlarm0155D2F3": { + "Type": "AWS::CloudWatch::Alarm", + "Properties": { + "ComparisonOperator": "GreaterThanOrEqualToThreshold", + "EvaluationPeriods": 1, + "AlarmDescription": "Alarm for the number of executions that failed exceeded the threshold of 1. ", + "Dimensions": [ + { + "Name": "StateMachineArn", + "Value": { + "Ref": "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineF70F20BC" + } + } + ], + "MetricName": "ExecutionsFailed", + "Namespace": "AWS/States", + "Period": 300, + "Statistic": "Sum", + "Threshold": 1 + } + }, + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackExecutionThrottledAlarm58EE5178": { + "Type": "AWS::CloudWatch::Alarm", + "Properties": { + "ComparisonOperator": "GreaterThanOrEqualToThreshold", + "EvaluationPeriods": 1, + "AlarmDescription": "Alarm for the number of executions that throttled exceeded the threshold of 1. ", + "Dimensions": [ + { + "Name": "StateMachineArn", + "Value": { + "Ref": "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineF70F20BC" + } + } + ], + "MetricName": "ExecutionThrottled", + "Namespace": "AWS/States", + "Period": 300, + "Statistic": "Sum", + "Threshold": 1 + } + }, + "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackExecutionAbortedAlarm4C041F26": { + "Type": "AWS::CloudWatch::Alarm", + "Properties": { + "ComparisonOperator": "GreaterThanOrEqualToThreshold", + "EvaluationPeriods": 1, + "AlarmDescription": "Alarm for the number of executions that aborted exceeded the threshold of 1. ", + "Dimensions": [ + { + "Name": "StateMachineArn", + "Value": { + "Ref": "tests3stepfunctionpreexistingbucketstacktesteventsrulestepfunctionstackStateMachineF70F20BC" + } + } + ], + "MetricName": "ExecutionsAborted", + "Namespace": "AWS/States", + "Period": 300, + "Statistic": "Maximum", + "Threshold": 1 + } + } + } +} \ No newline at end of file diff --git a/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.ts b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.ts new file mode 100644 index 000000000..837b9bad6 --- /dev/null +++ b/source/patterns/@aws-solutions-constructs/aws-s3-step-function/test/integ.pre-existing-bucket.ts @@ -0,0 +1,34 @@ +/** + * Copyright 2019 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/core"; +import { S3ToStepFunction, S3ToStepFunctionProps } from "../lib"; +import * as stepfunctions from '@aws-cdk/aws-stepfunctions'; +import * as s3 from '@aws-cdk/aws-s3'; + +const app = new App(); +const stack = new Stack(app, 'test-s3-step-function-pre-existing-bucket-stack'); + +const mybucket: s3.IBucket = s3.Bucket.fromBucketName(stack, 'mybucket', 'cdktoolkit-stagingbucket-1cjqz1mn5psg3'); +const startState = new stepfunctions.Pass(stack, 'StartState'); + +const props: S3ToStepFunctionProps = { + existingBucketObj: mybucket, + stateMachineProps: { + definition: startState + } +}; + +new S3ToStepFunction(stack, 'test-s3-step-function-pre-existing-bucket-stack', props); +app.synth(); diff --git a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/package.json index 9468b14c7..aff37ef9e 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sns-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-sns-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-sns-lambda", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK Constructs for AWS SNS to AWS Lambda integration", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,17 +53,17 @@ } }, "dependencies": { - "@aws-cdk/aws-sns": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-lambda-event-sources": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-kms": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-sns": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-lambda-event-sources": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-kms": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -73,13 +73,13 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-sns": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-lambda-event-sources": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-cdk/aws-kms": "~1.56.0", + "@aws-cdk/aws-sns": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-lambda-event-sources": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-cdk/aws-kms": "~1.57.0", "constructs": "^3.0.2" } } diff --git a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/package.json b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/package.json index be2c4c843..c66300f0b 100644 --- a/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/package.json +++ b/source/patterns/@aws-solutions-constructs/aws-sqs-lambda/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-sqs-lambda", - "version": "1.56.0", + "version": "1.57.0", "description": "CDK constructs for defining an interaction between an Amazon SQS queue and an AWS Lambda function.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,16 +53,16 @@ } }, "dependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-lambda-event-sources": "~1.56.0", - "@aws-cdk/aws-sqs": "~1.56.0", - "@aws-cdk/aws-kms": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-lambda-event-sources": "~1.57.0", + "@aws-cdk/aws-sqs": "~1.57.0", + "@aws-cdk/aws-kms": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -72,12 +72,12 @@ ] }, "peerDependencies": { - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-lambda-event-sources": "~1.56.0", - "@aws-cdk/aws-sqs": "~1.56.0", - "@aws-cdk/aws-kms": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-lambda-event-sources": "~1.57.0", + "@aws-cdk/aws-sqs": "~1.57.0", + "@aws-cdk/aws-kms": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "constructs": "^3.0.2" } } 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 26d9f2660..07a9377ed 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 @@ -18,12 +18,6 @@ import { overrideProps } from './utils'; import { PolicyStatement, Effect, AnyPrincipal } from '@aws-cdk/aws-iam'; export interface BuildS3BucketProps { - /** - * Existing instance of S3 Bucket object, if this is set then the bucketProps is ignored - * - * @default - None - */ - readonly existingBucketObj?: s3.Bucket, /** * User provided props to override the default props for the S3 Bucket. * @@ -33,15 +27,10 @@ export interface BuildS3BucketProps { } export function buildS3Bucket(scope: cdk.Construct, props: BuildS3BucketProps, bucketId?: string): [s3.Bucket, s3.Bucket?] { - // Conditional s3 Bucket creation - if (!props.existingBucketObj) { - if (props.bucketProps) { - return s3BucketWithLogging(scope, props.bucketProps, bucketId); - } else { - return s3BucketWithLogging(scope, DefaultS3Props(), bucketId); - } + if (props.bucketProps) { + return s3BucketWithLogging(scope, props.bucketProps, bucketId); } else { - return [props.existingBucketObj]; + return s3BucketWithLogging(scope, DefaultS3Props(), bucketId); } } diff --git a/source/patterns/@aws-solutions-constructs/core/package.json b/source/patterns/@aws-solutions-constructs/core/package.json index 26ecda5cf..26cca7b09 100644 --- a/source/patterns/@aws-solutions-constructs/core/package.json +++ b/source/patterns/@aws-solutions-constructs/core/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/core", - "version": "1.56.0", + "version": "1.57.0", "description": "Core CDK Construct for patterns library", "main": "index.js", "types": "index.ts", @@ -52,27 +52,27 @@ } }, "dependencies": { - "@aws-cdk/aws-cloudfront": "~1.56.0", - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-cdk/aws-iot": "~1.56.0", - "@aws-cdk/aws-kinesis": "~1.56.0", - "@aws-cdk/aws-kinesisanalytics": "~1.56.0", - "@aws-cdk/aws-kinesisfirehose": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-lambda-event-sources": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/aws-sns": "~1.56.0", - "@aws-cdk/aws-sqs": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-kms": "~1.56.0", - "@aws-cdk/aws-events": "~1.56.0", - "@aws-cdk/aws-cognito": "~1.56.0", - "@aws-cdk/aws-elasticsearch": "~1.56.0", - "@aws-cdk/aws-cloudwatch": "~1.56.0", - "@aws-cdk/aws-stepfunctions": "~1.56.0", + "@aws-cdk/aws-cloudfront": "~1.57.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-cdk/aws-iot": "~1.57.0", + "@aws-cdk/aws-kinesis": "~1.57.0", + "@aws-cdk/aws-kinesisanalytics": "~1.57.0", + "@aws-cdk/aws-kinesisfirehose": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-lambda-event-sources": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/aws-sns": "~1.57.0", + "@aws-cdk/aws-sqs": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-kms": "~1.57.0", + "@aws-cdk/aws-events": "~1.57.0", + "@aws-cdk/aws-cognito": "~1.57.0", + "@aws-cdk/aws-elasticsearch": "~1.57.0", + "@aws-cdk/aws-cloudwatch": "~1.57.0", + "@aws-cdk/aws-stepfunctions": "~1.57.0", "@types/deep-diff": "^1.0.0", "@types/npmlog": "^4.1.2", "deep-diff": "^1.0.2", @@ -80,7 +80,7 @@ "npmlog": "^4.1.2" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -97,26 +97,26 @@ "@types/deep-diff" ], "peerDependencies": { - "@aws-cdk/aws-cloudfront": "~1.56.0", - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-cdk/aws-iot": "~1.56.0", - "@aws-cdk/aws-kinesis": "~1.56.0", - "@aws-cdk/aws-kinesisanalytics": "~1.56.0", - "@aws-cdk/aws-kinesisfirehose": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-lambda-event-sources": "~1.56.0", - "@aws-cdk/aws-logs": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/aws-sns": "~1.56.0", - "@aws-cdk/aws-sqs": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-kms": "~1.56.0", - "@aws-cdk/aws-events": "~1.56.0", - "@aws-cdk/aws-cognito": "~1.56.0", - "@aws-cdk/aws-elasticsearch": "~1.56.0", - "@aws-cdk/aws-cloudwatch": "~1.56.0", - "@aws-cdk/aws-stepfunctions": "~1.56.0" + "@aws-cdk/aws-cloudfront": "~1.57.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-cdk/aws-iot": "~1.57.0", + "@aws-cdk/aws-kinesis": "~1.57.0", + "@aws-cdk/aws-kinesisanalytics": "~1.57.0", + "@aws-cdk/aws-kinesisfirehose": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-lambda-event-sources": "~1.57.0", + "@aws-cdk/aws-logs": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/aws-sns": "~1.57.0", + "@aws-cdk/aws-sqs": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-kms": "~1.57.0", + "@aws-cdk/aws-events": "~1.57.0", + "@aws-cdk/aws-cognito": "~1.57.0", + "@aws-cdk/aws-elasticsearch": "~1.57.0", + "@aws-cdk/aws-cloudwatch": "~1.57.0", + "@aws-cdk/aws-stepfunctions": "~1.57.0" } } diff --git a/source/patterns/@aws-solutions-constructs/core/test/__snapshots__/s3-bucket-helper.test.js.snap b/source/patterns/@aws-solutions-constructs/core/test/__snapshots__/s3-bucket-helper.test.js.snap index 2957edb0f..7e31c0b53 100644 --- a/source/patterns/@aws-solutions-constructs/core/test/__snapshots__/s3-bucket-helper.test.js.snap +++ b/source/patterns/@aws-solutions-constructs/core/test/__snapshots__/s3-bucket-helper.test.js.snap @@ -298,15 +298,3 @@ Object { }, } `; - -exports[`s3 bucket with existingBucketObj 1`] = ` -Object { - "Resources": Object { - "mybucket15D133BF": Object { - "DeletionPolicy": "Retain", - "Type": "AWS::S3::Bucket", - "UpdateReplacePolicy": "Retain", - }, - }, -} -`; 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 9c316ac24..ca7b6d3a6 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 @@ -35,15 +35,6 @@ test('s3 bucket with default params and bucket names', () => { expect(SynthUtils.toCloudFormation(stack)).toMatchSnapshot(); }); -test('s3 bucket with existingBucketObj', () => { - const stack = new Stack(); - - defaults.buildS3Bucket(stack, { - existingBucketObj: new s3.Bucket(stack, 'my-bucket', {}) - }); - expect(SynthUtils.toCloudFormation(stack)).toMatchSnapshot(); -}); - test('check exception for Missing existingBucketObj from props for deploy = false', () => { const stack = new Stack(); @@ -82,7 +73,7 @@ test('s3 bucket with bucketProps', () => { })); }); -test('s3 bucket with existingBucketObj with access logging configured', () => { +test('s3 bucket with access logging configured', () => { const stack = new Stack(); const mybucket = new Bucket(stack, 'mybucket', { serverAccessLogsBucket: new Bucket(stack, 'myaccesslogbucket', {}) diff --git a/source/tools/cdk-integ-tools/package.json b/source/tools/cdk-integ-tools/package.json index a15380969..bd529547b 100644 --- a/source/tools/cdk-integ-tools/package.json +++ b/source/tools/cdk-integ-tools/package.json @@ -31,9 +31,9 @@ "typescript": "~3.7.4" }, "dependencies": { - "@aws-cdk/cloudformation-diff": "~1.56.0", - "@aws-cdk/cx-api": "~1.56.0", - "aws-cdk": "~1.56.0", + "@aws-cdk/cloudformation-diff": "~1.57.0", + "@aws-cdk/cx-api": "~1.57.0", + "aws-cdk": "~1.57.0", "fs-extra": "^8.1.0", "yargs": "^15.1.0" }, diff --git a/source/use_cases/aws-s3-static-website/package.json b/source/use_cases/aws-s3-static-website/package.json index f00a2db04..2c3004f88 100644 --- a/source/use_cases/aws-s3-static-website/package.json +++ b/source/use_cases/aws-s3-static-website/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-s3-static-website", - "version": "1.56.0", + "version": "1.57.0", "description": "Use case pattern for deploying a S3 static website.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -28,19 +28,19 @@ "build+lint+test": "npm run build && npm run lint && npm test && npm run integ-assert" }, "dependencies": { - "@aws-solutions-constructs/aws-cloudfront-s3": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-cloudfront": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/custom-resources": "~1.56.0", - "@aws-cdk/aws-cloudformation": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-solutions-constructs/aws-cloudfront-s3": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-cloudfront": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/custom-resources": "~1.57.0", + "@aws-cdk/aws-cloudformation": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "source-map-support": "^0.5.16" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, diff --git a/source/use_cases/aws-serverless-image-handler/package.json b/source/use_cases/aws-serverless-image-handler/package.json index 293ae5c18..794b48bff 100644 --- a/source/use_cases/aws-serverless-image-handler/package.json +++ b/source/use_cases/aws-serverless-image-handler/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-serverless-image-handler", - "version": "1.56.0", + "version": "1.57.0", "description": "Use case pattern for deploying a serverless image handler API.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -53,18 +53,18 @@ } }, "dependencies": { - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-cloudfront": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "~1.56.0", - "@aws-solutions-constructs/aws-lambda-s3": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0" + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-cloudfront": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "~1.57.0", + "@aws-solutions-constructs/aws-lambda-s3": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" }, @@ -74,14 +74,14 @@ ] }, "peerDependencies": { - "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "~1.56.0", - "@aws-solutions-constructs/aws-lambda-s3": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-cloudfront": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0" + "@aws-solutions-constructs/aws-cloudfront-apigateway-lambda": "~1.57.0", + "@aws-solutions-constructs/aws-lambda-s3": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-cloudfront": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0" } } diff --git a/source/use_cases/aws-serverless-web-app/package.json b/source/use_cases/aws-serverless-web-app/package.json index 1b2e6c1c8..6131b48d4 100644 --- a/source/use_cases/aws-serverless-web-app/package.json +++ b/source/use_cases/aws-serverless-web-app/package.json @@ -1,6 +1,6 @@ { "name": "@aws-solutions-constructs/aws-serverless-web-app", - "version": "1.56.0", + "version": "1.57.0", "description": "Use case pattern for deploying a serverless web app.", "main": "lib/index.js", "types": "lib/index.d.ts", @@ -28,24 +28,24 @@ "build+lint+test": "npm run build && npm run lint && npm test && npm run integ-assert" }, "dependencies": { - "@aws-solutions-constructs/aws-cloudfront-s3": "~1.56.0", - "@aws-solutions-constructs/aws-cognito-apigateway-lambda": "~1.56.0", - "@aws-solutions-constructs/aws-lambda-dynamodb": "~1.56.0", - "@aws-cdk/core": "~1.56.0", - "@aws-cdk/aws-lambda": "~1.56.0", - "@aws-cdk/aws-cloudfront": "~1.56.0", - "@aws-cdk/aws-s3": "~1.56.0", - "@aws-cdk/custom-resources": "~1.56.0", - "@aws-cdk/aws-cloudformation": "~1.56.0", - "@aws-cdk/aws-iam": "~1.56.0", - "@aws-cdk/aws-cognito": "~1.56.0", - "@aws-cdk/aws-apigateway": "~1.56.0", - "@aws-cdk/aws-dynamodb": "~1.56.0", - "@aws-solutions-constructs/core": "~1.56.0", + "@aws-solutions-constructs/aws-cloudfront-s3": "~1.57.0", + "@aws-solutions-constructs/aws-cognito-apigateway-lambda": "~1.57.0", + "@aws-solutions-constructs/aws-lambda-dynamodb": "~1.57.0", + "@aws-cdk/core": "~1.57.0", + "@aws-cdk/aws-lambda": "~1.57.0", + "@aws-cdk/aws-cloudfront": "~1.57.0", + "@aws-cdk/aws-s3": "~1.57.0", + "@aws-cdk/custom-resources": "~1.57.0", + "@aws-cdk/aws-cloudformation": "~1.57.0", + "@aws-cdk/aws-iam": "~1.57.0", + "@aws-cdk/aws-cognito": "~1.57.0", + "@aws-cdk/aws-apigateway": "~1.57.0", + "@aws-cdk/aws-dynamodb": "~1.57.0", + "@aws-solutions-constructs/core": "~1.57.0", "source-map-support": "^0.5.16" }, "devDependencies": { - "@aws-cdk/assert": "~1.56.0", + "@aws-cdk/assert": "~1.57.0", "@types/jest": "^24.0.23", "@types/node": "^10.3.0" },