A simple, per-project AWS Lambda Layer manager.
Project description
awslayer-manager
This a simple tool to build and upload your project requirements as an AWS Lambda Layer. It extracts the requirements
from your Pipfile and installs them into a separate directory which it's deployed from. This package also supports
working with the high performance mysqlclient
library by compiling it inside a docker container that closely mimics
the AWS Lambda environment and deploying it with the layer.
Installation
To install this package, run
pip install awslayer-manager
Requirements
- Requires your project to be using
Serverless
- Requires environment management with
Pipenv
- This package requires
Docker
if you're planning to work withmysqlclient
. If not, you can omit it.
Running
To initialize the layer run
awslayer init
in the project directory. This will extract requirements from your Pipfile and create a serverless.yml inside the layer directory. Once the layer is initialized, run the following command:
awslayer deploy
which will install all the requirements inside the layers/package
directory and deploy it using sls deploy
. Once
that is done, add the following for each function in your project's serverless.yml:
functions:
func-name:
handler: src/handler.func-name
layers:
- "${cf:stack-name.ServiceNameLayerLambdaLayerQualifiedArn}"
where you can find the "ServiceNameLayerLambdaLayerQualifiedArn" identifier in the CloudFormation stack.
To update requirements and runtime, run:
awslayer update
NOTE: This package will create a layer
directory inside your project which I recommend adding to your
.gitignore file as it is fairly heavy (depending on the size of your requirements)
Contributing
Pull requests are welcome.
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
Hashes for awslayer_manager-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5501d6838e459a8eec36c30a549aa9792f040fe192810f56db155b394e400839 |
|
MD5 | 06fc5078ae9df0366389141d3a66d7f5 |
|
BLAKE2b-256 | dd0051d24dcb19eef681c113a7c403b339e6675649429d33ff8139e5cc0a80fb |