Interface NodejsFunctionProps

All Superinterfaces:
EventInvokeConfigOptions, FunctionOptions, software.amazon.jsii.JsiiSerializable
All Known Implementing Classes:
NodejsFunctionProps.Jsii$Proxy

@Generated(value="jsii-pacmak/1.127.0 (build 2117ad5)", date="2026-04-14T18:31:58.452Z") @Stability(Stable) public interface NodejsFunctionProps extends software.amazon.jsii.JsiiSerializable, FunctionOptions
Properties for a NodejsFunction.

Example:

 NodejsFunction.Builder.create(this, "my-handler")
         .bundling(BundlingOptions.builder()
                 .network("host")
                 .securityOpt("no-new-privileges")
                 .user("user:group")
                 .volumesFrom(List.of("777f7dc92da7"))
                 .volumes(List.of(DockerVolume.builder().hostPath("/host-path").containerPath("/container-path").build()))
                 .build())
         .build();
 
  • Method Details

    • getAwsSdkConnectionReuse

      @Stability(Stable) @Nullable default Boolean getAwsSdkConnectionReuse()
      The AWS_NODEJS_CONNECTION_REUSE_ENABLED environment variable does not exist in the AWS SDK for JavaScript v3.

      This prop will be deprecated when the Lambda Node16 runtime is deprecated on June 12, 2024. See https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy

      Info for Node 16 runtimes / SDK v2 users:

      Whether to automatically reuse TCP connections when working with the AWS SDK for JavaScript v2.

      This sets the AWS_NODEJS_CONNECTION_REUSE_ENABLED environment variable to 1.

      Default: - false (obsolete) for runtimes >= Node 18, true for runtimes invalid input: '<'= Node 16.

      See Also:
    • getBundling

      @Stability(Stable) @Nullable default BundlingOptions getBundling()
      Bundling options.

      Default: - use default bundling options: no minify, no sourcemap, all modules are bundled.

    • getCode

      @Stability(Stable) @Nullable default Code getCode()
      The code that will be deployed to the Lambda Handler.

      If included, then properties related to bundling of the code are ignored.

      • If the code field is specified, then you must include the handler property.

      Default: - the code is bundled by esbuild

    • getDepsLockFilePath

      @Stability(Stable) @Nullable default String getDepsLockFilePath()
      The path to the dependencies lock file (yarn.lock, pnpm-lock.yaml, bun.lockb, bun.lock or package-lock.json).

      This will be used as the source for the volume mounted in the Docker container.

      Modules specified in nodeModules will be installed using the right installer (yarn, pnpm, bun or npm) along with this lock file.

      Default: - the path is found by walking up parent directories searching for a `yarn.lock`, `pnpm-lock.yaml`, `bun.lockb`, `bun.lock` or `package-lock.json` file

    • getEntry

      @Stability(Stable) @Nullable default String getEntry()
      Path to the entry file (JavaScript or TypeScript).

      If this is a relative path, it will be evaluated with respect to the JavaScript/TypeScript source file that instantiates the NodejsFunction construct. If the current project is not a Node project, relative paths are not reliable and absolute paths should be used.

      This file should be located underneath the projectRoot directory (by default, the directory containing the package manager's lock file).

      If omitted, the entry file will be derived from the TypeScript/JavaScript file that instantiates the NodejsFunction construct, and the construct identifier of the NodejsFunction construct, in the following way:

       <filename>.<construct-id>.(ts|js)
       // Example, if stack.ts contains the following:
       new NodejsFunction(this, 'my-handler', { ... });
       // Then the implicit entry point(s) will be
       stack.my-handler.ts
       stack.my-handler.js
       

      Again: if the current project is not a Node project this is not reliable, and instead explicit, absolute paths should be used.

      Default: - (Realible in Node projects only) derived from the defining file's name and construct ID as described in the documentation.

    • getHandler

      @Stability(Stable) @Nullable default String getHandler()
      The name of the exported handler in the entry file.

      • If the code property is supplied, then you must include the handler property. The handler should be the name of the file that contains the exported handler and the function that should be called when the AWS Lambda is invoked. For example, if you had a file called myLambda.js and the function to be invoked was myHandler, then you should input handler property as myLambda.myHandler.
      • If the code property is not supplied and the handler input does not contain a ., then the handler is prefixed with index. (index period). Otherwise, the handler property is not modified.

      Default: handler

    • getProjectRoot

      @Stability(Stable) @Nullable default String getProjectRoot()
      The path to the directory containing project config files (package.json or tsconfig.json).

      Default: - the directory containing the `depsLockFilePath`

    • getRuntime

      @Stability(Stable) @Nullable default Runtime getRuntime()
      The runtime environment.

      Only runtimes of the Node.js family are supported.

      Default: `Runtime.NODEJS_LATEST` if the `@aws-cdk/aws-lambda-nodejs:useLatestRuntimeVersion` feature flag is enabled, otherwise `Runtime.NODEJS_16_X`

    • builder

      @Stability(Stable) static NodejsFunctionProps.Builder builder()
      Returns:
      a NodejsFunctionProps.Builder of NodejsFunctionProps