- Fix this.userStats.track is not a function error when tailing function logs
- Improve variables test
- Error when file referenced in serverless.yml does not exist
- Run "serverless deploy list" if timestamp is not specified in rollback command
- Add alexaSmartHome event
- Distinguish plugin initialization error from plugin not found error
- Removing private: true from function does not change it's state
- Change packaging order in zipFiles function
- Enable bluebird long stack traces only in SLS_DEBUG mode
- Create service using template from an external repository
- API Gateway timeout hardcap
- Set stdin to a TTY in invoke.py to allow PDB use
- Add function attached to API Gateway effective timeout warning
- Exclude dev dependency .bin executables
- Fix "deploy function" command by normalizing role
- Add print command to generate output of computed serverless.yml
- Print message if Serverless Framework update is available
- Allow symlinks as custom variable files in serverless.yml
- Provide option to conceal API Gateway key values from the output
- Configurable Authorizer Type
- Obey VIRTUAL_ENV on Windows
- Implement pinging for the CLI login
- Fixed a bug with deploy function not inheriting provider config
- Added Auth0 Webtasks Provider Template for Nodejs
- Added Java support for invoke local
- Serverless now fails if provided profile is not valid
- Removed escaping of double quotes around string values in Serverless Variables
- Added 4 new plugin commands
- Added aws-kotlin-jvm-marven template
- Added --update-config option to deploy function command
- Added description to CloudWatch Events
- Added support for aliasing commands
- Added --function option to deploy command
- Fixed a bug with Kinesis events
- Fixed a bug with packaging
- Allow custom CLI class instances
- Add support in Spotinst Functions
- Add PHP support for OpenWhisk
- Fixed a bug with stack deletion monitoring
- Allow AWS Profile CLI option to overwrite config and env
- Improve performance of the package plugin
- Add support for custom context with Invoke Local
- Add aws-nodejs-typescript template
- Add aws-nodejs-ecma-script template
- Allow updates for AWS profiles
- Fixed a bug in Invoke Local when using Python in Windows
- Fixed a bug with the Variable System overwrites
- Add Serverless Run plugin
- Add Serverless Emit plugin
- Kubeless template for python and nodejs
- Improve deprecation hook message
- Removed provider name validation
- Fixed a bug with dev dependencies exclusion
- Fixed a bug with "deploy list functions"
- Fixed a bug with Serverless Plugins loading
- Added support for a new "default" property for Plugins CLI options
- Fixed a bug with dev dependencies exclusion
- Added support for a new "publish" property to opt-out from Platform publishing
- Fixed a bug with "sls remove" when the stack includes Exports
- Added support for request parameter configuration with lambda-proxy integration
- Enhanced the environment variables for invoke local to include AWS_REGION
- Updated the deploy command to ignore custom plugins in service directory during deployment
- Fixed a bug with function packaging
- Updated the package command to ignore function packaging if a custom artifact is specified
- Added support for absolute paths when using Serverless Variables file references
- Cleanup F# build template output on macOS - #3897
- Add disable flag for OpenWhisk functions - #3830
- Only redeploy when the code/config changes - #3838
- Add opt-out config for dev dependency exclusion - #3877
- Add infinite stack trace for errors - #3839
- Fixed a bug with autocomplete - #3798
- CI/CD fix for the Serverless Platform - #3829
- Added support for usage plans to APIG - #3819
- Optmizied packaging to exclude dev dependencies - #3737
- Added support for S3 server side encryption - #3804
- Improved HTTP error handling - #3752
- Throw an error when requsted CF variable doesn't exist - #3739
- Throw an error if an individual package is empty - #3729
- Fixed autocomplete bug with help option - #3781
- Fixed installation error - #3763
- Added autocomplete support to the CLI - #3753
- Added KMS key support - #3672
- Added Cognito User pool support - #3657
- Added serverless.json support - #3647
- Added aws-profile support - #3701
- Added CloudFormation validation support - #3668
- Fixed S3 event race condition bug - #3705
- Fixed CORS origin config bug - #3692
- Added login command - #3558
- Added support for DeadLetter Config with SNS - #3609
- Added support for S3 variables - #3592
- Added rollback function command - #3571
- Added
X-Amz-User-Agent
to list of allowed headers in CORS - #3614 - Added support for HTTP_PROXY API Gateway integration - #3534
- Added IS_LOCAL environment variable with invoke local command - #3642
- Removed package.json in exclude rules - #3644
- Fixed a bug when using dot notation in YAML keys (#3620)
- Fixed bug when referencing variables from other variable object values (#3604)
- Fixed bug when packaging a functions-free service (#3598)
- Added support for cross service communication via CloudFormation outputs (#3575)
- Add Lambda tagging functionality (#3548)
- Added support for Promises in the variable system (#3554)
- Added hello-world template (#3445)
- Improved Info plugins lifecylce events for plugin authors (#3507)
- Allow service to be specified as object in serverless.yml (#3521)
- Fix bug when using the package command with the variable system (#3527)
- Separated packaging and deployment with a new package command (#3344)
- Extend OpenWhisk runtime support (#3454)
- Upgrade gradle wrapper to 3.5 (#3466)
- Fixed bug when using event streams with custom roles (#3457)
- Fixed bug with SNS events (#3443)
- Fixed bug when using custom deployment bucket (#3479)
- Added support for Python 3.6 for Lambda (#3483)
- Added new syntax to specify ARN for SNS events (#3505)
- Add CloudWatch Logs Event Source (#3407)
- Add version description from function (#3429)
- Add support for packaging functions individually (#3433)
- Add support for packaging functions individually at the function level (#3433)
- Update serverless-alpha detection (#3423)
- Fixed bug with ANY http method (#3304)
- Reduced unit test time significantly (#3359)
- Added AWS Groovy Gradle Template (#3353)
- Reduce dependency tree depth between IAM & Log Groups (#3360)
- Added entrypoints for plugins (#3327)
- Removed pre-install script (#3385)
- Expose plugin hooks (#2985)
- Add support for Node 6 runtime in invoke local (#3403)
- Updated Node.js templates to include Node 6 runtime by default (#3406)
- Removed breaking changes warnings (#3418)
- Auto loading serverless-alpha plugin (#3373)
- Fixed bug with serverless plugins lookup (#3180)
- Fixed bug with
serverless create
generated .gitignore (#3355) - Fixed bug with authorizer claims (#3187)
- Added support for CloudFormation service roles (#3147)
- Improvements for invoke local plugin (#3037)
- Added Azure Functions Node.js template in
serverless create
(#3334) - Allow DynamoDB and Kinesis streams to use GetAtt/ImportValue (#3111)
- Fixed bug with deployment progress monitoring (#3297)
- Fixed "too many open files" error (#3310)
- Fixed bug with functions lists loaded from a separate file using Serverless Variables (#3186)
We've removed the IamPolicyLambdaExecution
resource template and replaced it with inline policy within the role as it's been causing issues with VPC and bloating the CF template. This is a breaking change only for users who are depending on that resource with Ref
or similar CF intrinsic functions.
The function name displayed when you run sls info
is now the short function name as found in serverless.yml
rather than the actual lambda name to keep it more provider agnostic. This could be breaking for any user who is depending or parsing the CLI output.
- Added CloudWatch event source (#3102)
- Fixed average functions duration calculation in "sls metrics" output (#3067)
- Added SLS_IGNORE_WARNINGS flag and logging upcoming breaking changes (#3217)
- Reduced memory consumption during zipping process (#3220)
- Fixed bug when using LogGroup resources with custom roles (#3213)
A minimal patch release that fixes an issue with rendering README.md on npm registry.
Important Note: This release includes breaking changes. If your services stopped working after upgrading to v1.6.0, please read the following section.
Up until this release, CloudWatch log groups were created implicitly by AWS/Lambda by default and were not included in your service stack. However, some users were able to easily reach the CloudWatch log group limits (currently at 500 log groups), and it wasn't an easy task to clear them all. Because of that we decided to explicitly create the log groups using CloudFormation so that you can easily remove them with sls remove
. This was also optionally possible with the cfLogs: true
config option.
If your service doesn't have the cfLogs: true
set, and one of the function has been invoked at least once (hence the log groups were created implicitly by AWS), then it's very likely that you'll receive a "log group already exists" error after upgrading to v1.6.0. That's because CF is now trying to create the already created log groups from scratch to include it in the stack resources. To fix this breaking change, simply delete the old log group, or rename your service if you must keep the old logs.
Up until this release, the output section of the generated CloudFormation template included an output resource for each function Arn. This caused deploying big services to fail because users were hitting the 60 outputs per stack limit. This effectively means that you can't have a service that has more than 60 functions. To avoid this AWS limit, we decided to remove those function output resources completely, to keep the stack clean. This also means removing the function Arns from the sls info
command, and at the end of the deployment command.
This is a breaking change for your project if you're depending on those function output resources in anyway, or if you're depending on function arn outputs from the deploy or info commands. Otherwise, your project shouldn't be affected by this change. Fixing this issue depends on your needs, but just remember that you can always create your own CF outputs in serverless.yml
.
This is a breaking change for plugin authors only. If your plugin used the provider.getStackName()
method, it has been moved to naming.js
, and should be referenced with provider.naming.getStackName()
instead.
We've finally dropped support for the defaults
property which we introduced in v1. All child properties should now be moved to the provider
object instead.
- Reduce memory consumption on deploy by at least 50% (#3145)
- Added openwhisk template to
sls create
command (#3122) - Allow Role 'Fn::GetAtt' for Lambda
role
(#3083) - Added Access-Control-Allow-Credentials for CORS settings (#2736)
- add Support for SNS Subscription to existing topics (#2796)
- Function version resources are now optional. (#3042)
- Invoke local now supports python runtime. (#2937)
- Fixed "deployment bucket doesn't exist" error (#3107)
- Allowed function events value to be variables (#2434)
- Fix bug with multi line values is given in IoT events (#3095)
- Add support of numeric template creation path (#3064)
- Fix deployment bucket bug when using eu-west-1 (#3107)
- Added IoT event source support (#2954)
- Cognito user pool authorizer (#2141)
- Service installation with a name (#2616)
- Fix VTL string escaping (#2993)
- Scheduled events are enabled by default (#2940)
- Update status code regex to match newlines (#2991)
- Add check for preexistent service directory (#3014)
- Deployment monitoring fixes (#2906)
- Credential handling fixes (#2820)
- Reduced policy statement size significantly (#2952)
- Alexa event support (#2875)
- New C# service template (#2858)
- Local Invoke Improvements (#2865)
- Service wide metrics (#2846)
- Install service by pointing to a Github directory (#2721)
- Add support for stdin for invoke & invoke local (#2894)
- Fixed exit code for failed function invocations (#2836)
- Stricter validation for custom IAM statements (#2132)
- Fixed bug in credentials setup (#2878)
- Removed unnecessary warnings during Serverless installation (#2811)
- Removed request and response config when using proxy integration (#2799)
- Internal refactoring
- Metrics support (#1650)
- AWS credential setup command (#2623)
- Lambda versioning on each deploy (#2676)
- Documentation improvements with
serverless.yml
file reference (#2703) - Display info how to use SLS_DEBUG (#2690)
- Drop
event.json
file on service creation (#2786) - Refactored test structure (#2464)
- Automatic test detection (#1337)
- Add DependsOn for Lamda functions and IamPolicyLambdaExecution (#2743)
- Add JSON data parsing for invoke command (#2685)
- Internal refactoring
- Lambda environment variables support (#2748)
- Load Serverless variables from javascript files (#2495)
- Add support for setting custom IAM roles for functions (#1807)
- Lambda environment variables support in Invoke Local (#2757)
- Tighter and secure permissions for event sources (#2023)
- Fix
--noDeploy
flag to generate deployment files offline without needing internet connection (#2648) - Bring back the
include
packaging feature with the help of globs (#2460) - Internal refactoring
We will include the LogGroup for your Lambda function in the CloudFormation template in the future. This will break deployments to existing applications because the log group was already created. You will get a warning about this if you deploy currently. We will force this behaviour in a future release, for now you can set it through the cfLogs: true
parameter in your provider config. This change will also limit the logging rights to only this LogGroup, which should have no impact on your environment. You can read more in our docs.
- Rollback Support (#2495)
- Log Groups in Cloudformation (#2520)
- Allow Services without functions (#2499)
- Clean up S3 Deployment bucket only after successful deployment (#2564)
- Allow Inclusion after Exclusion using ! Globs (#2266)
- Version Pinning for Serverless Services to only deploy with specified versions (#2505)
- Invoke local plugin (#2533)
- Plugin template (#2581)
- Simple Plugins are now installable in subfolder of the service (#2581)
- Fix variable syntax fallback if the file doesn't exist (#2565)
- Fix overwriting undefined variables (#2541)
- Fix CF deployment issue (#2576)
- Correctly package symlinks (#2266)
- Large documentation refactoring (#2527)
Following is a selection of features, bug fixes and other changes we did since 1.0.2. You can also check out all changes in the Github Compare View
- Stack Tags and Policy (#2158)
- CF Stack Output Variables in Verbose deploy output (#2253)
- Custom Status code for non-proxy APIG integration (#2014)
- Function Runtime can now be configured per function (#2425)
- Allow absolute path for invoke command event file (#2443)
- Add list deployments command to show last deployments stored in S3 bucket (#2439)
- Fix not thrown error after failed ResourceStatus bug (#2367)
- Fix overwrite resources and custom resource merge bug (#2385)
- Clean up after deployment works correctly now (#2436)
- Migrate Integration tests into main repository (#2438)
- Clean up NPM package (#2352)
- Clean up Stats functionality (#2345)
Accidentally released 1.0.1 to NPM, so we have to skip this version (added here to remove confusion)
- The HTTP Event now uses the recently released Lambda Proxy by default. This requires you to change your handler result to fit the new proxy integration. You can also switch back to the old integration type.
- The Cloudformation Name of APIG paths that have a variable have changed, so if you have a variable in a path and redeploy CF will throw an error. To fix this remove the path and readd it a second deployment.
Following is a selection of the most important Features of the 1.0.0 since 1.0.0-rc.1.
You can see all features of 1.0.0-rc.1 in the release blogpost
- New documentation website https://serverless.com/framework/docs
- API Gateway Improvements
- Supporting API Gateway Lambda Proxy (#2185)
- Support HTTP request parameters (#2056)
- S3 Event Rules (#2068)
- Built-in Stream Event support (Dynamo & Kinesis) (#2250)