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

Image for post
Image for post
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

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.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

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