diff --git a/.projen/deps.json b/.projen/deps.json index 739a20a..85db57d 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -21,7 +21,7 @@ }, { "name": "aws-cdk-lib", - "version": "2.18.0", + "version": "2.29.1", "type": "build" }, { @@ -101,7 +101,7 @@ }, { "name": "aws-cdk-lib", - "version": "^2.18.0", + "version": "^2.29.1", "type": "peer" }, { diff --git a/.projenrc.js b/.projenrc.js index f139df9..8574157 100644 --- a/.projenrc.js +++ b/.projenrc.js @@ -7,7 +7,7 @@ const project = new awscdk.AwsCdkConstructLibrary({ authorName: 'Pahud Hsieh', authorEmail: 'hunhsieh@amazon.com', name: PROJECT_NAME, - cdkVersion: '2.18.0', + cdkVersion: '2.29.1', description: PROJECT_DESCRIPTION, repository: 'https://github.com/aws-samples/cdk-serverless-lamp.git', defaultReleaseBranch: 'main', diff --git a/API.md b/API.md index cd5e68f..d73e1f7 100644 --- a/API.md +++ b/API.md @@ -46,6 +46,7 @@ new DatabaseCluster(scope: Construct, id: string, props: DatabaseProps) * **masterUserName** (string) master username. __*Default*__: admin * **rdsProxy** (boolean) enable the Amazon RDS proxy. __*Default*__: true * **rdsProxyOptions** ([aws_rds.DatabaseProxyOptions](#aws-cdk-lib-aws-rds-databaseproxyoptions)) RDS Proxy Options. __*Optional*__ + * **vpcSubnets** ([aws_ec2.SubnetSelection](#aws-cdk-lib-aws-ec2-subnetselection)) List of subnets to use when creating subnet group. __*Optional*__ @@ -160,6 +161,7 @@ Name | Type | Description **masterUserName**? | string | master username.
__*Default*__: admin **rdsProxy**? | boolean | enable the Amazon RDS proxy.
__*Default*__: true **rdsProxyOptions**? | [aws_rds.DatabaseProxyOptions](#aws-cdk-lib-aws-rds-databaseproxyoptions) | RDS Proxy Options.
__*Optional*__ +**vpcSubnets**? | [aws_ec2.SubnetSelection](#aws-cdk-lib-aws-ec2-subnetselection) | List of subnets to use when creating subnet group.
__*Optional*__ diff --git a/package.json b/package.json index 9464808..3af52d9 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "@types/node": "^14", "@typescript-eslint/eslint-plugin": "^5", "@typescript-eslint/parser": "^5", - "aws-cdk-lib": "2.18.0", + "aws-cdk-lib": "2.29.1", "constructs": "10.0.5", "eslint": "^8", "eslint-import-resolver-node": "^0.3.6", @@ -65,7 +65,7 @@ "typescript": "^4.7.4" }, "peerDependencies": { - "aws-cdk-lib": "^2.18.0", + "aws-cdk-lib": "^2.29.1", "constructs": "^10.0.5" }, "dependencies": { diff --git a/src/index.ts b/src/index.ts index 25ffb0d..28ec4b6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -200,6 +200,11 @@ export interface DatabaseProps { */ readonly instanceCapacity?: number; + /** + * List of subnets to use when creating subnet group. + */ + readonly vpcSubnets?: ec2.SubnetSelection; + } export class DatabaseCluster extends Construct { @@ -241,6 +246,7 @@ export class DatabaseCluster extends Construct { vpc: props.vpc, instanceType: props.instanceType ?? new ec2.InstanceType('t3.medium'), securityGroups: [dbConnectionGroup], + vpcSubnets: props.vpcSubnets, }, credentials: { username: masterUserSecret.secretValueFromJson('username').toString(), @@ -279,6 +285,7 @@ export class DatabaseCluster extends Construct { dbProxyName: `${Stack.of(this).stackName}-RDSProxy`, securityGroups: [dbConnectionGroup], role: rdsProxyRole, + vpcSubnets: props.vpcSubnets, }; // create the RDS proxy diff --git a/yarn.lock b/yarn.lock index 07e065b..44ed022 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1176,19 +1176,19 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -aws-cdk-lib@2.18.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.18.0.tgz#a130edf9d90ec166d5c0f14d275ab49cbbe75261" - integrity sha512-4XpEqRgKSzDmcpeNGRqRlnWEltnt5+NoHWKpQDHUsAmyJ2QNQ5dYxVLIReaGiE9H8zS0rlpp3exuDEy0UgKj2Q== +aws-cdk-lib@2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/aws-cdk-lib/-/aws-cdk-lib-2.29.1.tgz#3a7bfb03f988c37c9ccd7db454bd66ffce427d14" + integrity sha512-tmWhsmSvNrJD9/SFAD0The7hON3VYUcFchKnjPg4vwvY89XzZv76IB24KLy3XoXF33WYvCUzDQPO/bCZQBF4LA== dependencies: "@balena/dockerignore" "^1.0.2" case "1.6.3" fs-extra "^9.1.0" ignore "^5.2.0" - jsonschema "^1.4.0" + jsonschema "^1.4.1" minimatch "^3.1.2" punycode "^2.1.1" - semver "^7.3.5" + semver "^7.3.7" yaml "1.10.2" babel-jest@^27.5.1: @@ -3932,7 +3932,7 @@ jsonparse@^1.2.0, jsonparse@^1.3.1: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== -jsonschema@^1.4.0: +jsonschema@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==