Speed-up Lambda function deployment with dependency layers built in AWS
Project description
Turbo Layers for CDK
Speed up deployment of Lambda functions by creating dependency layers in AWS instead of locally.
- Easily separate dependency deployment from Lambda code deployment
- Never re-package dependencies just because of a small code change
- Never download another single dependency package locally again
- Never upload oversized code packages again
- Edit your code in the browser -- no more "deployment package too large to enable inline code editing" errors
- Uninstall Docker from your laptop and extend your battery life
- Take shorter coffee breaks when deploying
Supported Lambda runtimes:
- Python
- Node.js
- Ruby
- Java
API
The best way to browse API documentation is on Constructs Hub. It is available in all supported programming languages.
Installation
-
Confirm you're using CDK v2
-
Install the appropriate package
-
pip install cloudsnorkel.cdk-turbo-layers
-
npm i @cloudsnorkel/cdk-turbo-layers
-
<dependency> <groupId>com.cloudsnorkel</groupId> <artifactId>cdk.turbo-layers</artifactId> </dependency>
-
go get github.com/CloudSnorkel/cdk-turbo-layers-go/cloudsnorkelcdkturbolayers
-
dotnet add package CloudSnorkel.Cdk.TurboLayers
-
Example
const packager = new PythonDependencyPackager(this, 'Packager', {
runtime: lambda.Runtime.PYTHON_3_9,
type: DependencyPackagerType.LAMBDA,
});
new Function(this, 'Function with inline requirements', {
handler: 'index.handler',
code: lambda.Code.fromInline('def handler(event, context):\n import requests'),
runtime: lambda.Runtime.PYTHON_3_9,
// this will create a layer from with requests and Scrapy in a Lambda function instead of locally
layers: [packager.layerFromInline('inline requirements', ['requests', 'Scrapy'])],
});
new Function(this, 'Function with external source and requirements', {
handler: 'index.handler',
code: lambda.Code.fromAsset('lambda-src'),
runtime: lambda.Runtime.PYTHON_3_9,
// this will read pyproject.toml and poetry.lock and create a layer from the requirements in a Lambda function instead of locally
layers: [packager.layerFromPoetry('poetry requirements', 'lambda-src')],
});
Older Implementations
- lovage: standalone Python framework that uses the same trick to deploy decorated functions to AWS
- serverless-pydeps: plugin for Serverless Framework that speeds up deployment
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for cloudsnorkel.cdk-turbo-layers-0.0.2.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa1fb78ab354fee2ef0188bdefa5cfb43aef86d1a18e6e0f636515d714ccff28 |
|
MD5 | 2953b60f8eb0658622c281791aa08b9e |
|
BLAKE2b-256 | 36680863a237167da7449bac21073638295922ccc80cad6f28596b14ac34f956 |
Close
Hashes for cloudsnorkel.cdk_turbo_layers-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d819e21346f110f52537f9ce9b31a50532a0c369d8189ded41f13dc266d0c8a |
|
MD5 | 4555fec3bdbcb214d251353bac7d6eff |
|
BLAKE2b-256 | 581e4e6b52ad8856b4eecfc0bf61fc35b9ec0ee2eaaca14b29ef7a61bdad7a60 |