DEADSEC-SECURITY / aws-cdk-code-builder

A Library that extends the aws_lambda.Code.from_asset and allows for auto packaging of the project

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

AWS CDK Code Builder GitHub tag (latest SemVer) Python_Version GitHub

PyPI - Downloads PyPI - Downloads PyPI - Downloads

This library work very similarly to how AWS sam build works. It will find the requirements.txt file and install all libraries and package them together with your code to then ship to a lambda function.

πŸ“ CONTRIBUTIONS

Before doing any contribution read CONTRIBUTING.

πŸ“§ CONTACT

Email: amng835@gmail.com

General Discord: https://discord.gg/dFD5HHa

Developer Discord: https://discord.gg/rxNNHYN9EQ

πŸ“₯ INSTALLING

Latest PyPI stable release

pip install aws-cdk-code-builder

βš™ HOW TO USE

Folder tree (Simplified)

cdk_project
     | -- lambda_function
     |          | -- main.py
     | -- cdk_project
     |         | -- __init__.py
     |         | -- cdk_project_stack.py
     | -- app.py
     | -- ...

File: cdk_project_stack.py

import os
import aws_cdk
from aws_cdk import aws_lambda as lambda_
from aws_cdk_code_builder import Build

CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
PARENT_PATH = os.path.dirname(CURRENT_DIR)
LAMBDA_CODE = os.path.join(PARENT_PATH, 'lambda_function')


class CdkProjectStack(aws_cdk.Stack):
    def __init__(self, scope: aws_cdk.Construct, construct_id: str, **kwargs) -> None:
        super().__init__(scope, construct_id, **kwargs)
        
        # This is a simplified representation of Function, more params are needed for it to compile
        lambda_.Function(
            code=Build(
                project_path=LAMBDA_CODE,
                work_dir=PARENT_PATH
            ).build(),
        )

🀝 PARAMETERS

  • project_path : str, required
    • Path to the lambda function code
  • work_dir : str, required
    • Path to the working directory.
    • Note: Build folder will be created in this path (build/)

About

A Library that extends the aws_lambda.Code.from_asset and allows for auto packaging of the project

License:Apache License 2.0


Languages

Language:Python 100.0%