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)