diff --git a/packages/@aws-cdk/aws-lambda-nodejs/lib/function.ts b/packages/@aws-cdk/aws-lambda-nodejs/lib/function.ts index 680a6f7330356..afa3d93d21a9b 100644 --- a/packages/@aws-cdk/aws-lambda-nodejs/lib/function.ts +++ b/packages/@aws-cdk/aws-lambda-nodejs/lib/function.ts @@ -34,8 +34,8 @@ export interface NodejsFunctionProps extends lambda.FunctionOptions { * The runtime environment. Only runtimes of the Node.js family are * supported. * - * @default - `NODEJS_12_X` if `process.versions.node` >= '12.0.0', - * `NODEJS_10_X` otherwise. + * @default - `NODEJS_14_X` if `process.versions.node` >= '14.0.0', + * `NODEJS_12_X` otherwise. */ readonly runtime?: lambda.Runtime; @@ -105,9 +105,9 @@ export class NodejsFunction extends lambda.Function { // Entry and defaults const entry = path.resolve(findEntry(id, props.entry)); const handler = props.handler ?? 'handler'; - const defaultRunTime = nodeMajorVersion() >= 12 - ? lambda.Runtime.NODEJS_12_X - : lambda.Runtime.NODEJS_10_X; + const defaultRunTime = nodeMajorVersion() >= 14 + ? lambda.Runtime.NODEJS_14_X + : lambda.Runtime.NODEJS_12_X; const runtime = props.runtime ?? defaultRunTime; super(scope, id, { diff --git a/packages/@aws-cdk/aws-lambda-nodejs/test/function.test.ts b/packages/@aws-cdk/aws-lambda-nodejs/test/function.test.ts index d898d312be92c..ce47a718b9e35 100644 --- a/packages/@aws-cdk/aws-lambda-nodejs/test/function.test.ts +++ b/packages/@aws-cdk/aws-lambda-nodejs/test/function.test.ts @@ -7,6 +7,7 @@ import { Runtime } from '@aws-cdk/aws-lambda'; import { Stack } from '@aws-cdk/core'; import { NodejsFunction } from '../lib'; import { Bundling } from '../lib/bundling'; +import { nodeMajorVersion } from '../lib/util'; jest.mock('../lib/bundling', () => { return { @@ -35,8 +36,13 @@ test('NodejsFunction with .ts handler', () => { entry: expect.stringContaining('function.test.handler1.ts'), // Automatically finds .ts handler file })); + const runtime = nodeMajorVersion() >= 14 + ? Runtime.NODEJS_14_X + : Runtime.NODEJS_12_X; + expect(stack).toHaveResource('AWS::Lambda::Function', { Handler: 'index.handler', + Runtime: runtime.name, }); });