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.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 266bb74706f84a68aec18482516e2be79a1519d45699d707f2d1b35d7d510e17 |
|
MD5 | cb98c602ba468a1eb15d99653aebaf08 |
|
BLAKE2b-256 | 2d7869fac1b005ebcb5a6a3a3cb82f6fe8519ab4ba5321607976271a83a58ed4 |
Close
Hashes for cloudsnorkel.cdk_turbo_layers-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d0f12ffa516f994f229837dcd44269a3ce2ce20ad6424c0fbf243cd2f267e8cd |
|
MD5 | 5ee94333050a9776165eb19be477c107 |
|
BLAKE2b-256 | 286671dd2bb1e3ec3913d98eef48bfcea5a7aefcf199a3798e686fa29b17b3ab |