Skip to content
This repository has been archived by the owner on Aug 13, 2021. It is now read-only.
/ baggywrinkle Public archive

Run a machine from an AWS Lambda function.

Notifications You must be signed in to change notification settings

sailshq/baggywrinkle

Repository files navigation

baggywrinkle

Want to reduce chafing when using Sails actions inside of AWS Lambda? Baggywrinkle is the answer!

Baggywrinkle builds a modified version of a machine that proxies its inputs from the Lambda function's event argument, and proxies its exits through the Lambda function's callback. It is intended to be used with Lambda functions that are triggered via the AWS API Gateway (that is, via HTTP requests).

$ npm install baggywrinkle --save

Usage

var lambdaFunction = require('baggywrinkle')(actionMachine);

Example

// handler.js
var asLambda = require('baggywrinkle');

module.exports = asLambda({
  inputs: {
    name: {
      example: 'Joe',
      description: 'The person to greet'
    }
  },
  exits: {
    success: {
      statusCode: 200,
      description: 'Greeting was successful!'
    }
  }
  fn: function (inputs, exits) {
    return exits.success(`Hello ${inputs.name}!`);
  }
});

Note that the input to Baggywrinkle can be either:

Options

For available options, see the machine-as-action documentation. Note however that Baggywrinkle does not currently support:

  • The view response type
  • The redirect response type
  • Custom Sails response types such as badRequest
  • File uploads
  • Streaming

Bugs   NPM version

To report a bug, click here.

Contributing   Build Status

Please observe the guidelines and conventions laid out in the Sails project contribution guide when opening issues or submitting pull requests.

NPM

License

MIT © 2015-2016 The Sails Company

The Sails framework is free and open-source under the MIT License.

About

Run a machine from an AWS Lambda function.

Resources

Stars

Watchers

Forks

Packages

No packages published