Summary
We packed this release with a bunch of new features and performance improvements:
- Support for multiple CORS origins in the event handler
- New parser support for SQS events wrapped in Kinesis Firehose
- Huge performance improvements when using the
CodePipelineJobEvent
event source - Tons of documentation enhancements on Feature Flags and Batch Processing
⭐ Huge thanks to new contributors: @roger-zhangg and @darnley!!
Support for multiple CORS origins in the event handler
Docs: Multiple CORS origins
We added support for multiple origins in CORS when defining an event handler. Supporting multiple CORS origins enables API calls from different domains and the integration of various sources. Your existing code will continue to work as it is.
New parser support for SQS events wrapped in Kinesis Firehose
SQS event notifications can sometimes be ingested into Lambda via an intermediary such as Kinesis Firehose (i.e. Lambda event source), for various architectural reasons - batching, retries, etc. However, from the Lambda function's perspective, the intermediary might not be too important; what's important is the SQS event notification itself. Now you can easily parse and access the inner payload for Kinesis Firehose-wrapped SQS events.
Huge performance improvements when using the CodePipelineJobEvent
event source
Thanks to @darnley, we found out that using the CodePipelineJobEvent
came with a performance penalty, and we fixed it by optimizing the way we load dependencies.
Documentation enhancements on Feature Flags and Batch Processing
We've completely revamped and fine-tuned all the samples and snippets for our Feature Flags and Batch Processing utilities! We took the time to bring the examples closer to real-world usage and fixed any syntax errors. We can't wait for you to try them out!
Changes
🌟New features and non-breaking changes
- feat(user-agent): add custom header User-Agent to AWS SDK requests (#2267) by @roger-zhangg
- feat(parser): add support for parsing SQS events wrapped in Kinesis Firehose (#2294) by @leandrodamascena
- feat(docs): Move docs to S3 (#2277) by @sthulb
- feat(event_handler): allow multiple CORS origins (#2279) by @rubenfonseca
📜 Documentation updates
- fix(event_source): change the import location of boto3 in CodePipelineJobEvent data class (#2353) by @darnley
- docs(project): rename project to Powertools for AWS Lambda (Python) (#2313) by @sthulb
- feat(parser): add support for parsing SQS events wrapped in Kinesis Firehose (#2294) by @leandrodamascena
- feat(docs): Move docs to S3 (#2277) by @sthulb
- feat(event_handler): allow multiple CORS origins (#2279) by @rubenfonseca
- docs(batch): add encryption at rest for SQS (#2290) by @heitorlessa
- chore(deps): update mkdocs configuration to support pymdown-extensions 10.0 (#2271) by @leandrodamascena
- docs(feature_flags): snippets split, improved, and lint (#2222) by @leandrodamascena
- docs(batch_processing): snippets split, improved, and lint (#2231) by @rubenfonseca
🐛 Bug and hot fixes
- fix(logger): remove subclassing and move unnecessary APIs (#2334) by @heitorlessa
- fix(event_source): change the import location of boto3 in CodePipelineJobEvent data class (#2353) by @darnley
🔧 Maintenance
- chore(deps-dev): bump cfn-lint from 0.77.5 to 0.77.6 (#2360) by @dependabot
- feat(user-agent): add custom header User-Agent to AWS SDK requests (#2267) by @roger-zhangg
- chore(deps): bump aws-actions/configure-aws-credentials from 2.0.0 to 2.1.0 (#2350) by @dependabot
- chore(deps): bump typing-extensions from 4.5.0 to 4.6.2 (#2345) by @dependabot
- docs(project): rename project to Powertools for AWS Lambda (Python) (#2313) by @sthulb
- chore(deps-dev): bump types-requests from 2.31.0.0 to 2.31.0.1 (#2339) by @dependabot
- chore(deps-dev): bump coverage from 7.2.6 to 7.2.7 (#2338) by @dependabot
- chore(deps-dev): bump mkdocs-material from 9.1.14 to 9.1.15 (#2337) by @dependabot
- chore(deps-dev): bump aws-cdk from 2.80.0 to 2.81.0 (#2332) by @dependabot
- chore(deps-dev): bump coverage from 7.2.5 to 7.2.6 (#2326) by @dependabot
- chore(deps-dev): bump pytest-cov from 4.0.0 to 4.1.0 (#2327) by @dependabot
- chore(deps): bump actions/setup-python from 4.6.0 to 4.6.1 (#2325) by @dependabot
- chore(deps-dev): bump types-requests from 2.30.0.0 to 2.31.0.0 (#2315) by @dependabot
- chore(deps-dev): bump sentry-sdk from 1.23.1 to 1.24.0 (#2314) by @dependabot
- chore(deps): bump pydantic from 1.10.7 to 1.10.8 (#2316) by @dependabot
- chore(ci): source code tampering protection for release (#2301) by @heitorlessa
- chore(deps): bump requests from 2.28.2 to 2.31.0 (#2308) by @dependabot
- chore(deps-dev): bump aws-cdk from 2.79.1 to 2.80.0 (#2305) by @dependabot
- chore(deps): bump fastjsonschema from 2.16.3 to 2.17.1 (#2307) by @dependabot
- chore(deps-dev): bump mkdocs-material from 9.1.13 to 9.1.14 (#2304) by @dependabot
- chore(deps-dev): bump httpx from 0.24.0 to 0.24.1 (#2298) by @dependabot
- chore(deps-dev): bump pytest-xdist from 3.3.0 to 3.3.1 (#2297) by @dependabot
- chore(deps-dev): bump mypy-boto3-secretsmanager from 1.26.116 to 1.26.135 (#2282) by @dependabot
- chore(deps-dev): bump sentry-sdk from 1.23.0 to 1.23.1 (#2283) by @dependabot
- chore(deps-dev): bump mkdocs-material from 9.1.12 to 9.1.13 (#2280) by @dependabot
- chore(governance): Fix python version in issue templates (#2275) by @leandrodamascena
- chore(deps): update mkdocs configuration to support pymdown-extensions 10.0 (#2271) by @leandrodamascena
- chore(deps): bump pymdown-extensions from 9.11 to 10.0 (#2262) by @dependabot
- chore(deps-dev): bump sentry-sdk from 1.22.2 to 1.23.0 (#2264) by @dependabot
- chore(deps): bump codecov/codecov-action from 3.1.3 to 3.1.4 (#2263) by @dependabot
- chore(deps-dev): bump mkdocs-material from 9.1.11 to 9.1.12 (#2253) by @dependabot
- chore(deps-dev): bump pytest-xdist from 3.2.1 to 3.3.0 (#2251) by @dependabot
- chore(deps-dev): bump aws-cdk from 2.79.0 to 2.79.1 (#2252) by @dependabot
- chore(ci): update layer ARN docs and create PR during release (#2240) by @heitorlessa
- chore(ci): bump package version after release via pull request (#2239) by @heitorlessa
- chore(ci): convert create-pr steps into composite action (#2238) by @heitorlessa
- chore(ci): changelog rebuild (#2241) by @github-actions
- chore(deps-dev): bump aws-cdk from 2.78.0 to 2.79.0 (#2235) by @dependabot
- docs(batch_processing): snippets split, improved, and lint (#2231) by @rubenfonseca
- chore(deps-dev): bump mypy from 1.2.0 to 1.3.0 (#2233) by @dependabot
- chore(deps-dev): bump types-python-dateutil from 2.8.19.12 to 2.8.19.13 (#2234) by @dependabot
- chore(deps-dev): bump mkdocs-material from 9.1.9 to 9.1.11 (#2229) by @dependabot
- chore(deps-dev): bump cfn-lint from 0.77.4 to 0.77.5 (#2228) by @dependabot
- chore(deps): bump zgosalvez/github-actions-ensure-sha-pinned-actions from 2.1.2 to 2.1.3 (#2227) by @dependabot
- chore(ci): skip analytics on forks (#2225) by @heitorlessa
- chore(ci): create pull request on changelog update (#2224) by @heitorlessa
- chore(deps-dev): bump mypy-boto3-cloudwatch from 1.26.99 to 1.26.127 (#2219) by @dependabot
- chore(deps-dev): bump types-requests from 2.29.0.0 to 2.30.0.0 (#2220) by @dependabot
- chore(deps-dev): bump mypy-boto3-s3 from 1.26.116 to 1.26.127 (#2218) by @dependabot
- chore(ci): schedule changelog to rebuild daily at 8am, and on release only (#2216) by @heitorlessa
- chore(ci): remove auto-merge workflow (#2214) by @heitorlessa
- chore(ci): enforce zero trust for third party workflows (#2215) by @heitorlessa
- chore(deps-dev): bump aws-cdk from 2.77.0 to 2.78.0 (#2202) by @dependabot
This release was made possible by the following contributors:
@darnley, @dependabot, @dependabot[bot], @github-actions, @github-actions[bot], @heitorlessa, @leandrodamascena, @roger-zhangg, @rubenfonseca, @sthulb and Release bot