Lambda Uploader

Helps package and upload Python lambda functions to AWS
Alternatives To Lambda Uploader
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Serverless44,7891,61883010 hours ago1,987September 19, 20221,020mitJavaScript
⚡ Serverless Framework – Build web, mobile and IoT applications with serverless architectures using AWS Lambda, Azure Functions, Google CloudFunctions & more! –
Sst15,022410 hours ago681September 23, 2022665mitJavaScript
💥 SST makes it easy to build full-stack serverless apps.
Awesome Aws11,514
4 days ago1December 21, 201565otherPython
A curated list of awesome Amazon Web Services (AWS) libraries, open source repos, guides, blogs, and other resources. Featuring the Fiery Meter of AWSome.
Examples10,886
14 hours ago19April 25, 2021170otherJavaScript
Serverless Examples – A collection of boilerplates and examples of serverless architectures built with the Serverless Framework on AWS Lambda, Microsoft Azure, Google Cloud Functions, and more.
Chalice9,76012631a day ago86June 01, 2022441apache-2.0Python
Python Serverless Microframework for AWS
Serverless Application Model9,02884159 hours ago59June 07, 2022128apache-2.0Python
The AWS Serverless Application Model (AWS SAM) transform is a AWS CloudFormation macro that transforms SAM templates into CloudFormation templates.
Up8,68768133 months ago11March 02, 2018291mitGo
Deploy infinitely scalable serverless apps, apis, and sites in seconds to AWS.
Webiny Js6,57911310 hours ago251September 07, 2022251otherTypeScript
Open-source serverless enterprise CMS. Includes a headless CMS, page builder, form builder, and file manager. Easy to customize and expand. Deploys to AWS.
Aws Sam Cli6,310311210 hours ago129June 29, 2022358apache-2.0Python
CLI tool to build, test, debug, and deploy Serverless applications using AWS SAM
Docker Lambda5,85238145 months ago15June 30, 201868mitC#
Docker images and test runners that replicate the live AWS Lambda environment
Alternatives To Lambda Uploader
Select To Compare


Alternative Project Comparisons
Readme

lambda-uploader

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.

Note also the ignore entry is an array of regular expression strings used to match against the relative paths - be careful to quote accordingly. For example, a traditional *.txt "glob" is matched by the JSON string: ".*\\.txt$" (or just "\\.txt$").

Example lambda.json file:

{
  "name": "myFunction",
  "description": "It does things",
  "region": "us-east-1",
  "runtime": "python2.7",
  "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"
    ]
  },
  "tracing": {
    "Mode": "Active"
  }
}

You can also optionally setup a subscription to a Kinesis stream for your lambda using the subscription field as in the following sample configuration.

{
  "name": "myFunction",
  "description": "It does things",
  "region": "us-east-1",
  "runtime": "python2.7",
  "handler": "function.lambda_handler",
  "role": "arn:aws:iam::00000000000:role/lambda_basic_execution",
  "requirements": ["pygithub"],
  "timeout": 30,
  "memory": 512,
  "subscription": {
    "kinesis": {
      "stream": "arn:aws:kinesis:eu-west-1:000000000000:stream/services",
      "batch_size": 10
    }
  }
}

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

If you would prefer to build the package manually and just upload it using uploader you can ignore the build. This will upload lambda_function.zip file.

lambda-uploader --no-build
Popular Amazon Web Services Projects
Popular Lambda Functions Projects
Popular Cloud Computing Categories
Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Python
Aws
Upload
Lambda
Uploader