bisslog-lambda-aws is a lightweight Python library for integrating AWS Lambda with a clean, hexagonal architecture. It helps decouple domain logic from infrastructure by generating AWS-compatible handlers and deployment packages — all from metadata.
Project description
bisslog-lambda-aws
bisslog-lambda-aws is a lightweight Python library for integrating AWS Lambda with a clean, hexagonal architecture. It helps decouple domain logic from infrastructure by generating AWS-compatible handlers and deployment packages — all from metadata.
✨ Features
- 🧱 Hexagonal architecture-first: Keeps your domain logic isolated from AWS-specific code.
- ⚙️ Automatic Lambda handler generation: Based on YAML/JSON metadata.
- 📦 ZIP packager for deployment: Easily create deployable
.ziparchives. - 🧪 CLI for automation: Analyze, generate and package with terminal commands.
📦 Installation
pip install bisslog-lambda-aws
🚀 Command Line Interface (CLI)
The library includes a CLI tool for metadata-driven Lambda handler generation and packaging.
bisslog_aws_lambda <command> [options]
Available Commands
🔍 print_lambda_handlers
Prints the generated AWS Lambda handlers to stdout without creating any files.
Example
bisslog_aws_lambda print_lambda_handlers \
--metadata-file ./metadata/use_cases.yaml \
--use-cases-folder-path ./src/domain/use_cases
Options
-
--metadata-file: Path to the metadata file (YAML or JSON). [required] -
--use-cases-folder-path: Path to the folder containing use case classes. [required] -
--filter-uc: Optional regex to filter which use cases are processed. -
--encoding: File encoding (default: utf-8).
💾 generate_lambda_handlers
Generates AWS Lambda handler Python files and saves them to a specified folder.
Example
bisslog_aws_lambda generate_lambda_handlers \
--metadata-file ./metadata/use_cases.yaml \
--use-cases-folder-path ./src/domain/use_cases \
--target-folder ./generated_handlers
Options
-
--metadata-file: Path to the metadata file. [required] -
--use-cases-folder-path: Folder with use case classes. [required] -
--target-folder: Folder where the generated handlers will be saved. [required] -
--filter-uc: Optional use case name filter (regex). -
--encoding: File encoding (default: utf-8).
📦 generate_lambda_zips
Packages AWS Lambda handlers into .zip files ready for deployment.
Example
bisslog_aws_lambda generate_lambda_zips \
--handler-name user_create_handler \
--src-folders ./src ./libs \
--handlers-folder ./generated_handlers
Options
-
--handler-name: Name of the Lambda handler to package. [required] -
--src-folders: One or more source folders to include in the ZIP. [required] -
--handlers-folder: Folder where handler files are located. [required]
✅ Requirements
Python 3.7+
AWS Lambda-compatible Python project
🔧 Development
git clone https://github.com/your-org/bisslog-lambda-aws.git
cd bisslog-lambda-aws
pip install -e .
📜 License
This project is licensed under the MIT License. See the LICENSE file for details.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bisslog_aws_lambda-0.0.1.tar.gz.
File metadata
- Download URL: bisslog_aws_lambda-0.0.1.tar.gz
- Upload date:
- Size: 38.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7450d3dda26b7f37ca88dfa802687f6e985fc2757840394b6615fffa9c76bb7c
|
|
| MD5 |
20ff81a9c9b05d3ed818f6816acfef3a
|
|
| BLAKE2b-256 |
3c86f82b165aa0467bb35e2c89eac8a32d27ea6ba3420ca3949115f6086656f1
|
File details
Details for the file bisslog_aws_lambda-0.0.1-py3-none-any.whl.
File metadata
- Download URL: bisslog_aws_lambda-0.0.1-py3-none-any.whl
- Upload date:
- Size: 35.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
60aeda921f6087319e8f59a14f7128da5df81b6084c6213ae3e06be604ad9cbb
|
|
| MD5 |
6436622b52bb56065332f706631b7e01
|
|
| BLAKE2b-256 |
05268066df44c2d5d0da082c905bda378c2eb30e677aa985e57bf033710178cc
|