aws_message_reader

3.1.0 • Public • Published

Aws Message Reader

Parses an AWS Sns or Dynamodb message. If the callback triggers an error, the original Aws event (lambda_event) is attached to the error object.

Build Status

Sns message

{
  "Records":[
    {
      "EventSource":"aws:sns",
      "EventVersion": "1.0",
      "EventSubscriptionArn": "arn:aws:sns:us-east-1:123456789012:lambda_topic:0b6941c3-f04d-4d3e-a66d-b1df00e1e381",
      "Sns":{
        "Type": "Notification",
        "MessageId":"95df01b4-ee98-5cb9-9903-4c221d41eb5e",
    "TopicArn":"arn:aws:sns:us-east-1:123456789012:lambda_topic",
        "Subject":"TestInvoke",
    "Message":" SOME STRINGIFIED JSON ",
        "Timestamp":"2015-04-02T07:36:57.451Z",
    "SignatureVersion":"1",
    "Signature":"r0Dc5YVHuAglGcmZ9Q7SpFb2PuRDFmJNprJlAEEk8CzSq9Btu8U7dxOu++uU",
        "SigningCertUrl":"http://sns.us-east-1.amazonaws.com/SimpleNotificationService-d6d679a1d18e95c2f9ffcf11f4f9e198.pem",
    "UnsubscribeUrl":"http://cloudcast.amazon.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:example_topic:0b6941c3-f04d-4d3e-a66d-b1df00e1e381",
    "MessageAttributes":{"key":{"Type":"String","Value":"value"}}
      }
    }
  ]
}

Calls back with Records[0].Message parsed json

DynamoDb message

{
    "Records": [
        {
            "eventID": "xx",
            "eventName": "MODIFY",
            "eventVersion": "1.0",
            "eventSource": "aws:dynamodb",
            "awsRegion": "us-east-1",
            "dynamodb": {
                "OldImage": {
                  my_key: {
                    N: '1'
                  },
                  my_string_key: {
                    S: 'SOME STRING'
                  },
                  my_string_set_key: {
                    SS: ['SOME STRING']
                  }
                },
                "NewImage": {
                  my_key: {
                    N: 1
                  },
                  my_string_key: {
                    S: 'SOME STRING'
                  },
                  my_string_set_key: {
                    SS: ['SOME STRING']
                  }
                },
                "SequenceNumber": "xxx",
                "SizeBytes": xxx,
                "StreamViewType": "NEW_IMAGE"
            },
            "eventSourceARN": "arn:aws:..."
        }
    ]
}

Calls back with (parses the Numer type only)

{
    "OldImage": {
      my_key:1,
      my_string_key: 'SOME STRING',
      my_string_set_key:['SOME STRING']
    },
    "NewImage": {
      my_key:1,
      my_string_key: 'SOME STRING',
      my_string_set_key:['SOME STRING']                 
    }
}

Setup

npm install aws_message_reader

Api

each(iterator, callback)

Under the hood this function is the async.each method.

Applies the function iterator to each item in arr, in parallel. The iterator is called with an item from the list, and a callback for when it has finished. If the iterator passes an error to its callback, the main callback (for the each function) is immediately called with the error.

Note, that since this function applies iterator to each item in parallel, there is no guarantee that the iterator functions will complete in order.

 
    var messageReader = require('aws_message_reader');
 
    messageReader(event).each(function(message, cb) {
        // message = JSON.parse(event.Records[0].Sns.Message);
        cb();
  }, function(err) {
    if (err) {
 
      //err.lambda_event === JSON.stringify(event);
 
      return callback(err);
    }
 
    // All done!!
  });
 

Readme

Keywords

none

Package Sidebar

Install

npm i aws_message_reader

Weekly Downloads

0

Version

3.1.0

License

ISC

Last publish

Collaborators

  • tdfairbrother