5 Open Source Tools to Improve Your Serverless Development Experience

Ben Ellerby
Apr 19 · 3 min read
Drawing of developer using a laptop with serverless developer tools
Drawing of developer using a laptop with serverless developer tools

This article highlights a selection of open source tools to improve the developer experience of building with Serverless.

Some of these tools are specific to AWS Serverless and the Serverless Framework.

In no particular order…

1. Serverless Framework Plugin: serverless-iam-roles-per-function

Ensuring least privilege permissions for Lambda functions requires ensuring it’s easy for developers to specify a minimum set of IAM permissions for each function. The serverless-iam-roles-per-function allows per function IAM permissions to be specified with ease.

For more on the impact of least privilege see: Serverless-Transformation Lambda Security Checklist

https://github.com/functionalone/serverless-iam-roles-per-function
Per-Lambda IAM Roles also require your architecture to be structured in a granular way

2. Middy

“ The stylish Node.js middleware engine for AWS Lambda”

Middy allows you to use the middleware pattern to avoid polluting your Lambda handler functions with common technical steps — keeping them as clean business logic.

If you’re using Node.js and Lambda, Middy is a must-have!

Image for post
Image for post
https://github.com/middyjs/middy

3. Serverless Framework Plugin: serverless-step-functions

AWS Step Functions are great for managing workflows in a Serverless application via the Finite State Machine model. However, they are fairly verbose to write in pure Cloudformation. Luckily the serverless-step-functions plugin to the Serverless framework makes your life a lot easier!

Image for post
Image for post
https://github.com/serverless-operations/serverless-step-functions

4. Serverless Dev Tools: sls-dev-tools

sls-dev-tools provides a complete dashboard & toolset for Serverless Application Development, all inside your terminal — no more jumping to the AWS console.

Think Chrome DevTools, but for the Serverless world.

  • 💻Rapid In-Terminal Feedback (no more jumping to the AWS Console)
  • 📊Targeted metrics to empower you to build fast and efficient applications
  • ⌨️ Powerful keybindings to deploy, inject, open and manipulate stack resources without the clicks
  • 🛠Works with any IaC, from the Serverless Framework to SAM

5. Amplify Library

Amplify is a great project, and does many things. It’s a Library to easily connect to Cloud services, a CLI Tool and a set of UI Components.
All are interesting in their own right, yet it’s the Library that is super useful to most full-stack Serverless projects.

Regardless of the Infrastructure as Code tool used (Serverless, Amplify, CDK, SAM, Cloudformation…), the Library can hook into your stack via manual configuration and make the frontend development a breeze.

When the Amplify CLI is used to create resources the Amplify Library Configure looks something like this:

Image for post
Image for post
https://aws-amplify.github.io/docs/js/start#step-4-integrate-into-your-app

Yet, not all projects use Amplify to manage their resources. So manual configuration can be done as follows:

Image for post
Image for post
https://aws-amplify.github.io/docs/js/start#step-4-integrate-into-your-app

This example for Amazon Cognito authentication shows that with just 4 attributes the library can hook into your existing stack resources. Then something like phone number verification becomes as simple as:

Image for post
Image for post
https://aws-amplify.github.io/docs/js/authentication#verify-phone_number-or-email-address

Amplify supports the following services and more:

  • Analytics
  • API
  • Authentication
  • Data Store
  • Chatbots
  • Predictions (AI/ML)
  • PubSub
  • PushNotifications
  • Storage

I don’t suggest all projects can use amplify to manage their resources, but most can use its powerful library to interact with resources created by another tool (e.g. the Serverless Framework).

Serverless Transformation

Tools, techniques, and case studies of using serverless to…

Thanks to Rob Cronin

Ben Ellerby

Written by

VP Engineering at Theodo and AWS Serverless Hero. Working with startups to launch MVP’s and large corporates to deliver in startup speed.

Serverless Transformation

Tools, techniques, and case studies of using serverless to release fast and scale optimally.

Ben Ellerby

Written by

VP Engineering at Theodo and AWS Serverless Hero. Working with startups to launch MVP’s and large corporates to deliver in startup speed.

Serverless Transformation

Tools, techniques, and case studies of using serverless to release fast and scale optimally.

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