NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #997 most downloaded on PyPI
Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless best practices and increase developer velocity.
Last release 12 days ago
15 Sep 2026
Ships fairly regularly
a new release about every 3 weeks
Nearly every release is documented
notes for 58 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
7 years old
530 releases · first in 2019
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
One column per quarter.
Thanks to @tcysin, we have added deprecated flag support when working with OpenAPI operations in the Event handler.
We are thrilled to announce support for querying Powertools Lambda layers ARN using SSM public parameters.
We also added support for API Gateway WebSocket events in the parser utility and added Lambda layer support in the AWS Malaysia region (ap-southeast-5).
Thanks to @tcysin, we have added deprecated flag support when working with OpenAPI operations in the Event handler.
🌟 ⭐ Congratulations to our new contributors @TurnrDev and @tcysin for getting their first PR merged!
Customers can now retrieve the latest Powertools for AWS Lambda (Python) layer ARN for Python versions 3.8 through 3.13 on both x86_64 and arm64 architectures using AWS Systems Manager Parameter Store.
To do this, simply use the AWS CLI command aws ssm get-parameter with the appropriate parameter name. For example, use /aws/service/powertools/python/<architecture>/<python_version>/latest , replacing <architecture> with either "x86_64" or "arm64", and <python_version> with your desired Python version (e.g., "python3.8", "python3.9", etc.).
We have improved the Parser utility by adding support for events from API Gateway WebSocket.
Here are all the modules we have added for EventModel:
🚀 Thanks @ran-isenberg for another great contribution!
You can now use the deprecated flag in your OpenAPI schema to mark operations that are no longer recommended. This helps customers clarify which parts of your API should be avoided in favor of newer options.
Last but not least, thanks to @junkor-1011 for catching a bug in the Parser utility.
resolve function (#5602) by @rafrafekd485eb6 to ba73db5 in /docs (#5746) by @dependabot3f571e7 to d485eb6 in /docs (#5710) by @dependabotd063d84 to 3f571e7 in /docs (#5678) by @dependabotef0b45e to d063d84 in /docs (#5649) by @dependabotce587cb to ef0b45e in /docs (#5603) by @dependabot@TurnrDev, @anafalcao, @dependabot, @dependabot[bot], @dreamorosi, @github-actions, @github-actions[bot], @leandrodamascena, @mw-root, @rafrafek, @ran-isenberg, @sthulb, @tcysin and @tonsho
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
In this release we added support for the newly released Python 3.13 AWS Lambda managed runtime 🚀.
In this release we added support for the newly released Python 3.13 AWS Lambda managed runtime 🚀.
We’ve also revamped the Parser documentation, and added MutualTLS scheme support when working with OpenAPI schemas and Event handler.
Oh hey, please welcome Ana as our new full-time maintainer - @anafalcao 🎉
🌟 ⭐ Congrats to our new contributor @Sector95 for getting their first PR merged.
You can now use Powertools for AWS Lambda (Python) with the new Python 3.13 runtime in AWS Lambda.
We’ve partnered with the AWS Lambda team for this launch and have been testing our toolkit for the past few weeks to ensure compatibility with no changes from your side.
To start using Powertools for AWS with the new runtime, you can upgrade to this version via PyPi or use the latest version (v4) of our Lambda layers.
In this release, we have improved the Parser documentation to include comprehensive examples of using this feature.
Kudos to @anafalcao for this work and for her first merged PR 👏
Customers now can use MutualTLS security scheme when defining their OpenAPI schema with Event Handler.
Last but not least, thanks to @xkortex for catching a bug in the Parser utility.
2c2802b to ce587cb in /docs (#5507) by @dependabot31eb7f7 to 2c2802b in /docs (#5487) by @dependabot@Sector95, @anafalcao, @dependabot, @dependabot[bot], @github-actions, @github-actions[bot], @leandrodamascena, @sthulb and @tkasuz
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
We are thrilled to announce that Powertools for AWS Lambda (Python) now offers AWS Lambda layers in the AWS GovCloud (US) regions.
We are thrilled to announce that Powertools for AWS Lambda (Python) now offers AWS Lambda layers in the AWS GovCloud (US) regions.
🌟 ⭐ Thanks to @SimonBFrank's amazing work, our Logger utility is now thread-safe when handling extra keys.
You can now use Powertools for AWS Lambda (Python) Lambda layers in the AWS GovCloud (US) regions, enhancing customer experience by making our pre-packaged Lambda layers available in this AWS partition.
To take advantage of the new layers, you need to update your functions or deployment setup to include one of the new Lambda layer ARN from the table below:
AWS GovCloud (us-gov-east-1)
| Architecture | Layer ARN |
|---|---|
| x86_64 | arn:aws-us-gov:lambda:us-gov-east-1:165087284144:layer:AWSLambdaPowertoolsPythonV3-{python_version}-x86_64:{version} |
| ARM | arn:aws-us-gov:lambda:us-gov-east-1:165087284144:layer:AWSLambdaPowertoolsPythonV3-{python_version}-arm64:{version} |
AWS GovCloud (us-gov-west-1)
| Architecture | Layer ARN |
|---|---|
| x86_64 | arn:aws-us-gov:lambda:us-gov-west-1:165093116878:layer:AWSLambdaPowertoolsPythonV3-{python_version}-x86_64:{version} |
| ARM | arn:aws-us-gov:lambda:us-gov-west-1:165093116878:layer:AWSLambdaPowertoolsPythonV3-{python_version}-arm64:{version} |
Before this release, customers might have encountered issues when using append_keys between thread executions.
You can now use new thread-safe methods for managing extra keys in the Logger utility, ensuring safe and efficient logging in concurrent environments.
Last but not least, we are thrilled to see our customers adopting v3, as it indicates we are moving in the right direction.
0d4e687 to 31eb7f7 in /docs (#5417) by @dependabotf9cb76d to 0d4e687 in /docs (#5395) by @dependabot8e8b333 to f9cb76d in /docs (#5366) by @dependabot@SimonBFrank, @dependabot, @dependabot[bot], @dreamorosi, @github-actions, @github-actions[bot], @leandrodamascena and @sthulb
Nothing published for this version
We are excited to announce the first release following the v3 GA release. In this release we addressed a bug in the Parser utility as well as a regres
We are excited to announce the first release following the v3 GA release. In this release we addressed a bug in the Parser utility as well as a regression in the naming of our public Lambda layers.
Thanks to @mw-root we added support for Event Source for CodeDeploy Lifecycle Hook.
🌟 ⭐ A big thank you to our new contributors: @emmanuel-ferdman, @garysassano and @mw-root.
In our initial v3 release, we mistakenly named the x86_64 Lambda layer as x86. We've corrected this issue in the current release, ensuring our Lambda layers now use the correct architecture naming convention.
For those who have already adopted the v3 Layer for this architecture, we recommend updating the ARN to use the new name using the table below as reference. The version of the Layer using the incorrect name will continue to be available but new releases, including this one, will follow the correct and updated naming convention.
| Architecture | Python version | Layer ARN |
|---|---|---|
| x86_64 | 3.8 | arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV3-python38-x86_64:{version} |
| x86_64 | 3.9 | arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV3-python39-x86_64:{version} |
| x86_64 | 3.10 | arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV3-python310-x86_64:{version} |
| x86_64 | 3.11 | arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV3-python311-x86_64:{version} |
| x86_64 | 3.12 | arn:aws:lambda:{region}:017000801446:layer:AWSLambdaPowertoolsPythonV3-python312-x86_64:{version} |
You can now use CodeDeployLifecycleHookEvent for a better experience with type hinting and code completion support when working with AWS Lambda functions that process AWS CodeDeploy events.
Before this release when parsing an event failed, we were catching the ValidationError raised by Pydantic and re-raising it as an InvalidModelTypeError.
We now raise the ValidationError directly, allowing our customers to handle data validation errors more effectively.
Thanks for this important bug report @jhare-rectangle
Last but not least, we are thrilled to see our customers adopting v3, as it indicates we are moving in the right direction.
Advanced table (#5191) by @garysassanovalidate_python when using type[Model] and nested models (#5313) by @leandrodamascena7aea359 to 8e8b333 in /docs (#5272) by @dependabot08fbf58 to 7aea359 in /docs (#5253) by @dependabot22a429f to 08fbf58 in /docs (#5243) by @dependabota2e3a31 to 22a429f in /docs (#5201) by @dependabot@dependabot, @dependabot[bot], @emmanuel-ferdman, @garysassano, @github-actions, @github-actions[bot], @leandrodamascena, @mw-root and @sthulb
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →