Releases: Learnspree/Serverless-Language-Performance-Framework
Fix POST requests to CloudFront Distribution
Fix POST requests to CloudFront Distribution.
The CloudFront changes in recent release were using default behaviour of only allowing GET, HEAD requests but POST must be allowed as the Azure logger calls the SPF API POST method to save azure metrics.
CloudFront Caching, DynamoDB OnDemand & Route53 Updates
Consumption of SPF data is much improved with following updates:
- Added customised CloudFront caching against now-Regional SPF API (previously Edge with default CloudFront cache which didn't include query string params on Read APIs)
- Deploy CloudFront & Route53 as direct Cloud Formation resources in SPF API serverless.yml instead of using previous serverless domain plugin - allows more flexibility with CloudFront cache
- Changed DynamoDB consumption plan settings to be flexible. Default is "provisioned" in Dev and "on-demand" in prod to keep up with increasing query load on production data
Azure Cost Calculations Fix and Improved Error Handling
Azure Cost Calculations Fix (the GB-second cost is fractionally lower for Azure than AWS) and Improved Error Handling on the get-mean and get-summary APIs to return 500 errors (wrapped by cloud front as 502) to the client which allows a client to provide meaningful error messages on failures (e.g. caused by provision-throughput exceeded errors on DynamoDB table)
Azure Testing - Full Production Features Added
Made Azure testing production ready by supporting:
- multiple environments (e.g. dev/prod) for test and logger deployments supported
- cleanup of deploy/remove scripts
- support side-by-side deployments of multiple versions of the same runtime (e.g. node 10 & 12)
- updated dotnet test function name to "dotnet31csx" to indicate the tested .net core version and use of c-sharp script (csx)
Azure Testing - support both Node 10/12 and Cold/Warm Start Detection
Azure Testing - now supports Node versions 10 & 12
Azure Testing - removed "warm" hardcoding and now supports both Cold/Warm Start Detection automatically - discarding any function results for the warm-start function if it was started in cold-start state and vice-versa (this is due to how we had to detect cold/warm vs. how we do it in AWS which is more flexible - see readme)
Azure Testing Support
Added initial azure testing support to replace the original (out-of-date) support that was quite manual in terms of setup and testing.
Supports testing the following runtimes (currently):
- Node 10
- CSX (sharp script)
Both above tests running on windows (linux testing support will follow).
Python support, Node 12.x will follow in future releases.
Cost Calculation & Init Duration Fixes
Fixed cost-calculation logic to return more accurate cost estimations.
Fixed return of InitDuration and TotalDuration fields from DynamoDB table in addition to existing Duration (i.e. execution duration) values.
Record InitDuration as part of AWS Lambda Cold Start Duration
Record InitDuration as part of AWS Lambda Cold Start Duration.
Duration is the execution time.
InitDuration is the environment-setup time (not billed but part of response time).
TotalDuration is now the sum of both.
New AWS Runtime Support
Added support for following runtime testing:
- Java 11
- Python 3.8
- Ruby 2.5
- Ruby 2.7
- NodeJS 10.x
Also:
- Updating serverless to 1.64.0 from 1.60.5
- Updating warm-start test schedule to be a 15-minute series ever 4 hours, rather than 3 minutes every hour to give smoother results more tolerant of spikes.
- Refactoring and cleanup of aws-test and aws-common stacks
Added 512MB Function Testing
Added 512MB Function Testing for all runtimes cold & warm