Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eleven41/aws-lambda-copy-s3-objects
An AWS Lambda function to copy objects from a source S3 bucket to a target S3 bucket as they are added to the source bucket.
https://github.com/eleven41/aws-lambda-copy-s3-objects
Last synced: 3 months ago
JSON representation
An AWS Lambda function to copy objects from a source S3 bucket to a target S3 bucket as they are added to the source bucket.
- Host: GitHub
- URL: https://github.com/eleven41/aws-lambda-copy-s3-objects
- Owner: eleven41
- License: mit
- Created: 2015-05-06T01:28:24.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-05-08T20:33:09.000Z (over 7 years ago)
- Last Synced: 2024-07-20T02:28:17.906Z (4 months ago)
- Language: JavaScript
- Size: 9.77 KB
- Stars: 62
- Watchers: 6
- Forks: 55
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-functions - aws-lambda-copy-s3-objects - An AWS Lambda Based Function to Copy S3 Objects. (AWS Lambda Functions)
README
# An AWS Lambda Based Function to Copy S3 Objects
With this AWS Lambda function, you can copy objects from a source S3 bucket to one or more target S3 buckets as they are added to the source bucket.
## Configuration
### IAM Role
Create an IAM role with the following policy:
```json
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1430872797000",
"Effect": "Allow",
"Action": [
"s3:GetBucketTagging",
"s3:GetObject",
"s3:PutObject"
],
"Resource": [
"*"
]
},
{
"Sid": "Stmt1430872844000",
"Effect": "Allow",
"Action": [
"cloudwatch:*"
],
"Resource": [
"*"
]
},
{
"Sid": "Stmt1430872852000",
"Effect": "Allow",
"Action": [
"logs:*"
],
"Resource": [
"*"
]
}
]
}
```### S3 Buckets
1. Ensure you have a source and target bucket. They do not need to reside in the same region.
2. Configure your S3 buckets (see below)### Using the Release Packages
Release packages can be found on the [Releases](https://github.com/eleven41/aws-lambda-copy-s3-objects/releases) page.
### Building the Lambda Package
1. Clone this repo
```
git clone [email protected]:eleven41/aws-lambda-copy-s3-objects.git
cd aws-lambda-copy-s3-objects
```2. Install requirements
```
npm install async
npm install aws-sdk
```3. Zip up the folder using your favourite zipping utility
### Lambda Function
1. Create a new Lambda function.
2. Upload the ZIP package to your lambda function.
3. Add an event source to your Lambda function:
* Event Source Type: S3
* Bucket: your source bucket
* Event Type: Object Created
4. Set your Lambda function to execute using the IAM role you created above.### Configuration
Configuration is performed by setting tags on the source bucket.
Tag Name | Required
---|---
TargetBucket | Yes**TargetBucket** - A space-separated list of buckets to which the objects will be copied. Optionally, the bucket names can contain a @ character followed by a region to indicate that the bucket resides in a different region.
For example: `my-target-bucket1 my-target-bucket1@us-west-2 my-target-bucket3@us-east-1`
At this point, if you upload a file to your source bucket, the file should be copied to the target bucket(s).