npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

aws-deploy-lambda

v1.0.2

Published

Deploy node package as an AWS Lambda function

Downloads

2

Readme

AWS Deploy Lambda

aws-deploy-lambda is a helper script for creating and updating simple Node.js AWS lambda functions. Add it to your node package to ease deploying it to AWS.

This was originally developed to ease Alexa skill development.

Example

Create a Node.js project and install aws-deploy-lambda

mkdir myproject
npm init -y
npm install aws-deploy-lambda --save

aws-deploy-lambda is installed and a new .bin script generated. This can be called directly, or added as an npm script.

Edit package.json scripts...

"scripts": {
  "deploy": "./node_modules/.bin/deploy-lambda"
},

Then creating or updating your Lambda function is as simple as npm run deploy! The package name will be used as the name of the Lambda function.

Behind the curtain

aws-deploy-lamda zips up your entire package including node_modules and uploads the contents to a nominated S3 bucket using the AWS-SDK. The AWS-SDK is then used to determine whether the user already has a Lambda of package.name or whether the Lambda should be created.

Deploying code from an S3 bucket is used since it doesn't look like the AWS-SDK supports uploading a zipfile from a stream which was causing timeouts, but that would be the aspiration and avoid configuring an S3 bucket.

Setup

Generic AWS Credentials

Some environment setup is required for AWS user details, this only needs configuring once and will be picked up by each package using aws-lambda-deploy.

User configuration for AWS permissions is taken from the AWS credentials file. I accidentally set mine up when installing and configuring the AWS-CLI which is a very easy way of managing these credentials, but could be a little heavyweight if you don't need the CLI for anything else.

Specific AWS Credentials

aws-deploy-lambda requires two environment variables:

  1. AWS_LAMBDA_ARN - The ARN of the role that owns and deploys the lambda. This role should have permission to manage Lambda functions, and to list them.

  2. AWS_BUCKET_NAME - The name of the bucket where code should be uploaded.