Source code for api.l3x.in

February 16, 2020 · View on GitHub

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