1.1.0 • Published 6 years ago

aws-lambda-batch-invoker v1.1.0

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

aws-lambda-batch-invoker

Module that allows batch invoking a lambda function synchronously via the RequestResponse invocationType or asynchronously via the Event invocationType.

Usage

new BatchInvoker(options)

Constructor for the class.

  • options - { Object, optional } - an object to provide configuration options.
    • client - { Object, optional } - a valid lambda client. If no client is provided, the default lambda client will be used.
    • logger - { Object/Function, optional } - a valid logger. If no logger is provided, no debug information or errors will be logged.
    • compressPayloads - { boolean, optional } - whether the payloads should be compressed to remove whitespace when being stringified. Defaults to false.
    • maxConcurrency - { Number } - controls the max number of invocations started at the same time. Defaults to 5.
const Invoker = require('aws-lambda-batch-invoker');
const logger = require('./path/to/your/logger');

// no logger
const invoker = new Invoker();

// logger as option
const invoker2 = new Invoker({ logger });

// override class defaults with options
const invoker2 = new Invoker({ maxConcurrency: 10 });

invoke(options, cb)

Method to synchronously invoke a lambda function via RequestResponse invocationType.

  • options - { Object, required } - lambda invoke options
    • functionName - { String, required } - the lambda function you wish to invoke.
    • payloads - { Object[], required } - the payloads you wish to send to the lambda function. If only one is provided, will convert to an array.
    • clientContext - { Object, base64-encoded } - used to pass client-specific information to the lambda function being invoked via the context variable.
    • options - { Object } - configuration options for batch invoke, overrides class set defaults.
      • compressPayloads - { boolean, optional } - whether the payloads should be compressed to remove whitespace when being stringified. Defaults to false.
      • maxConcurrency - { Number } - controls the max number of invocations started at the same time. Defaults to 5.
  • cb - { function } - takes params err and result and is called on success or failure of batch invoking the lambda function. By default returns a promise that rejects on error or resolves with the result from batch invoking the lambda.
const Invoker = require('aws-lambda-batch-invoker');

const invoker = new Invoker();

// lambda handler
module.exports.handler = function(event, context, cb) {
  const invokeOptions = {
    functionName: 'testFunctionName',
    payloads: [
      { data: 'foo' },
      { data: 'bar' },
      { data: 'baz' }
    ],
    clientContext: { requestId: context.awsRequestId }
  };
  invoker.invoke(invokeOptions, cb);
};

invokeAsync(options, cb)

Method to synchronously invoke a lambda function via Event invocationType.

  • options - { Object, required } - lambda invoke options
    • functionName - { String, required } - the lambda function you wish to invoke.
    • payloads - { Object[], required } - the payloads you wish to send to the lambda function. If only one is provided, will convert to an array.
    • clientContext - { Object, base64-encoded } - used to pass client-specific information to the lambda function being invoked via the context variable.
    • options - { Object } - configuration options for batch invoke, overrides class set defaults.
      • maxConcurrency - { Number } - controls the max number of invocations started at the same time. Defaults to 5.
  • cb - { function } - takes params err and result and is called on success or failure of batch invoking the lambda function. By default returns a promise that rejects on error or resolves with the result from batch invoking the lambda.
const Invoker = require('aws-lambda-batch-invoker');

const invoker = new Invoker();

// lambda handler
module.exports.handler = function(event, context, cb) {
  const invokeOptions = {
    functionName: 'testFunctionName',
    payloads: [
      { data: 'foo' },
      { data: 'bar' },
      { data: 'baz' }
    ],
    clientContext: { requestId: context.awsRequestId }
  };
  invoker.invokeAsync(invokeOptions, cb);
};
1.1.0

6 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago