Skip to content

keithrozario/cdk-klayers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python 3.10 Python 3.11 Python 3.12 Code style: black

CDK-Klayers

Use Klayers within your CDK Stacks.

Install

pip install cdk-klayers

Usage (short version)

Simply use the Klayers Class within your CDK Stack. You will need to specify a runtime and region for it to work.

from cdk_klayers import Klayers

class MockStack(Stack):

    def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        runtime = aws_lambda.Runtime.PYTHON_3_12

        # Initialize Klayers 
        klayers = Klayers(
            self,
            python_version = runtime
            region = "ap-southeast-1"
        )
    
        # get the latest layer version for the requests package
        requests_layer = klayers.layer_version(self, "requests")

        lambda_function = aws_lambda.Function(
            self, 'HelloHandler',
            runtime=runtime,
            layers=[requests_layer],
            code=aws_lambda.Code.from_asset('lambda'),
            handler='hello.handler'
        )

Usage (long version)

This example shows a fully working CDK stack that deploys a single lambda function with 2 layers from Klayers. The region of the stack was inferred from the CDK Environment.

from aws_cdk import aws_lambda
from aws_cdk import App, Environment, Stack
from aws_cdk import Aws
from constructs import Construct

from cdk_klayers import Klayers

class MockStack(Stack):

    def __init__(self, scope: Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)

        runtime = aws_lambda.Runtime.PYTHON_3_12

        # Initialize Klayers 
        klayers = Klayers(
            self,
            python_version = runtime
        )
    
        # get the latest layer version for the requests package
        requests_layer = klayers.layer_version(self, "requests")
        idna_layer = klayers.layer_version(self, "idna", layer_version="2")

        lambda_function = aws_lambda.Function(
            self, 'HelloHandler',
            runtime=runtime,
            layers=[requests_layer, idna_layer],
            code=aws_lambda.Code.from_asset('lambda'),
            handler='hello.handler'
        )


app = App()
env = Environment(region="us-east-1")
mock_stack =MockStack(app, "test", env=env)

Other Notes

We're still in beta, this might change. Please raise an issue if you have any feedback.

About

Klayers and CDK Python integration

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages