serverless-lift
    TypeScript icon, indicating that this package has built-in type declarations

    1.11.0 • Public • Published

    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 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 Lift via NPM: npm install --save-dev serverless-lift. Then, register the serverless-lift plugin in serverless.yml (see the example below).

    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...

    Database - DynamoDB Single Table

    Deploy databases leveraging DynamoDB Single Table Design principles.

    constructs:
        database:
            type: database/dynamodb-single-table

    Server-side website

    Deploy server-side rendered websites, for example Laravel or Symfony apps.

    constructs:
        website:
            type: server-side-website
            assets:
                '/css/*': public/css
                '/js/*': public/js

    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

    TypeScript definitions

    TypeScript users can use serverless.ts instead of serverless.yml. Lift provides type definitions to help.


    Lift is built and maintained with love ❤️ by

    Keywords

    none

    Install

    npm i serverless-lift

    DownloadsWeekly Downloads

    3,332

    Version

    1.11.0

    License

    MIT

    Unpacked Size

    561 kB

    Total Files

    131

    Last publish

    Collaborators

    • mnapoli