Giter Club home page Giter Club logo

zerv's Introduction

Zerv ๐Ÿ”ฅ

Yet another AWS Lambda [+ API Gateway] CLI deployment tool.

IMPORTANT

This is a draft-project which means a lot, if not all, could change in next couple of weeks.

Documentation

No docs for the time being.

This will create/update a lambda function and if you want you can attach a API Gateway trigger to it.

Usage

For the time being the only way you can test is:

python zerv/handler.py

python zerv/handler.py --dir=/path/to/your/project

python zerv/handler.py --function=prt_mx_rfc_validation

This uses Boto3 so you need to check credentials config for it

Settings

It will look like:

Project settings

project:
  name: 'default'
  root_dir: 'lambdas'
  settings_file: 'settings'
  source_code_folder: 'code'
  requirements_file: 'requirements.txt'
  precompiled_packages: 
    - requests: "/path/to"

permissions:
  iam_role: "arn:aws:iam::9848734876:role/AROLE"

execution:
  timeout: 300
  memory_size: 128

Function settings

api_gateway:
  enabled: true
  endpoint: null
  stage: default

environment:
  required_variables:
    - ENV

function:
  description: "My fancy description"
  arn: "some ARN so it doesnt create a new one"
  name: "some name so it doesn't create a new one"
  runtime: python3.6
  handler: handler

Default settings

project:
  name: 'Zerv Project'
  root_dir: 'lambdas'
  settings_file: 'settings'
  source_code_folder: 'code'
  requirements_file: 'requirements.txt'
  precompiled_packages: ~

function:
  arn: ~
  description: ~
  handler: handler
  name: ~
  requirements_file: 'requirements.txt'
  runtime: python3.6
  append_project_name: true

  api_gateway:
    enabled: false
    endpoint: ~
    stage: default

permissions:
  iam_role: ~

execution:
  timeout: 300
  memory_size: 128

environment:
  required_variables: ~
  source_path: ~

Contributors:

TODOs

  • Read/install requirements.txt
  • Only install packages compatible with manylinux
  • Include environment variables
  • Documentation
  • Replace argparse with click
  • Handle errors properly
  • ...

CONTRIBUTING

Please don't do it... yet, this a draft-project with a lot of spaghetti-code, bad practices and not even ready for being a PyPi package, and of course, I'll squash several commits. If you're interested please drop me an email: henocdz [AT] gmail

If curious...

  • Create a virtualenv
  • Clone the project
  • cd zerv
  • pip install -e .

Thx

zerv's People

Contributors

henocdz avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.