GitHub - levarne/aws-cdk-webpack-lambda-function: This library provides constructs for Node.js Lambda function bundled using webpack. · GitHub
Skip to content
 
 

Latest commit

 

History

25 Commits

Folders and files

Repository files navigation

aws-cdk-webpack-lambda-function

forked from @aws-cdk/aws-lambda-nodejs

This library provides constructs for Node.js Lambda function bundled using webpack.

Quick Start

  1. install using yarn:

    yarn add -D aws-cdk-webpack-lambda-function @aws-cdk/core @aws-cdk/aws-lambda webpack webpack-cli
    # npm i -D aws-cdk-webpack-lambda-function @aws-cdk/core @aws-cdk/aws-lambda webpack webpack-cli
  2. add webpack.config.js:

    module.exports = {
      mode: 'production', // production or development
      target: 'node',
      externals: [/^aws-sdk(\/.+)?$/], // important!!!
      devtool: 'source-map', // if needed
      optimization: { minimize: false }, // if needed
      // for TypeScript
      module: {
        rules: [
          {
            test: /\.ts$/,
            use: {
              loader: 'ts-loader',
              options: {
                configFile: 'your/path/to/tsconfig.json', // if needed
                // colors: true,
                // logInfoToStdOut: true,
                // logLevel: 'INFO',
                transpileOnly: true,
              },
            },
            exclude: /node_modules/,
          },
         ],
      },
      resolve: {
        extensions: ['.js', '.ts'],
      },
    }
  3. (Optional) add tsconfig.json for lambda

    {
      "extends": "../ ... /tsconfig.json",
      "compilerOptions": {
        "importHelpers": false,
        "target": "ES2018",
        "noEmit": false
      }
    }
  4. your cdk source code:

    import { WebpackFunction } from 'aws-cdk-webpack-lambda-function'
    
    new WebpackFunction(this, 'YourFunction', {
      entry: 'your/path/to/function.ts',
      config: 'your/path/to/webpack.config.js',
    })

Options

entry: string (required)

Path to the entry file (JavaScript or TypeScript).

config: string (required)

Path to webpack config file.

handler: string

The name of the exported handler in the entry file.

default: "handler"

runtime: lambda.Runtime

The runtime environment. Only runtimes of the Node.js family are supported.

default: NODEJS_12

buildDir: string

The build directory.

default: .build in the entry file directory

...other options

All other properties of lambda.Function are supported, see also the AWS Lambda construct library.

About

This library provides constructs for Node.js Lambda function bundled using webpack.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages