Top serverless plugins we are using

Hoang Le
Hoang Le
Nov 8, 2019 · 4 min read

This post is originally published on our blog.

Image for post
Image for post

We are using the Serverless framework for a couple of years and building a lot of applications. So I wanted to summarize and provide a brief description of some plugins that our team is using every day. I am not sure it is good for you, if you have any recommendations, just let us know.

If you haven’t yet checked out this list of Serverless Framework plugins, you’re missing out. Or you can read this post for a short version.

Don’t Reinvent The Wheel

Don’t build it again if someone else already built it and open-sourced it for you.”. It’s free to use and the community support that revolves around building, fixing, and maintenance.

serverless-offline

I believe this is the most popular plugin, almost Serverless developers have used it at least one time. This Serverless plugin emulates the AWS Lambda function and API Gateway on your local machine to speed up your development cycles.

Along with using serverless-offline, our team also use some plugins that support emulate cloud services on our local machine such as:

serverless-webpack and serverless-plugin-typescript

It is easy to get started with zero-config by using serverless-plugin-typescript plugin for small projects. But large scale projects, we are using the serverless-webpack plugin that allows us defining our webpack configuration for bundling TypeScript code.

If you are using paths configuration in the tsconfig.json file, then you might need to use tsconfig-paths-webpack-plugin plugin to automatically load modules based on the location specified in the paths config

serverless-iam-roles-per-function

This plugin allows us to define the IAM roles per functions instead of using a single IAM role for all Lambda functions. Yan Cui has listed this plugin as 2nd serverless best practice on this post

serverless-domain-manager

We use this plugin to create custom domains for API Gateway.

serverless-plugin-split-stacks

To avoid reaching out the 200 resources limit our CloudFormation error, we use this plugin to split the main stack into multiple stacks.

serverless-plugin-warmup

How to reduce cost starts for Lambda functions? The question that a lot of developers are asking and try to reduce cost start. There are more solutions but one of them is using this plugin. It solved the cost starts by using a scheduled task that will invoke selected functions in a configurable interval (default is 5 mins, but we almost use 45 mins as the average interval that the Lambda function keep-alive)

serverless-plugin-aws-alerts

We use this plugin to define CloudWatch alarms for Lambda functions by using default definitions or add log metric filters to log groups.

serverless-secrets-plugin

Store some environment variables that we can commit to source control and share across teams. But for storing sensitive information, we use @middy/ssm middleware to fetch SSM parameters.

serverless-vpc-plugin

If you want to run your Lambda functions under your private VPC and want to define new VPC when deploying serverless, then use this plugin. You also can use serverless-vpc-discovery plugin to retrieve an existing VPC from your AWS account.

serverless-mysql

Use this plugin to manage MYSQL connections at scale.

serverless-apigateway-service-proxy

If you want to expose API for SNS, SQS, S3, and Kinesis Streams, then you can use this plugin without Lambda, also AWS resources will be created by that plugin.

And a few more as below:

serverless-plugin-canary-deployments this plugin supports Blue/green deployment for your Lambda.
serverless-pseudo-parameters this plugin allows using CloudFormation Pseudo Parameters in your serverless.yml
serverless-s3-deploy use this plugin to sync your directory to a S3 bucket, we have used it for deploying our static website.
serverless-api-stage support defining stage variables, logging configuration (for AWS provider)
serverless-aws-alias this plugin enables use of AWS aliases on Lambda functions, for an example you can use this plugin to deploy multiple environments for different VCS branches.
serverless-s3-remover you cannot delete an S3 bucket with data, right? This plugin will solve that problem. It will prompt you to remove its data before removing Cloud Formation stack.
serverless-ses-template if you are using SES Template, right now AWS doesn’t provide UI to upload or edit templates on the Console Management, you can only use API to upload template. This plugin will do that for you, it automatically creating, updating and removing AWS SES Templates using a configuration and keeps your AWS SES Templates synced with your configuration file.

InnomizeTech

Hoang Le

Written by

Hoang Le

Co-Founder, CTO at @innomizetech | Software Architect, Full-stack DEV | Passionate about #cloudcomputing #aws #serverless #devops #machinelearning #iot #startup

InnomizeTech

We are an offshore software development and IT consulting company based in Vietnam. Our aim is to create awesome products that will make your everyday life easier. As a start-up company, we always put humans on first priority and welcome young people to join our team

Hoang Le

Written by

Hoang Le

Co-Founder, CTO at @innomizetech | Software Architect, Full-stack DEV | Passionate about #cloudcomputing #aws #serverless #devops #machinelearning #iot #startup

InnomizeTech

We are an offshore software development and IT consulting company based in Vietnam. Our aim is to create awesome products that will make your everyday life easier. As a start-up company, we always put humans on first priority and welcome young people to join our team

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store