Skip to content

Commit bc3136c

Browse files
docs: refresh the README and the feature table (#8733)
docs: refresh the README and add Circuit Breaker and Metadata to the feature table
1 parent 4c43e9c commit bc3136c

2 files changed

Lines changed: 61 additions & 42 deletions

File tree

‎README.md‎

Lines changed: 59 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -1,55 +1,72 @@
11
<!-- markdownlint-disable MD013 MD041 MD043 -->
22
# Powertools for AWS Lambda (Python)
33

4-
[![Build](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/quality_check.yml/badge.svg)](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/python_build.yml)
4+
[![Build](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/quality_check.yml/badge.svg)](https://github.com/aws-powertools/powertools-lambda-python/actions/workflows/quality_check.yml)
55
[![codecov.io](https://codecov.io/github/aws-powertools/powertools-lambda-python/branch/develop/graphs/badge.svg)](https://app.codecov.io/gh/aws-powertools/powertools-lambda-python)
66
![PythonSupport](https://img.shields.io/static/v1?label=python&message=%203.10|%203.11|%203.12|%203.13|%203.14&color=blue?style=flat-square&logo=python) ![PyPI version](https://badge.fury.io/py/aws-lambda-powertools.svg) ![PyPi monthly downloads](https://img.shields.io/pypi/dm/aws-lambda-powertools) [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/aws-powertools/powertools-lambda-python/badge)](https://scorecard.dev/viewer/?uri=github.com/aws-powertools/powertools-lambda-python)
77
[![Discord](https://img.shields.io/badge/Discord-Join_Community-7289da.svg)](https://discord.gg/B8zZKbbyET)
88

9-
Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverless [best practices and increase developer velocity](https://docs.powertools.aws.dev/lambda/python/latest/#features).
9+
Powertools for AWS Lambda (Python) is a developer toolkit for AWS Lambda: structured logging, tracing, metrics, event handlers for API Gateway, AppSync and Bedrock Agents, idempotency, batch processing, parameters, validation, and more. Each utility is independent, follows the Lambda execution model, and is designed to add as little as possible to your cold start.
1010

11-
Also available in [Java](https://github.com/aws-powertools/powertools-lambda-java), [TypeScript](https://github.com/aws-powertools/powertools-lambda-typescript), and [.NET](https://github.com/aws-powertools/powertools-lambda-dotnet).
11+
Also available in [TypeScript](https://github.com/aws-powertools/powertools-lambda-typescript), [Java](https://github.com/aws-powertools/powertools-lambda-java), and [.NET](https://github.com/aws-powertools/powertools-lambda-dotnet).
1212

13-
[� Doccumentation](https://docs.powertools.aws.dev/lambda/python/) | [🐍 PyPi](https://pypi.org/project/aws-lambda-powertools/) | [🗺️ Roadmap](https://docs.powertools.aws.dev/lambda/python/latest/roadmap/) | [📰 Blog](https://aws.amazon.com/blogs/opensource/simplifying-serverless-best-practices-with-lambda-powertools/)
13+
[📜 Documentation](https://docs.powertools.aws.dev/lambda/python/) | [🐍 PyPI](https://pypi.org/project/aws-lambda-powertools/) | [🎓 Workshop](https://s12d.com/powertools-for-aws-lambda-workshop) | [🗺️ Roadmap](https://docs.powertools.aws.dev/lambda/python/latest/roadmap/) | [📝 Changelog](https://docs.powertools.aws.dev/lambda/python/latest/changelog/)
1414

1515
![hero-image](https://user-images.githubusercontent.com/3340292/198254617-d0fdb672-86a6-4988-8a40-adf437135e0a.png)
1616

17+
## Installation
18+
19+
```bash
20+
pip install aws-lambda-powertools
21+
# or
22+
uv add aws-lambda-powertools
23+
```
24+
25+
Or use the [public Lambda layer](https://docs.powertools.aws.dev/lambda/python/latest/getting-started/install/#lambda-layer), published for every supported Python version on `x86_64` and `arm64`. Some utilities need an extra, for example `aws-lambda-powertools[parser]` for Pydantic; the [installation guide](https://docs.powertools.aws.dev/lambda/python/latest/getting-started/install/) lists them.
26+
1727
## Features
1828

19-
Core utilities such as Tracing, Logging, Metrics, and Event Handler are available across all Powertools for AWS Lambda languages. Additional utilities are subjective to each language ecosystem and customer demand.
20-
21-
* **[Tracing](https://docs.powertools.aws.dev/lambda/python/latest/core/tracer/)** - Decorators and utilities to trace Lambda function handlers, and both synchronous and asynchronous functions
22-
* **[Logging](https://docs.powertools.aws.dev/lambda/python/latest/core/logger/)** - Structured logging made easier, and target to enrich structured logging with key Lambda context details
23-
* **[Metrics](https://docs.powertools.aws.dev/lambda/python/latest/core/metrics/)** - Custom Metrics created asynchronously via CloudWatch Embedded Metric Format (EMF)
24-
* **[Event handler: AppSync](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/appsync/)** - AppSync event handler for Lambda Direct Resolver and Amplify GraphQL Transformer function
25-
* **[Event handler: AppSync Events](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/appsync_events/)** - AppSync Events handler for real-time WebSocket APIs with pub/sub pattern
26-
* **[Event handler: API Gateway, ALB, Lambda Function URL, VPC Lattice](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/api_gateway/)** - REST/HTTP API event handler for Lambda functions invoked via Amazon API Gateway, ALB, Lambda Function URL, and VPC Lattice
27-
* **[Event handler: Agents for Amazon Bedrock](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/bedrock_agents/)** - Create Agents for Amazon Bedrock, automatically generating OpenAPI schemas
28-
* **[Middleware factory](https://docs.powertools.aws.dev/lambda/python/latest/utilities/middleware_factory/)** - Decorator factory to create your own middleware to run logic before, and after each Lambda invocation
29-
* **[Parameters](https://docs.powertools.aws.dev/lambda/python/latest/utilities/parameters/)** - Retrieve and cache parameter values from Parameter Store, Secrets Manager, AppConfig, or DynamoDB
30-
* **[Batch processing](https://docs.powertools.aws.dev/lambda/python/latest/utilities/batch/)** - Handle partial failures for AWS SQS, Kinesis Data Streams, and DynamoDB Streams batch processing
31-
* **[Typing](https://docs.powertools.aws.dev/lambda/python/latest/utilities/typing/)** - Static typing classes to speedup development in your IDE
32-
* **[Validation](https://docs.powertools.aws.dev/lambda/python/latest/utilities/validation/)** - JSON Schema validator for inbound events and responses
33-
* **[Event source data classes](https://docs.powertools.aws.dev/lambda/python/latest/utilities/data_classes/)** - Data classes describing the schema of common Lambda event triggers
34-
* **[Parser](https://docs.powertools.aws.dev/lambda/python/latest/utilities/parser/)** - Data parsing and deep validation using Pydantic
35-
* **[Idempotency](https://docs.powertools.aws.dev/lambda/python/latest/utilities/idempotency/)** - Convert your Lambda functions into idempotent operations which are safe to retry
36-
* **[Data Masking](https://docs.powertools.aws.dev/lambda/python/latest/utilities/data_masking/)** - Protect confidential data with easy removal or encryption
37-
* **[Feature Flags](https://docs.powertools.aws.dev/lambda/python/latest/utilities/feature_flags/)** - A simple rule engine to evaluate when one or multiple features should be enabled depending on the input
38-
* **[Streaming](https://docs.powertools.aws.dev/lambda/python/latest/utilities/streaming/)** - Streams datasets larger than the available memory as streaming data
39-
* **[Kafka](https://docs.powertools.aws.dev/lambda/python/latest/utilities/kafka/)** - Deserialize and validate Kafka events with support for Avro, Protocol Buffers, and JSON Schema
40-
* **[JMESPath Functions](https://docs.powertools.aws.dev/lambda/python/latest/utilities/jmespath_functions/)** - Built-in JMESPath functions to easily deserialize common encoded JSON payloads in Lambda functions
41-
42-
### Installation
43-
44-
With [pip](https://pip.pypa.io/en/latest/index.html) installed, run: ``pip install aws-lambda-powertools``
45-
46-
## Tutorial and Examples
47-
48-
* [Tutorial](https://docs.powertools.aws.dev/lambda/python/latest/tutorial)
49-
* [Serverless Shopping cart](https://github.com/aws-samples/aws-serverless-shopping-cart)
50-
* [Serverless Airline](https://github.com/aws-samples/aws-serverless-airline-booking)
51-
* [Serverless E-commerce platform](https://github.com/aws-samples/aws-serverless-ecommerce-platform)
52-
* [Serverless GraphQL Nanny Booking Api](https://github.com/trey-rosius/babysitter_api)
29+
### Core
30+
31+
* **[Logger](https://docs.powertools.aws.dev/lambda/python/latest/core/logger/)** - Structured JSON logging with Lambda context, correlation IDs, sampling and log buffering
32+
* **[Tracer](https://docs.powertools.aws.dev/lambda/python/latest/core/tracer/)** - Decorators and utilities to trace Lambda function handlers and sync or async functions with AWS X-Ray
33+
* **[Metrics](https://docs.powertools.aws.dev/lambda/python/latest/core/metrics/)** - Custom metrics created asynchronously via CloudWatch Embedded Metric Format (EMF), with a [Datadog](https://docs.powertools.aws.dev/lambda/python/latest/core/metrics/datadog/) provider
34+
* **[Event Handler: REST and HTTP APIs](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/api_gateway/)** - Routing, validation and middleware for API Gateway, ALB, Lambda Function URL and VPC Lattice, with [OpenAPI schema generation and Swagger UI](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/openapi/)
35+
* **[Event Handler: AppSync](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/appsync/)** - Resolvers for AppSync Direct Lambda Resolvers and Amplify GraphQL Transformer functions
36+
* **[Event Handler: AppSync Events](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/appsync_events/)** - Handlers for AppSync Events real-time WebSocket APIs with pub/sub
37+
* **[Event Handler: Bedrock Agents](https://docs.powertools.aws.dev/lambda/python/latest/core/event_handler/bedrock_agents/)** - Build Amazon Bedrock Agents action groups with automatically generated OpenAPI schemas
38+
39+
### Utilities
40+
41+
* **[Parameters](https://docs.powertools.aws.dev/lambda/python/latest/utilities/parameters/)** - Retrieve and cache parameter values from Parameter Store, Secrets Manager, AppConfig or DynamoDB
42+
* **[Idempotency](https://docs.powertools.aws.dev/lambda/python/latest/utilities/idempotency/)** - Make your Lambda functions idempotent and safe to retry, with DynamoDB, Redis or Valkey persistence
43+
* **[Batch processing](https://docs.powertools.aws.dev/lambda/python/latest/utilities/batch/)** - Handle partial failures for SQS, Kinesis Data Streams and DynamoDB Streams batches
44+
* **[Circuit Breaker](https://docs.powertools.aws.dev/lambda/python/latest/utilities/circuit_breaker/)** - Stop calling a failing downstream and recover with a single probe across execution environments
45+
* **[Kafka](https://docs.powertools.aws.dev/lambda/python/latest/utilities/kafka/)** - Deserialize and validate Kafka events with Avro, Protocol Buffers and JSON Schema
46+
* **[Event source data classes](https://docs.powertools.aws.dev/lambda/python/latest/utilities/data_classes/)** - Typed access to the payloads of common Lambda event sources
47+
* **[Parser](https://docs.powertools.aws.dev/lambda/python/latest/utilities/parser/)** - Data parsing and deep validation with Pydantic, with models and envelopes for common event sources
48+
* **[Validation](https://docs.powertools.aws.dev/lambda/python/latest/utilities/validation/)** - JSON Schema validation for inbound events and responses
49+
* **[Feature Flags](https://docs.powertools.aws.dev/lambda/python/latest/utilities/feature_flags/)** - A rule engine to evaluate when one or more features should be enabled depending on the input
50+
* **[Data Masking](https://docs.powertools.aws.dev/lambda/python/latest/utilities/data_masking/)** - Erase or encrypt confidential fields in your data with AWS KMS
51+
* **[Auth (alpha)](https://docs.powertools.aws.dev/lambda/python/latest/utilities/auth/)** - JWT access-token verification and an [OAuth2 client-credentials client](https://docs.powertools.aws.dev/lambda/python/latest/utilities/oauth2/) for downstream APIs
52+
* **[Streaming](https://docs.powertools.aws.dev/lambda/python/latest/utilities/streaming/)** - Stream S3 objects larger than the available memory, with gzip, CSV and other transforms
53+
* **[Metadata](https://docs.powertools.aws.dev/lambda/python/latest/utilities/metadata/)** - Read the Lambda Metadata Endpoint, such as the Availability Zone ID of the execution environment
54+
* **[Middleware factory](https://docs.powertools.aws.dev/lambda/python/latest/utilities/middleware_factory/)** - Decorator factory to run your own logic before and after each invocation
55+
* **[Typing](https://docs.powertools.aws.dev/lambda/python/latest/utilities/typing/)** - Static typing for the Lambda context object
56+
* **[JMESPath Functions](https://docs.powertools.aws.dev/lambda/python/latest/utilities/jmespath_functions/)** - Built-in JMESPath functions to deserialize common encoded JSON payloads
57+
58+
### Lambda features
59+
60+
* **[Lambda Managed Instances](https://docs.powertools.aws.dev/lambda/python/latest/lambda-features/managed-instances/)** - Using Powertools when one execution environment handles concurrent invocations
61+
* **[Durable Functions](https://docs.powertools.aws.dev/lambda/python/latest/lambda-features/durable-functions/)** - Using Powertools with Lambda Durable Functions
62+
* **[Build recipes](https://docs.powertools.aws.dev/lambda/python/latest/build_recipes/)** - Packaging, cross-platform builds, cold start optimization and CI/CD integration
63+
64+
## Tutorial and examples
65+
66+
* [Tutorial](https://docs.powertools.aws.dev/lambda/python/latest/tutorial/) and [workshop](https://s12d.com/powertools-for-aws-lambda-workshop)
67+
* [Examples](https://github.com/aws-powertools/powertools-lambda-python/tree/develop/examples) for every utility, the same code the documentation shows
68+
* [Serverless Airline](https://github.com/aws-samples/aws-serverless-airline-booking), a sample application using Powertools end to end
69+
* [What the community built](https://docs.powertools.aws.dev/lambda/python/latest/we_made_this/): blog posts, workshops, videos and sample apps
5370

5471
## How to support Powertools for AWS Lambda (Python)?
5572

@@ -90,13 +107,13 @@ The following companies, among others, use Powertools:
90107

91108
Share what you did with Powertools for AWS Lambda (Python) 💞💞. Blog post, workshops, presentation, sample apps and others. Check out what the community has already shared about Powertools for AWS Lambda (Python) [in this link](https://docs.powertools.aws.dev/lambda/python/latest/we_made_this/).
92109

93-
### Using Lambda Layer or SAR
110+
### Using the Lambda layer
94111

95-
This helps us understand who uses Powertools for AWS Lambda (Python) in a non-intrusive way, and helps us gain future investments for other Powertools for AWS Lambda languages. When [using Layers](https://docs.powertools.aws.dev/lambda/python/latest/#lambda-layer), you can add Powertools for AWS Lambda (Python) as a dev dependency (or as part of your virtual env) to not impact the development process.
112+
Using the [public layer](https://docs.powertools.aws.dev/lambda/python/latest/getting-started/install/#lambda-layer) helps us understand who uses Powertools for AWS Lambda (Python) in a non-intrusive way, and helps us gain future investments for other Powertools for AWS Lambda languages. You can still add Powertools for AWS Lambda (Python) as a dev dependency (or as part of your virtual env) to not impact the development process.
96113

97114
## Contributing
98115

99-
Issues and pull requests are welcome, including the ones written with AI assistance. If you used an assistant, say so in the issue or PR and tell us how you verified the change: which tests you ran yourself, and which real AWS service or event you validated against when it applies. Read [CONTRIBUTING.md](CONTRIBUTING.md) for the process and [AGENTS.md](AGENTS.md) for the rules the CI enforces and the premises behind them.
116+
Issues and pull requests are welcome, including the ones written with AI assistance. If you used an assistant, say so in the issue or PR and tell us how you verified the change: which tests you ran yourself, and which real AWS service or event you validated against when it applies. Read [CONTRIBUTING.md](CONTRIBUTING.md) for the process, [AGENTS.md](AGENTS.md) for the rules the CI enforces, and [docs/adr](docs/adr/README.md) for the premises behind them.
100117

101118
## Credits
102119

@@ -110,7 +127,7 @@ Issues and pull requests are welcome, including the ones written with AI assista
110127

111128
## Security disclosures
112129

113-
If you think you’ve found a potential security issue, please do not post it in the Issues. Instead, please follow the instructions [in this link](https://aws.amazon.com/security/vulnerability-reporting/) or [email AWS security directly](mailto:aws-security@amazon.com).
130+
If you think you've found a potential security issue, please do not post it in the Issues. Instead, follow [SECURITY.md](SECURITY.md): report it through the [AWS vulnerability reporting page](https://aws.amazon.com/security/vulnerability-reporting/) or [email AWS security directly](mailto:aws-security@amazon.com).
114131

115132
## License
116133

‎docs/index.md‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverles
5858
| [Parser](./utilities/parser.md) | Data parsing and deep validation using Pydantic |
5959
| [Batch Processing](./utilities/batch.md) | Handle partial failures for SQS, Kinesis Data Streams, and DynamoDB Streams |
6060
| [Idempotency](./utilities/idempotency.md) | Make your Lambda functions idempotent and prevent duplicate execution |
61+
| [Circuit Breaker](./utilities/circuit_breaker.md) | Stop calling a failing downstream and recover with a single probe across execution environments |
6162
| [Feature Flags](./utilities/feature_flags.md) | A simple rule engine to evaluate when features should be enabled |
6263
| [Validation](./utilities/validation.md) | JSON Schema validator for inbound events and responses |
6364
| [Data Masking](./utilities/data_masking.md) | Protect confidential data with easy removal or encryption |
@@ -67,6 +68,7 @@ Powertools for AWS Lambda (Python) is a developer toolkit to implement Serverles
6768
| [Event Source Data Classes](./utilities/data_classes.md) | Data classes describing the schema of common Lambda event triggers |
6869
| [JMESPath Functions](./utilities/jmespath_functions.md) | Built-in JMESPath functions to deserialize common encoded JSON payloads |
6970
| [Kafka](./utilities/kafka.md) | Deserialize and validate Kafka events with support for Avro, Protocol Buffers, and JSON Schema |
71+
| [Metadata](./utilities/metadata.md) | Read the Lambda Metadata Endpoint, such as the Availability Zone ID of the execution environment |
7072

7173
## Examples
7274

0 commit comments

Comments
 (0)