- Set timout & others on context in python invoke local
- Append in Custom Syntax
- Don't load config for
config
- Replace blocking fs.readFileSync with non blocking fs.readFile in checkForChanges.js
- Added layer option for deploy function update-config
- fix makeDeepVariable replacement
- Make local ruby pry work
- Replace \ with / in paths on windows before passing to nanomatch
- Support deploying GoLang to AWS from Windows!
- Fix windows go rework
- Make use of join operator first argument in sns docs
- add support for command type='container'
- Add Google Python function template
- Update config-credentials.md
- Update bucket conf to default AES256 encryption.
- Fix: override wildcard glob pattern (**) in resolveFilePathsFromPatterns
- Indicate unused context in aws-nodejs-typescipt
- Add stack trace to aws/invokeLocal errors
- Missing underscore
- Updating cloudformation resource reference url
- Docs: Replacing "runtimes" with "templates"
- Add support for websockets event
- AWS: ${ssm} resolve vairbale as JSON if it is stored as JSON in Secrets Manager
- Fix service name in template install message
- Fixes for AWS cors config issues
- Preserve whitespaces in single-quote literal fallback
- AWS: Add fallback support in ${cf} and ${s3}
- Throw an error if plugin is executed outside of a serverless directory
- Require provider.credentials vars to be resolved before s3/ssm/cf vars
- Provide multi origin cors values
- handle layers paths with trailing slash and leading ./ or just .
- Resolve profile before performing aws-sdk dependent actions
- Fix assuming a role with an AWS profile
- Allows Fn::GetAtt with Lambda DLQ-onError
- Fix #5664 - Rollback fails due to a timestamp parsing error
- AWS: Tell S3 bucket name and how to recover if deployment bucket does not exist
- Do not print logs if print command is used.
- Default to error code if message is non-existent
- Add resource count and warning to info display
- Add uploaded file name to log while AWS deploy
- Enable tab completion for slss shortcut
- Upgrade google-cloudfunctions to v2 and set defaults to node8 etc
- Convert reservedConcurrency to integer to allow use env var
- AWS: Consolidates Lambda::Permission objects for cloudwatchLog events
- Suppress confusing warning "A valid undefined..."
- Add google go template
- Provide AWS_PROFILE from configuration for invoke local
- Test that CLI does not convert numeric option to number
- Remove duplicate-handler warnings based on community feedback.
- Enable download template from a private github repo using personal access token
- Fix sls plugin install -n @scoped/package
- AWS: Request cache should add region as key to prevent cross-region cache collision
- Fixed a link
- Clarify docs for the http key for GCF
- Fix awsProvider.js : "Cannot use 'in' operator to search for '0'
- Fix array notation in stream ARN
- Remove platform code
- Increase @types/aws-lambda version in aws-nodejs-typescript template
- Update aws-scala-sbt template
- docs: Kubeless secrets
- docs menu sidebar - added [Getting Started] above [Providers]
- Fix layer doc reference to functions (should be layers)
- Log AWS SDK calls in debug mode
- Added currently supported regions for GCP functions
- Update Cloudflare Templates
- AWS: Validate rate/cron syntax before Deploy
- Fix error log output
- Support for native async/await in AWS Lambda for aws-nodejs-typescript template
- aws-csharp create template uses handler-specific artifact
- change behaviour on initial stack create failed
- Add warning for multiple functions having same handler
- AWS: Add API Gateway stage name validation.
- fix Cloudflare template config
- AWS: Fix ${cf.REGION} syntax causes deployment in wrong region
- support for @ symbol in ${file()} variables paths
- Fix ResourceLimitExceeded for cloudwatchLog event
- various documentation updates (#5625, #5613, #5628, #5659, #5618, #5437, #5623, #5627, #5665)
- Fix logRetentionInDays regression in AWS
invoke local
support for Ruby lambdas- Set reserved concurrency in cfn template even if zero
- Fix
--env
being shadowed when usingsls invoke local
- Preserve whitespace in variable literal defaults
- Drastically improved dev dependency exclusion performance
- Extend ${cf} syntax to get output from another region
- Upgrade aws-sdk dep to fix issues with using AWS Profiles
- Documentation updates
- Lambda Layers support
- Python3.7 support
- Updating roles requirement for GCF deployment
- Support returning promises from serverless.js
- update CloudFlare worker docs to new more consistent config
- fix --aws-profile so it overrides profile defined in serverless.yml
- Fix invoke local when using a callback in nodejs
- Fix parsing of --data & --context option with invoke local
- 2116 consistent errors missing config
- Update plugin version of google-nodejs template
- insert line break to suppress warning
- Fix wrong example function name.
- Removed errant apostrophe
- Wrong error when S3 bucket name starts with an upper-case character
- Fix integration test
- Use pythonX instead of pythonX.Y in invoke local(take 3)
- update python invokeLocal to detect tty
- Fix typo in Google workflow
- Updating services.md > Invoking Serverless locally
- Assume role and MFA support for Serverless CLI
- Fix build error caused by new docs PR
- Adding Ruby support for OpenWhisk provider plugin.
- Update Cloudflare Workers documentation
- break single general issue template into two specialized templates
- Improve language in alexa-skill documentation
- APIG ApiKeySourceType support.
- Revert "Update cognito-user-pool.md"
- Let function package.individually config override service artifact
- Added CloudWatch Proxy to examples
- Multiple cloudformation resources
- Added possibility to specify custom S3 key prefix instead of the stan…
- Doc update for openwhisk package name
- add aws-go-mod
- Fix bin process not always exiting
- Avoid args being rounded and converted to numbers
- Add CacheControl headers on the OPTIONS response in AWS API Gateway
- fix Makefile style for Go template
- Update handler name when deploy a single function
- fix: Implement context.log function for invoke local command on Python environment.
- validate if serverless.yml exists when running sls info command
- Update documentation, README.md
- Remove invalid log
- fix 3916
- Update cognito-user-pool.md
- add gitignore setting to Go template
- fixed anchor links in aws/guide/variables.md file
- Serverless Pipeline
- add Serverless Line Bot example
- Update invoke-local.md
- Webtask Deprecation
- Add Support for Shorthand CloudFormation Syntax
- Provide Consistent Service Path (Fix #5242)
- null
- Add Cloudflare to docs/getting-started page.
- Invoke local override env
- more faithfully represent aws lambda python runtime context
- Update AWS TypeScript handler template
- add untildify package to handle create paths with a ~
- [Docs] - Add support information for AWS lambda and SQS
- Update README.md
- Add information on invoking Workers.
- Update quick-start.md
- Cloudflare: Specify config under provider property
- Create an HttpsProxyAgent for plugin list if necessary
- Add support for Cloudflare Workers
- docs: Fix mismatch in AWS Metrics
- Add new template for AWS Alexa Typescript
- Remove
/tmp/node-dependencies*
- Adds FilterPolicy to SNS event
- Update API Gateway Default Request Templates
- Update serverless.yml.md
- Fix for #3069 - Failing to handle schedule event body params
- Remove redundant link to same docs page
- Fixed a bug when using DynamoDB events with Serverless Platform
- Fixed a bug when using deep variable references
- Fixed an issue with Makefile of the aws-go-dep template
- Fix CI deployment to Serverless Platform
- Fix a minor resources ID issue on Serverless Platform
- Update nodejs template to 8.10
- Added support for multiple access keys for multiple tenants
- Fixed a publishing bug when having more than 100 resources
- Add Windows support for spawning mvn
- Update spawn API with {shell=true}
- AWS Clojurescript Gradle Template
- Use latest dotnet runtime in AWS Lambda
- Ignore null errors to allow resolution instead of rejection on undefined SSM variables
- Fixed a bug when using deep variable references
- Add support for installing templates and boilerplates from GitLab
- Fixed that create command didn't use the service name given as -n option
- Fixed a bug when using APIG lambda integration with Serverless Dashboard
- Fixed a bug by transforming env var to string when setting num value
- Fixes issue with Node 10.7.0
- Serverless Dashboard Updates: Subscriptions, Resources, Deploys and Refresh Tokens
- Support
invoke local
of AWS Lambda Async Functions - Improve aws-scala-sbt template
- Add SQS event integration
- Integration with the Serverless Dashboard
- Add APIG resource policy
- Add PRIVATE endpoint type
- Added ability to create custom stack names and API names
- Add print options to allow digging, transforming and formatting
- only use json-cycles when opt-in, for state serialization
- Make function tags inherit provider tags
- Make local plugins folder configurable
- More flexible version constraint for AWS Lambda Go library
- Update aws-java-maven template to use Log4J2 as recommended by AWS
- Fix binary support for pre-flight requests (OPTIONS method)
- Add maxAge option for CORS
- Add fn integration
- iamManagedPolicies merging with Vpc config
- Support arrays in function definition too
- Add iam managed policies
- Pass authorizer custom context to target lambda
- Allow UsagePlan's to be created without ApiKeys defined
- Added name property to cloudwatchEvent CF template
- Java maven templates for OpenWhisk
- Pass serverless variable when calling function in referenced file
- Eliminate/Report Hung Promises, Prepopulate Stage and Region, Handle Quoted Strings
- Restricting alexaSkill functions to specific Alexa skills
- Add support for concurrency option in AWS Lambda
- Fix concurrency upload
- Support AWS GovCloud and China region deployments
- AWS Go support
- Support for using an existing ApiGateway and Resources
- Add logRetentionInDays config
- Add support of
serverless.js
configuration file - Add "did you mean..." CLI suggestions
- Add
--template-path
option toserverless create
- Add support POJO input support for Java invoke local
- Improve Stage and Region Usage
- Add API Gateway endpoint configuration
- Add cache to Variables class
- Added support for circular references in the variable system
- Circular Vars Fix
- Ignore the check whether deploymentBucket exists when using "package"
- Template / AWS Kotlin JVM Gradle
- Basic logging for python invoke local
- Add Amazon S3 Transfer Acceleration support
- Updated awsProvider to allow manual specification of certificate auth
- Fix lambda version generation when only function config changes
- Added request cache and queue to AWS provider and use it from variable resolution
- Add significant variable usage corner cases
- 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)