These are a collection of serverless functions that are useful when used in conjunction with SWAG.
This function is triggered off of a Dynamodb stream, processing insert and delete events, then using the swag-client ensures that these changes are propagated the specified S3 bucket.
This is useful for cases where you want SWAG data to be located in Dynamodb but also offer up a flat json file for consumption by the swag-client or other clients.
In order to use the s3-forwarder Lambda ensure that you create a role with the following permissions:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1501177608000",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket",
"s3:PutObject"
],
"Resource": [
"<you-bucket-arn>"
]
}
]
}
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1501174124000",
"Effect": "Allow",
"Action": [
"dynamodb:DescribeStream",
"dynamodb:GetRecords",
"dynamodb:GetShardIterator",
"dynamodb:ListStreams"
],
"Resource": [
"<your-stream-arn>"
]
}
]
}
This serverless function will add Dynamodb stream trigger to our the s3-forwarder but will not create the stream for us,
ensure that NewItem
is sent to the function through the Dynamodb stream.
All of the functions are wrapped with the RavenLambdaWrapper
. This decorator forwards lambda
telemetry to a Sentry instance. This will have no effect unless you specify SENTRY_DSN
in the Lambda's environment variables.