Skip to content

shaftoe/api-l3x-in

Repository files navigation

Source code for api.l3x.in

License Python Serverless Lambda SNS CDK

Source code that powers REST APIs at https://api.l3x.in/

Setup

Create a config.mk file using config.example.mk as template, then run:

make all

Architecture

AWS CDK man app and stacks are responsible for deploying/destroying all the things, no interaction whatsoever needed via the web console.

Each applications live in a dedicated Python package under the lib/stacks folder.

The stack package includes the CDK code required for deployment (in __init__.py) and the .py Lambda files.

Project code structure

.# CLI utilities
├── bin/
│
├── lib/
│   │ # Main CDK application
│   ├── cdk.py
│   │
│   │ # CDK stacks
│   ├── stacks
│   │   │
│   │   ├── <stack_1>
│   │   │   ├── __init__.py  # CDK resources
│   │   │   └── ...          # all the rest, including Lambda code, Lambda Layers packages, etc.
│   │   │
│   │   └── <stack_2>
│   │       ├── __init__.py
│   │       └── ...
│   │
│   │ # Shared library
│   └── utils/
│
│ # To enable contrubutions and maintainability
├── CHANGELOG.md
├── LICENSE
├── README.md
│
├── Makefile  # Various commands, like `deploy`, `diff`, etc.
├── VERSION   # Source of truth for current VERSION of this software
│
│ # CDK metadata
├── cdk.context.json
├── cdk.json
│
│ # ENV variables template for `config.mk` file
├── config.config.mk
│
│ # Unit tests
└── test/

Contributions / Contacts

Pull requests are welcome.

You can also send me a message from the blog contact page... or a POST request to https://api.l3x.in/contact if you don't like browsers ;)

Commit messages and CHANGELOG

Following Conventional Commits specification to easily keep the CHANGELOG up to date