Today we're thrilled to announce the release of the Serverless Framework v1.6.0.
This release is a special one as it's the first version to include official support for a new provider: OpenWhisk.
Furthermore, we've added a bunch of new features and enhancement you'll enjoy! Let's take a look at the highlights of this release.
Highlights of 1.6.0
Note: You can find a complete list of all the updates in the changelog.
OpenWhisk support
Serverless v1.6 is the first version that officially supports a different provider besides AWS!
From now on you can also write Serverless applications for OpenWhisk!
The only thing you need to do is to install the Serverless OpenWhisk plugin:
serverless install -g serverless-openwhisk
And create a new service based upon the OpenWhisk template:
serverless create --template openwhisk-nodejs
We recommend checking out the OpenWhisk documentation and the "Hello World" example to get started!
There's also an example application in the Serverless examples repository.
Python support for invoke local command
Back in v1.1 we introduced the "invoke local" plugin so that you can invoke your Serverless functions locally.
We started with support for the Node.js runtime, but got immediate feedback that Python should be supported as well.
Today we're happy to announce that "invoke local" now supports the Python runtime!
Next up is Java!
Do you have expertise with Java? Great! Please chime in on the discussion about local Java invocation so that we can add support for this runtime in one of the next releases!
Optional Lambda versioning
Versioning your Lambda function has been an often requested feature for production environments. In 1.3 we added this feature and introduced Lambda versioning on every deplot. Lambda versioning is turned on by default.
However, sometimes you don't want to version your Lambdas. v1.6 introduces a simple way to disable Lambda versioning.
Simply add the versionFunctions
property to the provider section and set it to false
:
provider:
versionFunctions: false
This will turn off Lambda versioning upon the next deployment.
Significant reduction of CloudFormation Outputs
In the past Serverless added a bunch of different Outputs
to the CloudFormation template. This caused some problems with large services since limts for CloudFormation Outputs were reached frequently.
The possibility to opt out of Lambda versioning (which creates an output for your Lambda version) and the removal of the functions arn
displaying in the "info" plugin will reduce the Output
count significantly.
These changes, available in v1.6, should make it possible to write and deploy larger Serverless services.
Reduce memory consumption on deploy by ~50%
Deployments had a huge memory footprint when uploading the artifacts to the S3 bucket. This memory consumption was reduced by ~50%.
Take a look at the Pull Request to see how changing one line of code can make a huge difference in performance.
Support for SNS subscriptions to existing topics
Until now you needed to sign into the AWS console and add a permission manually so that your Lambda function can be called with the help of your existing SNS topic.
A Pull Request which was merged in v1.6 makes it possible to specify just the ARN to the SNS topic and Serverless will create the permission automatically.
Enhancement and bug fixes
This time we've fixes lots of nasty bugs and reworked some functionalities behind the scenes.
As usual:
Thanks for reporting the bugs and opening issues to improve Serverless!
Breaking changes
We're making a slight change and won't follow strict semver anymore.
Starting today, there may be breaking changes in every release. However, we keep the breaking changes as minimal and as painless as possible.
Furthermore, we'll include guides to show you how to migrate your current codebase in the changelog. Take a look here for the v1.6 migration guides.
Here's a list of all the breaking changes in this release:
- BREAKING - Remove getStackName() method
- BREAKING - Create Log Group Resources By Default
- BREAKING - Refactor function arn generation for info plugin
- BREAKING - Remove defaults service property
Contributors
This release contains lots of work from our awesome community and wouldn't have been possible without passionate people contributing to Serverless.
Here's a list of all the contributors who submitted changes to the codebase in this release:
- Alasdair Nicol
- Andrew Sprouse
- Chris Anderson
- Daniel Schep
- Dave Townsend
- Doug Moscrop
- Eetu Tuomala
- Erik Erikson
- Fabien Ruffin
- James Thomas
- Luke Childs
- Rasmus Faddersbøll
- Ryan S. Brown
- Ryan Stelly
- Sergey Semyonov
- Vlad Golubev
- domharrington
- horike37
- payoub
Get involved
Serverless has an awesome and vibrant community. Do you want to help us develop the best Serverless tools out there?
Congributing isn't just writing code! Chime in on discussion, help with documentation updates or review PRs.
Just filter by our labels such as easy-pick, help-wanted or needs-feedback to find areas where you can help us!
Next Steps
We've already started filling in the next milestones. Check out the 1.7 milestone to see what we're working on for the next release.
We hope that you like the new release! Let us know if you have any questions or feedback in our Forum or GitHub Issues.
The Serverless Examples Repository is an excellent resource if you want to explore some real world examples and learn more about what Serverless architectures look like.