For general information on Jibe see Jibe Documentation.
Jibe is able to run as a AWS Lambda function processing S3 event notifications. The steps are:
syncOnProviderEvent
S3 Events can only be sent to queues in the same region. For buckets in the other region send events through to an Amazon Simple Notification Service topic in that region which in turn forwards to the queue in the target region.
The AWS Lambda function, SQS queues, buckets and if needed, SNS topics can be configured through the AWS Management Console.
These are the steps to configure the Lambda function manually. They can also be useful in troubleshooting any issues with the automated setup.
Create a “Standard” SQS Queue in the region where your S3 buckets are located.
jibe-source-activity
.Change the Queue Access Policy to allow the S3 service to send events:
{ "Version": "2012-10-17", "Id": "example-ID", "Statement": [ { "Sid": "example-statement-ID", "Effect": "Allow", "Principal": { "Service": "s3.amazonaws.com" }, "Action": [ "SQS:SendMessage" ], "Resource": "arn:aws:sqs:us-east-1:410679986536:jibe-source-activity", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:*" }, "StringEquals": { "aws:SourceAccount": "410679986536" } } } ] }
Select a bucket to configure from the S3 Management Console.
If you get this error you'll need to add permissions to your SQS Queue.
Unable to validate the following destination configurations. Permissions on the destination queue do not allow S3 to publish notifications from this bucket. (arn:aws:sqs:us-east-1:1234567890:bucket-activity)
You can't send S3 events to a queue in another region. Instead, create an SNS topic.
Select a bucket to configure from the S3 Management Console.
If you get this error you'll need to add permissions to your SNS Topic.
Unable to validate the following destination configurations. Permissions on the destination topic do not allow S3 to publish notifications from this bucket. (arn:aws:sns:us-east-1:1234567890:bucket-activity)
Create a config.json file with an Access Anywhere Server endpoint and credentials. For example,
{ "apiendpoint" : "https://storagemadeeasy.com", "login" : "adminuser@example.com", "password" : "Passsword123" }
Create a zip of the script and config file:
zip sme_jibe_sync.zip jibe_core.py config.json
Navigate to the AWS Lambda Management Console.
* Create a new role and attach these permission policies * AWSLambdaRole * AWSLambdaSQSQueueExecutionRole
* Scroll down to Function code.
* Change Handler to sme_jibe_sync.lambda_handler
* Change Code entry type to Upload a .zip file.
* Select Upload and locate smejibesync.zip.
* Change timeout from 3 to 60 seconds
* Set throttle to 10
* Select Save, you'll stay on the same page.
Add third-party libraries. These packages courtesy of to Keith's Layers (Klayers).
arn:aws:lambda:us-east-1:770693421928:layer:Klayers-python38-requests:5
Create test using “Amazon S3 Put” template.
From the Lambda Console select the function and view the Configuration.
Add a trigger from the Queue:
The SQS queue will now be visible as a trigger.