From 48bb71925d6be365affcdce87906691fd0523c5c Mon Sep 17 00:00:00 2001 From: Alex Stone Date: Sat, 25 Jun 2022 00:14:34 -0500 Subject: [PATCH 1/6] Update cdk version to match aws-apigatewayv2-alpha deps --- .projen/deps.json | 4 ++-- .projenrc.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) 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', From 6f8e77ac42e0b2dfc584b4cfe3fd395594eb618f Mon Sep 17 00:00:00 2001 From: Alex Stone Date: Sat, 25 Jun 2022 00:35:18 -0500 Subject: [PATCH 2/6] Update package.json,yarn.lock --- package.json | 4 ++-- yarn.lock | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) 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/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== From 02b4198ffe5b0d2940ec58d96f9db4b3136aa8fc Mon Sep 17 00:00:00 2001 From: Alex Stone Date: Sat, 25 Jun 2022 01:30:09 -0500 Subject: [PATCH 3/6] Expose api object --- API.md | 9 +++++++++ package.json | 3 ++- src/index.ts | 7 +++++-- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/API.md b/API.md index cd5e68f..7b0cdf1 100644 --- a/API.md +++ b/API.md @@ -94,6 +94,7 @@ new ServerlessApi(scope: Construct, id: string, props: ServerlessApiProps) Name | Type | Description -----|------|------------- **handler** | [aws_lambda.IFunction](#aws-cdk-lib-aws-lambda-ifunction) | +**endpoint**? | [HttpApi](#aws-cdk-aws-apigatewayv2-alpha-httpapi) | __*Optional*__ **vpc**? | [aws_ec2.IVpc](#aws-cdk-lib-aws-ec2-ivpc) | __*Optional*__ @@ -127,6 +128,14 @@ new ServerlessLaravel(scope: Construct, id: string, props: ServerlessLaravelProp +### Properties + + +Name | Type | Description +-----|------|------------- +**api**? | [ServerlessApi](#cdk-serverless-lamp-serverlessapi) | __*Optional*__ + + ## struct DatabaseConfig diff --git a/package.json b/package.json index 3af52d9..af87761 100644 --- a/package.json +++ b/package.json @@ -66,7 +66,8 @@ }, "peerDependencies": { "aws-cdk-lib": "^2.29.1", - "constructs": "^10.0.5" + "constructs": "^10.0.5", + "@aws-cdk/aws-apigatewayv2-alpha": "^2.29.1-alpha.0" }, "dependencies": { "@aws-cdk/aws-apigatewayv2-alpha": "^2.29.1-alpha.0", diff --git a/src/index.ts b/src/index.ts index 25ffb0d..d21d18f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -85,6 +85,7 @@ export interface ServerlessApiProps { export class ServerlessApi extends Construct { readonly handler: lambda.IFunction; readonly vpc?: ec2.IVpc; + readonly endpoint?: apigateway.HttpApi; constructor(scope: Construct, id: string, props: ServerlessApiProps) { super(scope, id); @@ -119,7 +120,7 @@ export class ServerlessApi extends Construct { })); } - const endpoint = new apigateway.HttpApi(this, 'apiservice', { + const endpoint = this.endpoint = new apigateway.HttpApi(this, 'apiservice', { defaultIntegration: new HttpLambdaIntegration('lambdaHandler', this.handler), }); new CfnOutput(this, 'EndpointURL', { value: endpoint.url! }); @@ -141,9 +142,11 @@ export interface ServerlessLaravelProps extends ServerlessApiProps { * Use `ServerlessLaravel` to create the serverless Laravel resource */ export class ServerlessLaravel extends Construct { + readonly api?:ServerlessApi; + constructor(scope: Construct, id: string, props: ServerlessLaravelProps) { super(scope, id); - new ServerlessApi(this, id, { + this.api = new ServerlessApi(this, id, { lambdaCodePath: props.laravelPath, brefLayerVersion: props.brefLayerVersion, handler: props.handler, From 7b82ec3e00ed5057fce6b31649be100e4b67e32b Mon Sep 17 00:00:00 2001 From: Alex Stone Date: Sat, 25 Jun 2022 01:34:34 -0500 Subject: [PATCH 4/6] Add @aws-cdk/aws-apigatewayv2-alpha to peerdeps --- .projen/deps.json | 4 ++++ .projenrc.js | 3 +++ package.json | 4 ++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/.projen/deps.json b/.projen/deps.json index 85db57d..0bd6513 100644 --- a/.projen/deps.json +++ b/.projen/deps.json @@ -99,6 +99,10 @@ "name": "typescript", "type": "build" }, + { + "name": "@aws-cdk/aws-apigatewayv2-alpha", + "type": "peer" + }, { "name": "aws-cdk-lib", "version": "^2.29.1", diff --git a/.projenrc.js b/.projenrc.js index 8574157..7febf8a 100644 --- a/.projenrc.js +++ b/.projenrc.js @@ -21,6 +21,9 @@ const project = new awscdk.AwsCdkConstructLibrary({ '@aws-cdk/aws-apigatewayv2-integrations-alpha', '@aws-cdk/aws-apigatewayv2-alpha', ], + peerDeps: [ + '@aws-cdk/aws-apigatewayv2-alpha', + ], autoApproveOptions: { secret: 'GITHUB_TOKEN', allowedUsernames: ['pahud'], diff --git a/package.json b/package.json index af87761..7d38262 100644 --- a/package.json +++ b/package.json @@ -65,9 +65,9 @@ "typescript": "^4.7.4" }, "peerDependencies": { + "@aws-cdk/aws-apigatewayv2-alpha": "^2.29.1-alpha.0", "aws-cdk-lib": "^2.29.1", - "constructs": "^10.0.5", - "@aws-cdk/aws-apigatewayv2-alpha": "^2.29.1-alpha.0" + "constructs": "^10.0.5" }, "dependencies": { "@aws-cdk/aws-apigatewayv2-alpha": "^2.29.1-alpha.0", From 36195effafc2f9d6608afb50b0f58ef444487ee8 Mon Sep 17 00:00:00 2001 From: Alex Stone Date: Sat, 25 Jun 2022 01:52:51 -0500 Subject: [PATCH 5/6] Make params required --- src/index.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/index.ts b/src/index.ts index d21d18f..7b97f48 100644 --- a/src/index.ts +++ b/src/index.ts @@ -85,7 +85,7 @@ export interface ServerlessApiProps { export class ServerlessApi extends Construct { readonly handler: lambda.IFunction; readonly vpc?: ec2.IVpc; - readonly endpoint?: apigateway.HttpApi; + readonly endpoint: apigateway.HttpApi; constructor(scope: Construct, id: string, props: ServerlessApiProps) { super(scope, id); @@ -142,7 +142,7 @@ export interface ServerlessLaravelProps extends ServerlessApiProps { * Use `ServerlessLaravel` to create the serverless Laravel resource */ export class ServerlessLaravel extends Construct { - readonly api?:ServerlessApi; + readonly api:ServerlessApi; constructor(scope: Construct, id: string, props: ServerlessLaravelProps) { super(scope, id); From 0e63afd81f23cb334888de65cf8bb5448032f43c Mon Sep 17 00:00:00 2001 From: Alex Stone Date: Sat, 25 Jun 2022 01:53:50 -0500 Subject: [PATCH 6/6] Update api docs --- API.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/API.md b/API.md index 7b0cdf1..8fc2fa0 100644 --- a/API.md +++ b/API.md @@ -93,8 +93,8 @@ new ServerlessApi(scope: Construct, id: string, props: ServerlessApiProps) Name | Type | Description -----|------|------------- +**endpoint** | [HttpApi](#aws-cdk-aws-apigatewayv2-alpha-httpapi) | **handler** | [aws_lambda.IFunction](#aws-cdk-lib-aws-lambda-ifunction) | -**endpoint**? | [HttpApi](#aws-cdk-aws-apigatewayv2-alpha-httpapi) | __*Optional*__ **vpc**? | [aws_ec2.IVpc](#aws-cdk-lib-aws-ec2-ivpc) | __*Optional*__ @@ -133,7 +133,7 @@ new ServerlessLaravel(scope: Construct, id: string, props: ServerlessLaravelProp Name | Type | Description -----|------|------------- -**api**? | [ServerlessApi](#cdk-serverless-lamp-serverlessapi) | __*Optional*__ +**api** | [ServerlessApi](#cdk-serverless-lamp-serverlessapi) |