FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

lambci/node-custom-lambda: A custom runtime for AWS Lambda to execute functions in Node.js v10.x or v12.x · GitHub

Latest commit

 

History

111 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Node.js 10.x and 12.x for AWS Lambda

A custom runtime for AWS Lambda to execute functions in Node.js 10.x or 12.x

Getting Started

Save as index.js:

exports.handler = async(event, context) => {
  console.log(`Hi from Node.js ${process.version} on Lambda!`)
  console.log(`There is ${context.getRemainingTimeInMillis()}ms remaining`)
  return event
}

Then bundle up into a zipfile – this is your function bundle:

zip -yr lambda.zip index.js  # add node_modules too if you have any

Create a new Lambda function and choose the custom runtime option.

Select your lambda.zip as the "Function code" and make the handler "index.handler".

Then click on Layers and choose "Add a layer", and "Provide a layer version ARN" and enter the following ARN:

arn:aws:lambda:us-east-1:553035198032:layer:nodejs12:41

Or use this link and pick your function from the "Function name" auto-suggest.

Then save your lambda and test it with a test event!

Current Version ARNs

Node.js version ARN
10.24.1 arn:aws:lambda:<region>:553035198032:layer:nodejs10:31
12.22.1 arn:aws:lambda:<region>:553035198032:layer:nodejs12:41

Previous Version ARNs

Node.js version ARN
10.24.0 arn:aws:lambda:<region>:553035198032:layer:nodejs10:30
12.21.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:40
12.20.2 arn:aws:lambda:<region>:553035198032:layer:nodejs12:39
10.23.3 arn:aws:lambda:<region>:553035198032:layer:nodejs10:29
12.20.1 arn:aws:lambda:<region>:553035198032:layer:nodejs12:38
10.23.1 arn:aws:lambda:<region>:553035198032:layer:nodejs10:28
12.20.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:37
10.23.0 arn:aws:lambda:<region>:553035198032:layer:nodejs10:27
12.19.1 arn:aws:lambda:<region>:553035198032:layer:nodejs12:36
12.19.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:35
10.22.1 arn:aws:lambda:<region>:553035198032:layer:nodejs10:26
12.18.4 arn:aws:lambda:<region>:553035198032:layer:nodejs12:34
10.22.0 arn:aws:lambda:<region>:553035198032:layer:nodejs10:25
12.18.3 arn:aws:lambda:<region>:553035198032:layer:nodejs12:33
12.18.2 arn:aws:lambda:<region>:553035198032:layer:nodejs12:32
10.21.0 arn:aws:lambda:<region>:553035198032:layer:nodejs10:24
12.18.1 arn:aws:lambda:<region>:553035198032:layer:nodejs12:31
12.18.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:30
10.20.1 arn:aws:lambda:<region>:553035198032:layer:nodejs10:23
12.17.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:29
12.16.3 arn:aws:lambda:<region>:553035198032:layer:nodejs12:28
12.16.2 arn:aws:lambda:<region>:553035198032:layer:nodejs12:26
10.20.0 arn:aws:lambda:<region>:553035198032:layer:nodejs10:22
12.16.1 arn:aws:lambda:<region>:553035198032:layer:nodejs12:25
10.19.0 arn:aws:lambda:<region>:553035198032:layer:nodejs10:21
12.16.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:24
12.15.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:23
10.18.1 arn:aws:lambda:<region>:553035198032:layer:nodejs10:20
12.14.1 arn:aws:lambda:<region>:553035198032:layer:nodejs12:22
10.18.0 arn:aws:lambda:<region>:553035198032:layer:nodejs10:19
12.14.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:21
10.17.0 arn:aws:lambda:<region>:553035198032:layer:nodejs10:18
12.13.1 arn:aws:lambda:<region>:553035198032:layer:nodejs12:20
12.13.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:19
10.16.3 arn:aws:lambda:<region>:553035198032:layer:nodejs10:17
12.12.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:18
12.11.1 arn:aws:lambda:<region>:553035198032:layer:nodejs12:17
12.11.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:16
12.10.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:15
12.9.1 arn:aws:lambda:<region>:553035198032:layer:nodejs12:14
12.9.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:13
12.8.1 arn:aws:lambda:<region>:553035198032:layer:nodejs12:12
10.16.2 arn:aws:lambda:<region>:553035198032:layer:nodejs10:16
12.8.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:11
12.7.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:10
10.16.1 arn:aws:lambda:<region>:553035198032:layer:nodejs10:15
10.16.0 arn:aws:lambda:<region>:553035198032:layer:nodejs10:14
12.6.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:9
12.5.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:8
12.4.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:7
12.3.1 arn:aws:lambda:<region>:553035198032:layer:nodejs12:6
10.15.3 arn:aws:lambda:<region>:553035198032:layer:nodejs10:13
12.3.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:5
12.2.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:4
12.1.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:2
12.0.0 arn:aws:lambda:<region>:553035198032:layer:nodejs12:1
11.14.0 arn:aws:lambda:<region>:553035198032:layer:nodejs11:17
11.13.0 arn:aws:lambda:<region>:553035198032:layer:nodejs11:16
11.12.0 arn:aws:lambda:<region>:553035198032:layer:nodejs11:13
11.11.0 arn:aws:lambda:<region>:553035198032:layer:nodejs11:11
11.10.1 arn:aws:lambda:<region>:553035198032:layer:nodejs11:10
10.15.2 arn:aws:lambda:<region>:553035198032:layer:nodejs10:7
10.15.1 arn:aws:lambda:<region>:553035198032:layer:nodejs10:6
11.10.0 arn:aws:lambda:<region>:553035198032:layer:nodejs11:9
11.9.0 arn:aws:lambda:<region>:553035198032:layer:nodejs11:8
11.8.0 arn:aws:lambda:<region>:553035198032:layer:nodejs11:7
10.15.0 arn:aws:lambda:<region>:553035198032:layer:nodejs10:5
11.7.0 arn:aws:lambda:<region>:553035198032:layer:nodejs11:6
11.6.0 arn:aws:lambda:<region>:553035198032:layer:nodejs11:5
10.14.2 arn:aws:lambda:<region>:553035198032:layer:nodejs10:3
11.4.0 arn:aws:lambda:<region>:553035198032:layer:nodejs11:4
10.14.1 arn:aws:lambda:<region>:553035198032:layer:nodejs10:1
11.3.0 arn:aws:lambda:<region>:553035198032:layer:nodejs11:1

Things to be aware of

  • This is a no-batteries-included runtime – you'll need to zip up any node_modules dependencies, including aws-sdk with your lambda function
  • It does not monkeypatch console.log, console.error, etc functions to add extra timestamps and request IDs to each line you log as the official runtimes do. I believe this leads to fewer surprises and cleaner logs that are easier to parse by various tools – but if you're relying on this behaviour you'll need to add these fields yourself.
  • Cold start overhead of ~240ms for Node.js 10.x and ~260ms for 12.x – this is due to Node.js' increasingly slow startup time, but they're working on it!

About

A custom runtime for AWS Lambda to execute functions in Node.js v10.x or v12.x

Resources

Stars

221 stars

Watchers

6 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages


Back | FazBrowse Home | New Git URL