Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

aws-lambda-helper

Package Overview
Dependencies
Maintainers
6
Versions
37
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aws-lambda-helper

Collection of helper methods for lambda

  • 2.23.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
3
decreased by-25%
Maintainers
6
Weekly downloads
 
Created
Source

aws-lambda-helper

Collection of helper methods for lambda

Build Status codecov.io Dependency Status devDependency Status

Installation

$ npm install aws-lambda-helper --save

Usage

  var AwsHelper = require('aws-lambda-helper');

  exports.handler = function(event, context) {
    ...
    //Initialise the helper by passing in the context
    AwsHelper.init(context);
    ...
  }

Invoke a Lamda function


  var AwsHelper = require('aws-lambda-helper');

  exports.handler = function(event, context){
    // assume : context.invokedFunctionArn = invokedFunctionArn: 'arn:aws:lambda:eu-west-1:123456789:function:mylambda:prod'

    //Initialise the helper by passing in the context
    AwsHelper.init(context);

    console.log(AwsHelper.env); //prints: prod
    console.log(AwsHelper.region); //prints: eu-west-1
    console.log(AwsHelper.account); //prints: 123456789

    var params = {
        FunctionName: 'MyAmazingLambda',
        Payload: { 'hello': 'world' },
        Qualifier: ''
      };
    AwsHelper.Lambda.invoke(params, function (err, data) {
      AwsHelper.failOnError(err, event, context);
      context.succeed(data);
    });
  }

Logging JSON messages

var AwsHelper = require('aws-lambda-helper');

exports.handler = function(event, context){
  // assume : context.invokedFunctionArn = invokedFunctionArn: 'arn:aws:lambda:eu-west-1:123456789:function:mylambda:prod'

  //Initialise the helper by passing in the context
  AwsHelper.init(context, event);

  var log = AwsHelper.Logger('example');

  log.info();     // Returns a boolean: is the "info" level enabled?
  // This is equivalent to `log.isInfoEnabled()` or
  // `log.isEnabledFor(INFO)` in log4j.

  log.info('hi');                     // Log a simple string message (or number).
  log.info('hi %s', bob, anotherVar); // Uses `util.format` for msg formatting.

  log.info({foo: 'bar'}, 'hi');
  // The first field can optionally be a "fields" object, which
  // is merged into the log record.

  log.info(err);  // Special case to log an `Error` instance to the record.
  // This adds an "err" field with exception details
  // (including the stack) and sets "msg" to the exception
  // message.
  log.info(err, 'more on this: %s', more);
  // ... or you can specify the "msg".

  log.info({foo: 'bar', err: err}, 'some msg about this error');
  // To pass in an Error *and* other fields, use the `err`
  // field name for the Error instance.
}

Pushing Data Back to Client(s) Via WebSocket Server

var params = {
  id: sessionId, // the id provided by the WebSocket Server AKA "connectionId"
  bucketId: 12345, // the id of this rticular search request
  userId: 'UniqueFingerprint', // the super long string that uniquely identifies a client
  items: [{  // your list of one or more tiles or packages go here
    url: '/userId/connectionId/bucketId/itemId', // url for S3 object.
  }] // note: url should not have .json in it.
};
AwsHelper.pushResultToClient(params, function (err, res) {
  console.log(err, res); // do what ever you want after the result is pushed
});

Retrieving a Search Result (Artile Tile or Package)

When a user shares a result tile (e.g. an article or package) we retrieve the result they saw from S3:

var params = {
  url: '/userId/connectionId/bucketId/itemId', // supplied by front-end
};
AwsHelper.getRecordFromS3(params, function (err, json) {
  console.log(err, json); // handle error or use json
});
Environment Variables

You will require an the following Environment Variables to push results to S3 and retrieve them later:

export WEBSOCKET_SERVER_URL=get_this_from_codeship
export AWS_S3_SEARCH_RESULT_BUCKET=get_this_from_codeship
export SEARCH_RESULT_TOPIC=arn:aws:sns:eu-west-1:123456789:my-awesome-topic

(see below for complete list of required Environment Variables)

if you get stuck get the Environment Variables from CodeShip: https://codeship.com/projects/143221/configure_environment

FAQs

Package last updated on 15 Aug 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc