Lift

Deploy high-level components such as static websites, buckets, queues, webhooks...

user  

getlift

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.

Watch out: Lift requires Node 12. Check your Node version by running node --version. We are working on a Node compatible release.

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

The AWS CDK is extremely powerful, but it is very complex and cannot be used in serverless.yml. Lift changes that: use the best of the CDK in Serverless, without having to learn about it!

Lift provides components, aka "constructs", specifically selected for serverless applications. They are all built using the CDK and its best practices, with unique features to provide an awesome developer experience.

Static website

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

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

Read more...

Storage

Deploy preconfigured S3 buckets to store files.

constructs:
    avatars:
        type: storage

Read more...

Queue

Deploy SQS queues and workers for asynchronous processing.

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

Read more...

Webhook

Deploy webhooks to receive notifications from 3rd party applications.

constructs:
    stripe-webhook:
        type: 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

view on Github

Latest commit b2f54ec on Sep 24, 2017

New to serverless?

To get started, pop open your terminal & run:

npm install serverless -g