Skip to main content

AWS Python Lambda Packager

Project description

Provides a quick command line utility for packaging and publishing Python AWS Lambda functions. This is a work in progress and pull requests are always welcome.

Installation

The latest release of lambda-uploader can be installed via pip:

pip install lambda-uploader

An alternative install method would be manually installing it leveraging setup.py:

git clone https://github.com/rackerlabs/lambda-uploader
cd lambda-uploader
python setup.py install

Configuration File

The lambda uploader expects a directory with, at a minimum, your lambda function and a lambda.json file. It is not necessary to set requirements in your config file since the lambda uploader will also check for and use a requirements.txt file.

Please note that you can leave the “vpc” object out of your config if you want your lambda function to use your default VPC and subnets. If you wish to use your lambda function inside a specific VPC, make sure you set up the role correctly to allow this.

Example lambda.json file:

{
  "name": "myFunction",
  "description": "It does things",
  "region": "us-east-1",
  "handler": "function.lambda_handler",
  "role": "arn:aws:iam::00000000000:role/lambda_basic_execution",
  "requirements": ["pygithub"],
  "ignore": [
    "circle.yml",
    ".git",
    "/*.pyc"
  ],
  "timeout": 30,
  "memory": 512,
  "vpc": {
    "subnets": [
      "subnet-00000000"
    ],
    "security_groups": [
      "sg-00000000"
    ]
  }
}

Command Line Usage

To package and upload simply run the command from within your lambda directory or with the directory as an option.

lambda-uploader ./myfunc

To specify an alternative profile that has been defined in ~/.aws/credentials use the --profile parameter.

lambda-uploader --profile=alternative-profile

To specify an alternative, prexisting virtualenv use the --virtualenv parameter.

lambda-uploader --virtualenv=~/.virtualenv/my_custom_virtualenv

To omit using a virtualenv use the --no-virtualenv parameter.

lambda-uploader --no-virtualenv

To inject any other additional files, use the --extra-file EXTRA_FILE parameter.

lambda-uploader --extra-file ~/stuff_for_lambda_packages

If you would prefer to upload another way you can tell the uploader to ignore the upload. This will create a package and leave it in the project directory.

lambda-uploader --no-upload ./myfunc

To publish a version without an alias you would pass the the publish flag.

lambda-uploader -p ./myfunc

If you would like to alias your upload you can pass the alias with the alias flag. The function description will be used when an alias-description is not provided.

lambda-uploader --alias myAlias --alias-description 'My alias description' ./myfunc

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

lambda-uploader-1.0.3.tar.gz (10.6 kB view details)

Uploaded Source

Built Distribution

lambda_uploader-1.0.3-py2.py3-none-any.whl (14.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file lambda-uploader-1.0.3.tar.gz.

File metadata

File hashes

Hashes for lambda-uploader-1.0.3.tar.gz
Algorithm Hash digest
SHA256 ecd0f9a31961fed2fafd6a9b0a8a5ea4e49c5a0804bc0ec35776a09b6cff7f6c
MD5 1dd78b3bce1a2a56b5e0dd737705070c
BLAKE2b-256 72b3f02c12e38b00c78279ecb9847c13efaf81699837c6ae561de55f7349325f

See more details on using hashes here.

File details

Details for the file lambda_uploader-1.0.3-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for lambda_uploader-1.0.3-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2ce4583e444d7351d2f41e9a1bdd7457dc979c36a90387b5f39335f06eb9cd97
MD5 9ccbaf047496ab3b1779ee4fb75c62ce
BLAKE2b-256 d3128fb0de93c857cebb017e86dc4cca0b279e87fd98e8db03ceb8e8033aae38

See more details on using hashes here.

Supported by

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