A suite of utilities for AWS Lambda functions to ease adopting best practices such as tracing, structured logging, custom metrics, batching, idempotency, feature flags, and more.
Project description
AWS Lambda Powertools (Python)
A suite of Python utilities for AWS Lambda functions to ease adopting best practices such as tracing, structured logging, custom metrics, and more. (AWS Lambda Powertools Java is also available).
📜Documentation | 🐍PyPi | Roadmap | Quick hello world example | Detailed blog post
An AWS Developer Acceleration (DevAx) initiative by Specialist Solution Architects | aws-devax-open-source@amazon.com
Features
- Tracing - Decorators and utilities to trace Lambda function handlers, and both synchronous and asynchronous functions
- Logging - Structured logging made easier, and decorator to enrich structured logging with key Lambda context details
- Metrics - Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)
- Event handler: AppSync - AWS AppSync event handler for Lambda Direct Resolver and Amplify GraphQL Transformer function
- Event handler: API Gateway and ALB - Amazon API Gateway REST/HTTP API and ALB event handler for Lambda functions invoked using Proxy integration
- Bring your own middleware - Decorator factory to create your own middleware to run logic before, and after each Lambda invocation
- Parameters utility - Retrieve and cache parameter values from Parameter Store, Secrets Manager, or DynamoDB
- Batch processing - Handle partial failures for AWS SQS batch processing
- Typing - Static typing classes to speedup development in your IDE
- Validation - JSON Schema validator for inbound events and responses
- Event source data classes - Data classes describing the schema of common Lambda event triggers
- Parser - Data parsing and deep validation using Pydantic
- Idempotency - Convert your Lambda functions into idempotent operations which are safe to retry
- Feature Flags - A simple rule engine to evaluate when one or multiple features should be enabled depending on the input
Installation
With pip installed, run: pip install aws-lambda-powertools
Examples
- Serverless Shopping cart
- Serverless Airline
- Serverless E-commerce platform
- Serverless GraphQL Nanny Booking Api
Credits
- Structured logging initial implementation from aws-lambda-logging
- Powertools idea DAZN Powertools
Connect
- AWS Developers Slack:
#lambda-powertools
** - Invite, if you don't have an account - Email: aws-lambda-powertools-feedback@amazon.com
License
This library is licensed under the MIT-0 License. See the LICENSE file.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for aws_lambda_powertools-1.24.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ad77b49fa3c4fdb62d5a9702a66421f307b37ccaa1afe6aa977b54980a980b7 |
|
MD5 | b7ecb951f4b21385474566a59b666872 |
|
BLAKE2b-256 | 59485a8411c35ee7b821a502ae6e0f62e6cbc56298ee1364674b5edb249c7d69 |
Hashes for aws_lambda_powertools-1.24.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b3142c185271b97a5ca4e0f606a42381c2d097a2d02d7a30aed3edb1c80a949b |
|
MD5 | 132a599a6f86c2079fd20a9b88bc2e9f |
|
BLAKE2b-256 | 2bb6c35af9e51699956c9b5a014f45b5e384072267520640e0c435dba259189d |