A plugin to sync local directories and S3 prefixes for Serverless Framework ⚡ .
- Static Website (
serverless-s3-sync
) & Contact form backend (serverless
) . - SPA (
serverless
) & assets (serverless-s3-sync
) .
Run npm install
in your Serverless project.
$ npm install --save serverless-s3-sync
Add the plugin to your serverless.yml file
plugins:
- serverless-s3-sync
Version 2.0.0 is compatible with Serverless Framework v3, but it uses the legacy logging interface. Version 3.0.0 and later uses the new logging interface.
serverless-s3-sync | Serverless Framework |
---|---|
v1.x | v1.x, v2.x |
v2.0.0 | v1.x, v2.x, v3.x |
≥ v3.0.0 | v3.x |
custom:
s3Sync:
# A simple configuration for copying static assets
- bucketName: my-static-site-assets # required
bucketPrefix: assets/ # optional
localDir: dist/assets # required
# An example of possible configuration options
- bucketName: my-other-site
localDir: path/to/other-site
deleteRemoved: true # optional, indicates whether sync deletes files no longer present in localDir. Defaults to 'true'
acl: public-read # optional
followSymlinks: true # optional
defaultContentType: text/html # optional
params: # optional
- index.html:
CacheControl: 'no-cache'
- "*.js":
CacheControl: 'public, max-age=31536000'
bucketTags: # optional, these are appended to existing S3 bucket tags (overwriting tags with the same key)
tagKey1: tagValue1
tagKey2: tagValue2
# This references bucket name from the output of the current stack
- bucketNameKey: AnotherBucketNameOutputKey
localDir: path/to/another
# ... but can also reference it from the output of another stack,
# see https://www.serverless.com/framework/docs/providers/aws/guide/variables#reference-cloudformation-outputs
- bucketName: ${cf:another-cf-stack-name.ExternalBucketOutputKey}
localDir: path
resources:
Resources:
AssetsBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: my-static-site-assets
OtherSiteBucket:
Type: AWS::S3::Bucket
Properties:
BucketName: my-other-site
AccessControl: PublicRead
WebsiteConfiguration:
IndexDocument: index.html
ErrorDocument: error.html
AnotherBucket:
Type: AWS::S3::Bucket
Outputs:
AnotherBucketNameOutputKey:
Value: !Ref AnotherBucket
Run sls deploy
, local directories and S3 prefixes are synced.
Run sls remove
, S3 objects in S3 prefixes are removed.
Run sls deploy --nos3sync
, deploy your serverless stack without syncing local directories and S3 prefixes.
Run sls remove --nos3sync
, remove your serverless stack without removing S3 objects from the target S3 buckets.
Sync local directories and S3 prefixes.
If also using the plugins serverless-offline
and serverless-s3-local
, sync can be supported during development by placing the bucket configuration(s) into the buckets
object and specifying the alterate endpoint
(see below).
custom:
s3Sync:
# an alternate s3 endpoint
endpoint: http://localhost:4569
buckets:
# A simple configuration for copying static assets
- bucketName: my-static-site-assets # required
bucketPrefix: assets/ # optional
localDir: dist/assets # required
# ...
As per serverless-s3-local's instructions, once a local credentials profile is configured, run sls offline start --aws-profile s3local
to sync to the local s3 bucket instead of Amazon AWS S3
bucketNameKey
will not work in offline mode and can only be used in conjunction with valid AWS credentials, use bucketName
instead.
run sls deploy
for normal deployment
custom:
s3Sync:
# Disable sync when sls deploy and sls remove
noSync: true
buckets:
# A simple configuration for copying static assets
- bucketName: my-static-site-assets # required
bucketPrefix: assets/ # optional
localDir: dist/assets # required
# ...
serverless-s3-sync's People
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.