From 72b2fe0d763392641d1001ebccc57c98191c24e4 Mon Sep 17 00:00:00 2001 From: Andrew Taylor Date: Tue, 26 Nov 2024 10:10:26 -0800 Subject: [PATCH] Allow Node 22 functions (#2269) * Add support to `@aws-amplify/backend-function` for Node 22 Add support to `@aws-amplify/backend-function` for Node 22, which is a [supported Lambda runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels) that was added in [`aws-cdk-lib/aws-lambda` version `2.168.0`](https://github.com/aws/aws-cdk/releases/tag/v2.168.0) on November 20th, 2024 * Regen API docs * npm clean * Update aws-cdk-lib and aws-cdk to 2.168.0 * Update aws-cdk-lib and aws-cdk to 2.168.0 * Update test * Changeset for aws-cdk-lib upgrade * Update .changeset/forty-bulldogs-end.md --------- Co-authored-by: Kamil Sobol --- .changeset/forty-bulldogs-end.md | 8 +++ .changeset/new-rings-suffer.md | 20 ++++++ package-lock.json | 68 +++++++++---------- packages/ai-constructs/package.json | 2 +- packages/auth-construct/package.json | 2 +- packages/backend-ai/package.json | 2 +- packages/backend-auth/package.json | 2 +- packages/backend-data/package.json | 2 +- packages/backend-deployer/package.json | 2 +- packages/backend-function/API.md | 2 +- packages/backend-function/package.json | 2 +- packages/backend-function/src/factory.test.ts | 6 +- packages/backend-function/src/factory.ts | 3 +- packages/backend-output-storage/package.json | 2 +- .../backend-platform-test-stubs/package.json | 2 +- packages/backend-storage/package.json | 2 +- packages/backend/package.json | 2 +- packages/integration-tests/package.json | 2 +- packages/plugin-types/package.json | 2 +- packages/sandbox/package.json | 2 +- 20 files changed, 82 insertions(+), 53 deletions(-) create mode 100644 .changeset/forty-bulldogs-end.md create mode 100644 .changeset/new-rings-suffer.md diff --git a/.changeset/forty-bulldogs-end.md b/.changeset/forty-bulldogs-end.md new file mode 100644 index 00000000000..99aa5a81e2f --- /dev/null +++ b/.changeset/forty-bulldogs-end.md @@ -0,0 +1,8 @@ +--- +'@aws-amplify/backend-function': minor +'@aws-amplify/backend': minor +--- + +Add support to `@aws-amplify/backend-function` for Node 22 + +Add support to `@aws-amplify/backend-function` for Node 22, which is a [supported Lambda runtime](https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels) that was added in [`aws-cdk-lib/aws-lambda` version `2.168.0`](https://github.com/aws/aws-cdk/releases/tag/v2.168.0) on November 20th, 2024 diff --git a/.changeset/new-rings-suffer.md b/.changeset/new-rings-suffer.md new file mode 100644 index 00000000000..f3df724642e --- /dev/null +++ b/.changeset/new-rings-suffer.md @@ -0,0 +1,20 @@ +--- +'@aws-amplify/backend-platform-test-stubs': patch +'@aws-amplify/backend-output-storage': patch +'@aws-amplify/integration-tests': patch +'@aws-amplify/backend-deployer': patch +'@aws-amplify/backend-function': patch +'@aws-amplify/schema-generator': patch +'@aws-amplify/backend-storage': patch +'@aws-amplify/auth-construct': patch +'@aws-amplify/ai-constructs': patch +'@aws-amplify/client-config': patch +'@aws-amplify/backend-auth': patch +'@aws-amplify/backend-data': patch +'@aws-amplify/plugin-types': patch +'@aws-amplify/backend-ai': patch +'@aws-amplify/backend': patch +'@aws-amplify/sandbox': patch +--- + +update aws-cdk lib to ^2.168.0 diff --git a/package-lock.json b/package-lock.json index a89d39fc1d2..abf7f393397 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6159,15 +6159,15 @@ } }, "node_modules/@aws-cdk/asset-awscli-v1": { - "version": "2.2.202", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.202.tgz", - "integrity": "sha512-JqlF0D4+EVugnG5dAsNZMqhu3HW7ehOXm5SDMxMbXNDMdsF0pxtQKNHRl52z1U9igsHmaFpUgSGjbhAJ+0JONg==", + "version": "2.2.213", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-awscli-v1/-/asset-awscli-v1-2.2.213.tgz", + "integrity": "sha512-crm1yDJmORJF2Y9gDvNUX4Q3iQXVhWrL7oaZfpx3QDqrvVz5UEgWGpJdysqDuWFZTmIgtrI5Svq3UfdwCNNpsg==", "license": "Apache-2.0" }, "node_modules/@aws-cdk/asset-kubectl-v20": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.2.tgz", - "integrity": "sha512-3M2tELJOxQv0apCIiuKQ4pAbncz9GuLwnKFqxifWfe77wuMxyTRPmxssYHs42ePqzap1LT6GDcPygGs+hHstLg==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/@aws-cdk/asset-kubectl-v20/-/asset-kubectl-v20-2.1.3.tgz", + "integrity": "sha512-cDG1w3ieM6eOT9mTefRuTypk95+oyD7P5X/wRltwmYxU7nZc3+076YEVS6vrjDKr3ADYbfn0lDKpfB1FBtO9CQ==", "license": "Apache-2.0" }, "node_modules/@aws-cdk/asset-node-proxy-agent-v6": { @@ -19581,9 +19581,9 @@ "license": "0BSD" }, "node_modules/aws-cdk": { - "version": "2.164.1", - "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.164.1.tgz", - "integrity": "sha512-dWRViQgHLe7GHkPIQGA+8EQSm8TBcxemyCC3HHW3wbLMWUDbspio9Dktmw5EmWxlFjjWh86Dk1JWf1zKQo8C5g==", + "version": "2.171.0", + "resolved": "https://registry.npmjs.org/aws-cdk/-/aws-cdk-2.171.0.tgz", + "integrity": "sha512-tVo4hYS0iAbiCFxUh2/7KoDL6EHEIUAurCJaBs2BOUAB9DfBuUAPp8DGUK4iVF8XzrQQ4f3a5ivN7DteQrGBEQ==", "license": "Apache-2.0", "peer": true, "bin": { @@ -19597,9 +19597,9 @@ } }, "node_modules/aws-cdk-lib": { - "version": "2.164.1", - "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.164.1.tgz", - "integrity": "sha512-jNvVmfZJbZoAYU94b5dzTlF2z6JXJ204NgcYY5haOa6mq3m2bzdYPXnPtB5kpAX3oBi++yoRdmLhqgckdEhUZA==", + "version": "2.171.0", + "resolved": "https://registry.npmjs.org/aws-cdk-lib/-/aws-cdk-lib-2.171.0.tgz", + "integrity": "sha512-N0O0mWI+S8PAbiED7eV05qVfbJgHkdh+jQS4BOG6CUAc/i2s9U4w+XDRkK8auO0HgTM9+ahEaFfucMuQ4abRWQ==", "bundleDependencies": [ "@balena/dockerignore", "case", @@ -19615,10 +19615,10 @@ ], "license": "Apache-2.0", "dependencies": { - "@aws-cdk/asset-awscli-v1": "^2.2.202", - "@aws-cdk/asset-kubectl-v20": "^2.1.2", + "@aws-cdk/asset-awscli-v1": "^2.2.208", + "@aws-cdk/asset-kubectl-v20": "^2.1.3", "@aws-cdk/asset-node-proxy-agent-v6": "^2.1.0", - "@aws-cdk/cloud-assembly-schema": "^38.0.0", + "@aws-cdk/cloud-assembly-schema": "^38.0.1", "@balena/dockerignore": "^1.0.2", "case": "1.6.3", "fs-extra": "^11.2.0", @@ -19742,9 +19742,9 @@ "license": "MIT" }, "node_modules/aws-cdk-lib/node_modules/fast-uri": { - "version": "3.0.1", + "version": "3.0.3", "inBundle": true, - "license": "MIT" + "license": "BSD-3-Clause" }, "node_modules/aws-cdk-lib/node_modules/fs-extra": { "version": "11.2.0", @@ -31526,7 +31526,7 @@ "typescript": "^5.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } }, @@ -31545,7 +31545,7 @@ "@aws-sdk/util-arn-parser": "^3.568.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } }, @@ -31574,7 +31574,7 @@ "aws-lambda": "^1.0.7" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } }, @@ -31591,7 +31591,7 @@ "@aws-amplify/plugin-types": "^1.5.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } }, @@ -31614,7 +31614,7 @@ "aws-lambda": "^1.0.7" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } }, @@ -31635,23 +31635,23 @@ "@aws-amplify/platform-core": "^1.2.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } }, "packages/backend-deployer": { "name": "@aws-amplify/backend-deployer", - "version": "1.1.9", + "version": "1.1.10", "license": "Apache-2.0", "dependencies": { - "@aws-amplify/platform-core": "^1.2.0", + "@aws-amplify/platform-core": "^1.2.2", "@aws-amplify/plugin-types": "^1.4.0", "execa": "^8.0.1", "strip-ansi": "^6.0.1", "tsx": "^4.6.1" }, "peerDependencies": { - "aws-cdk": "^2.158.0", + "aws-cdk": "^2.168.0", "typescript": "^5.0.0" } }, @@ -31673,7 +31673,7 @@ "uuid": "^9.0.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } }, @@ -31712,7 +31712,7 @@ "@aws-amplify/plugin-types": "^1.3.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0" + "aws-cdk-lib": "^2.168.0" } }, "packages/backend-platform-test-stubs": { @@ -31721,7 +31721,7 @@ "license": "Apache-2.0", "dependencies": { "@aws-amplify/plugin-types": "^1.3.1", - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } }, @@ -31752,7 +31752,7 @@ "@aws-amplify/platform-core": "^1.2.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } }, @@ -32129,7 +32129,7 @@ "@zip.js/zip.js": "^2.7.52", "aws-amplify": "^6.0.16", "aws-appsync-auth-link": "^3.0.7", - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0", "execa": "^8.0.1", "fs-extra": "^11.1.1", @@ -32180,7 +32180,7 @@ }, "packages/platform-core": { "name": "@aws-amplify/platform-core", - "version": "1.2.1", + "version": "1.2.2", "license": "Apache-2.0", "dependencies": { "@aws-amplify/plugin-types": "^1.5.0", @@ -32219,7 +32219,7 @@ }, "peerDependencies": { "@aws-sdk/types": "^3.609.0", - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } }, @@ -32367,7 +32367,7 @@ "@types/parse-gitignore": "^1.0.0" }, "peerDependencies": { - "aws-cdk": "^2.158.0" + "aws-cdk": "^2.168.0" } }, "packages/schema-generator": { diff --git a/packages/ai-constructs/package.json b/packages/ai-constructs/package.json index 73fdf04e270..584d3d361c2 100644 --- a/packages/ai-constructs/package.json +++ b/packages/ai-constructs/package.json @@ -38,7 +38,7 @@ "typescript": "^5.0.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } } diff --git a/packages/auth-construct/package.json b/packages/auth-construct/package.json index 42c20143eeb..cb70f430740 100644 --- a/packages/auth-construct/package.json +++ b/packages/auth-construct/package.json @@ -25,7 +25,7 @@ "@aws-sdk/util-arn-parser": "^3.568.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } } diff --git a/packages/backend-ai/package.json b/packages/backend-ai/package.json index 6699cc19a5d..1cf30fb297e 100644 --- a/packages/backend-ai/package.json +++ b/packages/backend-ai/package.json @@ -30,7 +30,7 @@ "@aws-amplify/plugin-types": "^1.5.0" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } } diff --git a/packages/backend-auth/package.json b/packages/backend-auth/package.json index 43ea82bfdc0..054d782dc6c 100644 --- a/packages/backend-auth/package.json +++ b/packages/backend-auth/package.json @@ -33,7 +33,7 @@ "aws-lambda": "^1.0.7" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } } diff --git a/packages/backend-data/package.json b/packages/backend-data/package.json index ba3ed7e55a9..0ec2b12a4c8 100644 --- a/packages/backend-data/package.json +++ b/packages/backend-data/package.json @@ -24,7 +24,7 @@ "@aws-amplify/platform-core": "^1.2.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" }, "dependencies": { diff --git a/packages/backend-deployer/package.json b/packages/backend-deployer/package.json index adc2a77a229..3a57923c2bd 100644 --- a/packages/backend-deployer/package.json +++ b/packages/backend-deployer/package.json @@ -26,7 +26,7 @@ "strip-ansi": "^6.0.1" }, "peerDependencies": { - "aws-cdk": "^2.158.0", + "aws-cdk": "^2.168.0", "typescript": "^5.0.0" } } diff --git a/packages/backend-function/API.md b/packages/backend-function/API.md index c87d9469ef0..8e0ad66d853 100644 --- a/packages/backend-function/API.md +++ b/packages/backend-function/API.md @@ -46,7 +46,7 @@ export type FunctionProps = { export type FunctionSchedule = TimeInterval | CronSchedule; // @public (undocumented) -export type NodeVersion = 16 | 18 | 20; +export type NodeVersion = 16 | 18 | 20 | 22; // @public (undocumented) export type TimeInterval = `every ${number}m` | `every ${number}h` | `every day` | `every week` | `every month` | `every year`; diff --git a/packages/backend-function/package.json b/packages/backend-function/package.json index 412c6be0be9..212f8567ed9 100644 --- a/packages/backend-function/package.json +++ b/packages/backend-function/package.json @@ -32,7 +32,7 @@ "uuid": "^9.0.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } } diff --git a/packages/backend-function/src/factory.test.ts b/packages/backend-function/src/factory.test.ts index 95624b523bc..c7ce48a2cfe 100644 --- a/packages/backend-function/src/factory.test.ts +++ b/packages/backend-function/src/factory.test.ts @@ -308,12 +308,12 @@ void describe('AmplifyFunctionFactory', () => { void it('sets valid runtime', () => { const lambda = defineFunction({ entry: './test-assets/default-lambda/handler.ts', - runtime: 16, + runtime: 22, }).getInstance(getInstanceProps); const template = Template.fromStack(lambda.stack); template.hasResourceProperties('AWS::Lambda::Function', { - Runtime: Runtime.NODEJS_16_X.name, + Runtime: Runtime.NODEJS_22_X.name, }); }); @@ -335,7 +335,7 @@ void describe('AmplifyFunctionFactory', () => { entry: './test-assets/default-lambda/handler.ts', runtime: 14 as NodeVersion, }).getInstance(getInstanceProps), - new Error('runtime must be one of the following: 16, 18, 20') + new Error('runtime must be one of the following: 16, 18, 20, 22') ); }); diff --git a/packages/backend-function/src/factory.ts b/packages/backend-function/src/factory.ts index 5a62fcf36fb..9c29357c217 100644 --- a/packages/backend-function/src/factory.ts +++ b/packages/backend-function/src/factory.ts @@ -570,10 +570,11 @@ const isWholeNumberBetweenInclusive = ( max: number ) => min <= test && test <= max && test % 1 === 0; -export type NodeVersion = 16 | 18 | 20; +export type NodeVersion = 16 | 18 | 20 | 22; const nodeVersionMap: Record = { 16: Runtime.NODEJS_16_X, 18: Runtime.NODEJS_18_X, 20: Runtime.NODEJS_20_X, + 22: Runtime.NODEJS_22_X, }; diff --git a/packages/backend-output-storage/package.json b/packages/backend-output-storage/package.json index 839a1351da5..0269f794b62 100644 --- a/packages/backend-output-storage/package.json +++ b/packages/backend-output-storage/package.json @@ -24,6 +24,6 @@ "@aws-amplify/plugin-types": "^1.3.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0" + "aws-cdk-lib": "^2.168.0" } } diff --git a/packages/backend-platform-test-stubs/package.json b/packages/backend-platform-test-stubs/package.json index 4d8ab06e8fd..8d86327dc9a 100644 --- a/packages/backend-platform-test-stubs/package.json +++ b/packages/backend-platform-test-stubs/package.json @@ -17,7 +17,7 @@ "license": "Apache-2.0", "dependencies": { "@aws-amplify/plugin-types": "^1.3.1", - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } } diff --git a/packages/backend-storage/package.json b/packages/backend-storage/package.json index c56134608f7..051a4c975d7 100644 --- a/packages/backend-storage/package.json +++ b/packages/backend-storage/package.json @@ -28,7 +28,7 @@ "@aws-amplify/platform-core": "^1.2.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" } } diff --git a/packages/backend/package.json b/packages/backend/package.json index b436de0b74e..106acaac429 100644 --- a/packages/backend/package.json +++ b/packages/backend/package.json @@ -40,7 +40,7 @@ "lodash.snakecase": "^4.1.1" }, "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0" }, "devDependencies": { diff --git a/packages/integration-tests/package.json b/packages/integration-tests/package.json index 7f394b28b8a..9943548811e 100644 --- a/packages/integration-tests/package.json +++ b/packages/integration-tests/package.json @@ -33,7 +33,7 @@ "@zip.js/zip.js": "^2.7.52", "aws-amplify": "^6.0.16", "aws-appsync-auth-link": "^3.0.7", - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0", "execa": "^8.0.1", "fs-extra": "^11.1.1", diff --git a/packages/plugin-types/package.json b/packages/plugin-types/package.json index d60ad1902cb..b5aa9f69956 100644 --- a/packages/plugin-types/package.json +++ b/packages/plugin-types/package.json @@ -11,7 +11,7 @@ }, "license": "Apache-2.0", "peerDependencies": { - "aws-cdk-lib": "^2.158.0", + "aws-cdk-lib": "^2.168.0", "constructs": "^10.0.0", "@aws-sdk/types": "^3.609.0" }, diff --git a/packages/sandbox/package.json b/packages/sandbox/package.json index ff96f119597..fbb7da66ab9 100644 --- a/packages/sandbox/package.json +++ b/packages/sandbox/package.json @@ -42,6 +42,6 @@ "@types/parse-gitignore": "^1.0.0" }, "peerDependencies": { - "aws-cdk": "^2.158.0" + "aws-cdk": "^2.168.0" } }