Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vincentsarago/lambda-pyskel
Create skeleton of a python AWS Lambda function
https://github.com/vincentsarago/lambda-pyskel
aws-lambda gdal python rasterio serverless
Last synced: 3 months ago
JSON representation
Create skeleton of a python AWS Lambda function
- Host: GitHub
- URL: https://github.com/vincentsarago/lambda-pyskel
- Owner: vincentsarago
- License: bsd-3-clause
- Created: 2018-10-25T15:27:29.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2019-07-04T15:07:45.000Z (over 5 years ago)
- Last Synced: 2024-09-29T08:47:34.309Z (4 months ago)
- Topics: aws-lambda, gdal, python, rasterio, serverless
- Language: Python
- Size: 31.3 KB
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGES.txt
- License: LICENSE.txt
Awesome Lists containing this project
README
# lambda-pyskel
Create python AWS Lambda skeleton from templates.
[![Packaging status](https://badge.fury.io/py/lambda-pyskel.svg)](https://badge.fury.io/py/lambda-pyskel)
[![CircleCI](https://circleci.com/gh/vincentsarago/lambda-pyskel.svg?style=svg)](https://circleci.com/gh/vincentsarago/lambda-pyskel)
[![codecov](https://codecov.io/gh/vincentsarago/lambda-pyskel/branch/master/graph/badge.svg)](https://codecov.io/gh/vincentsarago/lambda-pyskel)Shameless inspiration from @sgillies https://github.com/mapbox/pyskel
## Install
You can install lambda-pyskel using pip
```bash
$ pip install -U pip
$ pip install lambda-pyskel
```or install from source:
```bash
$ git clone https://github.com/vincentsarago/lambda-pyskel.git
$ cd lambda-pyskel
$ pip install -U pip
$ pip install -e .
```## Templates
**Three** different templates are available:
- **simple**: simple python lambda function
- **rasterio**: include rasterio wheels
- **gdal**: include custom gdal (2.4.1) installation [from remotepixel docker image](https://github.com/RemotePixel/amazonlinux-gdal)Each templates has the following structure::
```
pyskel/ : main module
__init__.py
handler.py : handler function
tests/ : python tests
test_handler.py
test_mod.py
Dockerfile : Dockerfile to create the package.zip
LICENSE : BSD-2 license file
Makefile : make commands to create/tests the packages
README.md : Readme
setup.py : Python setup
tox.ini : tox template
```## Deployement Toolkit
In addition to python module templates, lambda-pyskel can also add
configuration files for **serverless** or **kes** toolkit.**kes**: http://devseed.com/kes/
**serverless**: https://serverless.com
## Usage
```bash
$ lps --help
Usage: lps [OPTIONS] NAMECreate new python AWS Lambda skeleton.
Options:
--version Show the version and exit.
--template [simple|rasterio|gdal] Use specific template (default: 'simple')
--serverless-toolkit [kes|serverless] Add deployement toolkit
--help Show this message and exit.
```Create a python lambda function with rasterio
```bash
$ lps yo --template rasterio
$ ls -1 yo
Dockerfile
LICENSE
Makefile
README.rst
setup.py
tests/
tox.ini
yo/# edit yo/handler.py and setup.py
$ make build
```## Contribution & Devellopement
Issues and pull requests are more than welcome.
**Dev install & Pull-Request**
```bash
$ git clone https://github.com/vincentsarago/lambda-pyskel.git
$ cd lambda-pyskel
$ pip install -e .[dev]
```*Python3.6 only*
This repo is set to use `pre-commit` to run *flake8*, *pydocstring* and *black* ("uncompromising Python code formatter") when committing new code.
```
$ pre-commit install
$ git add .
$ git commit -m'my change'
black....................................................................Passed
Flake8...................................................................Passed
Verifying PEP257 Compliance..............................................Passed
$ git push origin
```