AWS CDK based lambda layer including useful utilities.
Project description
B.CfnLambdaLayer
An AWS CDK resource that adds additional functionality to LayerVersion
lambda layer resource.
Description
TODO
AWS CDK already makes it incredibly simple to package code for lambda functions and
layers by exposing Code
resource and methods like Code.from_asset()
. This custom layer resource
makes packaging code even more convenient.
Remarks
Biomapas aims to modernise life-science industry by sharing its IT knowledge with other companies and the community. This is an open source library intended to be used by anyone. Improvements and pull requests are welcome.
Related technology
- Python3
- Docker
- AWS CDK
- AWS CloudFormation
- AWS Lambda
- AWS Lambda Layer
- AWS Lambda Layer bundling with Docker
Assumptions
This project assumes you know what Lambda functions are and how code is being shared between them (Lambda layers).
- Excellent knowledge in IaaC (Infrastructure as a Code) principles.
- Excellent knowledge in Lambda functions and Lambda layers.
- Good experience in AWS CDK and AWS CloudFormation.
- Good Python skills and basis of OOP.
Useful sources
- AWS CDK:
https://docs.aws.amazon.com/cdk/api/latest/docs/aws-construct-library.html - AWS CloudFormation:
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html - Lambda layers:
https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html - Lambda layers in AWS CDK:
https://docs.aws.amazon.com/cdk/api/latest/python/aws_cdk.aws_lambda/README.html
Install
Before installing this library, ensure you have these tools setup:
- Python / Pip
- AWS CDK
- Docker
To install this project from source run:
pip install .
Or you can install it from a PyPi repository:
pip install b-cfn-lambda-layer
Usage & Examples
from aws_cdk.aws_lambda import Function, Code, Runtime
from aws_cdk.core import Stack
from b_cfn_lambda_layer.lambda_layer import LambdaLayer
from b_cfn_lambda_layer.package_version import PackageVersion
# Create a function with layer.
Function(
scope=Stack(...),
id='MyFunction',
code=Code.from_asset('/path/to/lambda/function/code'),
handler='index.handler',
runtime=Runtime.PYTHON_3_6,
# Specify layers.
layers=[
LambdaLayer(
scope=Stack(...),
name='TestLayer',
source_path='/path/to/your/layer/source/code',
code_runtimes=[Runtime.PYTHON_3_6, Runtime.PYTHON_3_7, Runtime.PYTHON_3_8],
# You can conveniently specify dependencies to include.
dependencies={
'python-jose': PackageVersion.from_string_version('3.3.0'),
'boto3': PackageVersion.from_string_version('1.16.35'),
'botocore': PackageVersion.from_string_version('1.19.35')
}
)
]
)
Testing
This package has integration tests based on pytest. To run tests simply run:
pytest b_cfn_lambda_layer_test/integration/tests
Contribution
Found a bug? Want to add or suggest a new feature? Contributions of any kind are gladly welcome. You may contact us directly, create a pull-request or an issue in github platform. Lets modernize the world together.
Release history
0.0.2
- Add documentation.
0.0.1
- Initial build.
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 b_cfn_lambda_layer-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89b7c29d26325a27e65b5f03bae7990256c82ecc2c846e76247fec4a5589813f |
|
MD5 | f7004d5e9660bf8ecd8919fad51f92ce |
|
BLAKE2b-256 | bfd22c01df36257aaa0e592b8fe15f3a3ad2d5da88cc38329b55abeb673c35ad |