Plugin which auto-subscribes a log delivery lambda function to lambda log groups created by Serverless
npm install --save-dev serverless-plugin-cloudwatch-sumologic
- First follow this guide to create a new collector and http source on Sumologic.
- Add the following custom variables to your
serverless.yml
file.
plugins:
- serverless-plugin-cloudwatch-sumologic
custom:
shipLogs:
# Required
arn: existing cloudwatch logs ARN
# OR
collectorUrl: Paste your url from step 1. here
# Optional, default pattern is "[timestamp=*Z, request_id=\"*-*\", event]"
filterPattern: "[timestamp=*Z, request_id=\"*-*\", correlation_id=\"*-*\", event]"
role: ARN of IAM role to use
This plugin automates the process described in the readme provided by Sumologic.
Upon running sls deploy
it will...
- if no existing cloudwatch function is specified
- Create a temporary function in the root of your serverless project
- Add that function to the in-memory CloudFormation script created by the serverless framework
- Iterate through all the functions (except for the sumologic one) and generate:
- CloudFormation Subscription Filter Resource linking the log groups created by serverless framework to the sumologic lambda function.
- Permissions to Invoke the logging function, as a Resource.
- Wait for the stack creation/update to complete and then delete the temporarily created function source directory.
You must be running serverless 1.25.0 or higher.
Please fork this repo to make changes and then issue a pull request back to this repo. No unit tests are included at this time. Unit tests will be added before this goes into version 1.0.0
Tests are written using Mocha, Sinon, Chai, using Rewire
Run with npm test