core-aws-cdk#
This project contains common elements and constructs to create infrastructure in AWS using AWS CDK with Python.
Documentation Contents#
Index:
Additional Resources:
Features#
Base Stacks: Pre-configured CDK stacks with tagging support
Lambda Functions: Simplified Lambda creation with automatic packaging
S3 Buckets: S3 bucket creation with security best practices
SQS Queues: Queue creation with dead-letter queue support
SNS Topics: Topic creation with subscription management
Network Stack: VPC and networking resource management
ZIP Asset Packaging: Automatic Lambda ZIP creation with dependencies
Installation#
Install from PyPI using pip:
pip install core-aws-cdk
uv pip install core-aws-cdk # Or using UV...
pip install -e ".[dev]" # For development...
Setting Up Environment#
Install required libraries:
pip install --upgrade pip
pip install virtualenv
Create Python virtual environment:
virtualenv --python=python3.12 .venv
Activate the virtual environment:
source .venv/bin/activate
Install packages#
pip install .
pip install -e ".[dev]"
Check tests and coverage#
python manager.py run-tests
python manager.py run-tests --test-type integration
python manager.py run-coverage
# Having proper AWS credentials...
python manager.py run-tests --test-type functional --pattern "*.py"
# Or using `pytest`...
pytest -n auto
Run specific test file:
pytest tests/functional/test_lambda_creation.py
Run specific test:
pytest tests/functional/test_lambda_creation.py::TestLambdaCreation::test_create_and_invoke_lambda_with_inline_code
Run tests in parallel using all CPUs:
pytest -n auto
Run with specific number of workers:
pytest -n 4 # Use 4 parallel workers
Run functional tests with limited parallelism (recommended):
pytest tests/functional/ -n 2 # Avoid AWS rate limits
IMPORTANT: Functional tests deploy real resources to AWS and may incur costs and require AWS credentials configured.
Prerequisites#
AWS credentials configured.
CDK CLI installed npm install -g aws-cdk.
Required AWS permissions: * Lambda (create, invoke, delete) * S3 (create bucket, put/get objects, delete) * SNS (create topic, publish) * SQS (create queue, send/receive messages) * CloudFormation (create/update/delete stacks) * IAM (create roles and policies)
Important Notes:
Tests automatically clean up resources after completion
Each test uses temporary directories and unique resource names
Tests include 10-minute timeouts for deployment and cleanup
All logs captured with DEBUG level for troubleshooting
Contributing#
Contributions are welcome! Please:
Fork the repository
Create a feature branch
Write tests for new functionality
Ensure all tests pass:
pytest -n autoRun linting:
pylint core_aws_cdkRun security checks:
bandit -r core_aws_cdkSubmit a pull request
License#
This project is licensed under the MIT License. See the LICENSE file for details.
Links#
Support#
For questions or support, please open an issue on GitLab or contact the maintainers.