serverless-log-forwarding-kinesis
v0.1.0
Published
a serverless plugin to forward logs to given kinesis stream
Downloads
4
Maintainers
Readme
serverless-log-forwarding-kinesis
Serverless plugin for forwarding CloudWatch logs to a Kinesis Stream
Getting Started
Prerequisites
This plugin only works for Serverless deployments to AWS
Make sure you have the following installed before starting:
You will need a Kinesis Stream ARN, and the ARN to a role with a policy like:
CloudWatchLogsRole:
Type: AWS::IAM::Role
Properties:
AssumeRolePolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Principal:
Service:
- logs.amazonaws.com
Action:
- sts:AssumeRole
Policies:
- PolicyName: root
PolicyDocument:
Version: "2012-10-17"
Statement:
- Effect: Allow
Action:
- kinesis:PutRecords
- kinesis:PutRecord
Resource:
Fn::GetAtt:
- KinesisStream
- Arn
RoleName: kinesis-forwarder-cloudwatchrole
Note the above is just an example cloudformation resource, and you will need to create one appropriate for your use case.
Installing
To install the plugin, run:
npm install serverless-log-forwarding-kinesis
Then make the following edits to your serverless.yaml
file:
plugins:
- serverless-log-forwarding-kinesis
custom:
logForwardingKinesis:
destinationARN: '[ARN of Kinesis stream to forward logs to]'
roleARN: '[ARN of the role to use when forwading logs]'
# optional:
filterPattern: '[filter pattern for logs that are sent to Kinesis]'
normalizedFilterID: true # whether to use normalized function name as filter ID
stages:
- '[name of the stage to apply log forwarding]'
- '[another stage name to filter]'
functions:
myFunction:
handler: src/someHandler
# optional properties for per-function configuration:
logForwarding:
# set enabled to false to disable log forwarding for a single given function
enabled: false
Running Tests
To run the test:
npm test
All tests should pass.
If there is an error update the node_module inside the serverless-log-forwarding-kinesis folder:
npm install
Deploying
The plugin will be packaged with the lambda when deployed as normal using Serverless:
serverless deploy
Responsible Disclosure
If you have any security issue to report, contact project maintainers privately.
Contributing
We welcome pull requests! For your pull request to be accepted smoothly, we suggest that you:
- For any sizable change, first open a GitHub issue to discuss your idea.
- Create a pull request. Explain why you want to make the change and what it’s for. We’ll try to answer any PRs promptly.