Skip to main content

Tool to streamline the build of python lambda functions.

Project description

circle pypi version apache license

Juniper is a packaging tool with a with a single purpose in mind: stream and standardize the creation of a zip artifact for a set of AWS Lambda functions.

Packaging of python lambda functions is a problem a web developer faces when building web APIs using AWS services. The main issue is that the dependencies of the function must be included along with the business logic of the function.

This tool does not deploy or update a lambda function in AWS. This tool is used to generate a set of .zip files contaning dependencies and shared libraries, which you can use to deploy a lambda function.

Quickstart

With Python==3.6 and Docker installed, install juniper:

> pip install juniper

Go to the code you are packaging and define a configuration for your functions, ex in manifest.yml:

functions:
router:                                         # Name of the lambda function (result in router.zip artifact)
    requirements: ./src/router/requirements.txt.  # Path to reqs file
    include:
    - ./src/commonlib/mylib                     # Path for inclusion in code
    - ./src/router_function/router.             # Path for inclusion in code

Build it!

> juni build

Your .zip is now in the dist/ directory. 🎉

Features

This list defines the entire scope of Juniper. Nothing more, nothing else.

  • Minimal manifest file to define packaging

  • Using docker containers as a way to install dependencies and generate the artifacts

  • Ability to tailor the requirements.txt per lambda

  • Create an individual zip artifact for multiple lambda functions

  • Ability to include shared dependencies (python modules relative to the function being packaged)

Contributing

For guidance on setting up a development environment and how to make a contribution to Juniper, see the contributing guidelines.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

juniper-0.2.1.tar.gz (13.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

juniper-0.2.1-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file juniper-0.2.1.tar.gz.

File metadata

  • Download URL: juniper-0.2.1.tar.gz
  • Upload date:
  • Size: 13.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.6.5

File hashes

Hashes for juniper-0.2.1.tar.gz
Algorithm Hash digest
SHA256 ea2ba704b074c18cc10801aab0295d005f5300c2e612f0dace202268aa22ecee
MD5 4f23b34e2fafadb5755550326a94cc3f
BLAKE2b-256 a1f47c5a89903e8c9b551a8f6533a2b3d7d4826d83865b1c5983a330868148d5

See more details on using hashes here.

File details

Details for the file juniper-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: juniper-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/39.0.1 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.6.5

File hashes

Hashes for juniper-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 568b0f103191b105ccc3c424c7b04566185d4ff12d36b99bac48b9742f9dfe39
MD5 0bf7c5702d52f1bce8a397473e328cec
BLAKE2b-256 9a6e1b61f9cdc224a72e257efb7cec04be8ff309ad1d40b252ecc5b2eddfd5fb

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page