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

gulp-awslambda-deploy

v1.0.9

Published

Gulp plugin to deploy zipped packages to AWS Lambda directly or via S3

Downloads

22

Readme

gulp-lambda-deploy

Originally created by https://github.com/scottwrobinson/gulp-lambda-deploy in regards to deployment to lambda. However since the code has not been updated in over 2 years, I couldn't wait to hopefully get a reply back about the most recent update to AWS Lambda SDK deployment that prevented me from deploying our lambda functions.

So I took the code, transformed it into TypeScript and made type definitions for it. Along with fixing the actual issue that prevented me from updating our software code on AWS.

gulp-awslambda-deploy

Gulp plugin to deploy zipped packages to AWS Lambda directly or via S3

Install

$ npm install --save-dev gulp-awslambda-deploy

Usage

gulp-awslambda-deploy accepts a single zip file, which is uploaded to AWS Lambda either directly or via S3. After upload, the zip file is passed down the stream. I suggest using gulp-zip to create the zip file.

Here is the typical usage:

const gulp = require('gulp');
const lambda = require('gulp-awslambda-deploy');
const zip = require('gulp-zip');

let params = {
    name: '...',
    role: '...',
    s3: {
        bucket: '...',
        key: '...'
    },
    subnets: [..., ...],
    securityGroups: '...'
};

let options = {
    profile: '...',
    region: '...'
};

gulp.task('default', function(cb) {
    return gulp.src('index.js')
        .pipe(zip('package.zip'))
        .pipe(lambda(params, options))
        .on('end', cb);
});

If the params.s3 object is not provided, then the zip file is uploaded directly to Lambda and is not stored in S3 as an intermediate step.

If a function with the name given in params.name does not already exist, then it is created, otherwise the existing code and configuration is updated for that function.

For more information on params and options see the API section.

AWS Credentials

Currently you must provide an AWS profile name that is stored in the Shared Credentials File at ~/.aws/credentials. For more info see the aws-sdk documentation.

API

gulp-awslambda-deploy must be given exactly two arguments. The first is Lambda-specific parameters, and the second is options for AWS. Each has its own set of optional and required properties.

lambda(params, options);

params

These parameters are specific to the Lambda function you're uploading.

name (required)

The name of your function.

role (required)

The ARN of the role given to the Lambda function.

s3

An object indicating where to upload the function code to. If the s3 parameter is given, it must contain the properties bucket and key. These specify the upload location for the file within S3.

handler

The location of your method handler. Must be of the form [filename].[method name] where [method name] is exported. Defaults to index.handler.

runtime

The runtime for your code. Defaults to nodejs4.3.

publish

A boolean indidcating if you want to publish a new version of the function.

alias

The name of an alias to point to this function. If this alias doesn't already exist, it will be created.

description

A string describing the Lambda function.

timeout

The time in seconds that the function is allowed to run on each invocation.

memory

The amount of memory, in MB, your Lambda function is given.

subnets

The ids of subnets to create the Lambda function into, if you want to create it in a VPC (a string or an array of strings).

securityGroups

The security groups to add to the Lambda function if created in a VPC (a string or an array of strings).

options

Options for configuring the AWS environment.

profile (required)

The named AWS profile used to authenticate and interact with AWS services. Must be saved in Shared Credentials File. See the AWS Credentials section.

region (required)

The AWS region your resources will be located in.