Skip to content
forked from getlift/lift

Expanding Serverless Framework beyond functions using the AWS CDK

License

Notifications You must be signed in to change notification settings

jianfeng-huang/lift

Repository files navigation

Lift is a plugin that leverages the AWS CDK to expand the Serverless Framework beyond functions.

Deploy production-ready websites, queues, storage buckets and more with a few lines in serverless.yml.

  • ⚡️ For developers - No AWS knowledge required
  • ⚡️ Production-ready - Built by AWS experts, optimized for production
  • ⚡️ Not invasive - Integrates with existing projects
  • ⚡️ No lock-in - Eject to CloudFormation at any time

Why should I choose Lift ?

Installation

Lift is a Serverless Framework plugin, install it in your project:

serverless plugin install -n serverless-lift

If you prefer, you can install via npm directly: npm install --save-dev serverless-lift.

Quick start

Once installed, start using Lift constructs in serverless.yml:

service: my-app

provider:
    name: aws

plugins:
    - serverless-lift

functions: 
    # ...

constructs:

    # Include Lift constructs here

    landing-page:
        type: static-website
        path: 'landing/dist'

    avatars:
        type: storage

Constructs

Deploy static websites and single-page applications, for example React, VueJS or Angular apps.

constructs:
    landing:
        type: static-website
        path: dist

Read more...

Deploy preconfigured S3 buckets to store files.

constructs:
    avatars:
        type: storage

Read more...

Deploy SQS queues and workers for asynchronous processing.

constructs:
    my-queue:
        type: queue
        worker:
            handler: src/report-generator.handler

Read more...

Deploy webhooks to receive notification from 3rd party applications.

constructs:
    stripe-webhook:
        path: /my-webhook-endpoint
        authorizer:
            handler: myAuthorizer.main

Read more...

More constructs are coming soon! Got suggestions? Open and upvote drafts.

Ejecting

You can eject from Lift at any time: Lift is based on CloudFormation. That allows anyone to kickstart a project with Lift, and fallback to CloudFormation if you ever grow out of it.

To eject:

  • export the CloudFormation template via serverless lift eject
  • copy the parts you want to turn into CloudFormation and paste them in the resources section of serverless.yml
  • don't forget to remove from serverless.yml the Lift constructs you have turned into CloudFormation

Lift is built and maintained with love ❤️ by

About

Expanding Serverless Framework beyond functions using the AWS CDK

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.8%
  • Other 0.2%