Skip to content

Latest commit

 

History

History
55 lines (39 loc) · 3.54 KB

File metadata and controls

55 lines (39 loc) · 3.54 KB
title description
Homepage
AWS Lambda Powertools Python

Powertools is a suite of utilities for AWS Lambda Functions that makes tracing with AWS X-Ray, structured logging and creating custom metrics asynchronously easier.

Install

Powertools is available in PyPi. You can use your favourite dependency management tool to install it

  • poetry: poetry add aws-lambda-powertools
  • pip: pip install aws-lambda-powertools

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)
  • Bring your own middleware - Decorator factory to create your own middleware to run logic before, and after each Lambda invocation

Tenets

  • AWS Lambda only – We optimise for AWS Lambda function environments and supported runtimes only. Utilities might work with web frameworks and non-Lambda environments, though they are not officially supported.
  • Eases the adoption of best practices – The main priority of the utilities is to facilitate best practices adoption, as defined in the AWS Well-Architected Serverless Lens; all other functionality is optional.
  • Keep it lean – Additional dependencies are carefully considered for security and ease of maintenance, and prevent negatively impacting startup time.
  • We strive for backwards compatibility – New features and changes should keep backwards compatibility. If a breaking change cannot be avoided, the deprecation and migration process should be clearly defined.
  • We work backwards from the community – We aim to strike a balance of what would work best for 80% of customers. Emerging practices are considered and discussed via Requests for Comment (RFCs)
  • Idiomatic – Utilities follow programming language idioms and language-specific best practices.

* Core utilities are Tracer, Logger and Metrics. Optional utilities may vary across languages.

Environment variables

Environment variables used across suite of utilities.

Environment variable | Description | Utility ------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | ------------------------------------------------- POWERTOOLS_SERVICE_NAME | Sets service name used for tracing namespace, metrics dimension and structured logging | all POWERTOOLS_METRICS_NAMESPACE | Sets namespace used for metrics | Metrics POWERTOOLS_TRACE_DISABLED | Disables tracing | Tracing POWERTOOLS_TRACE_MIDDLEWARES | Creates sub-segment for each custom middleware | middleware_factory POWERTOOLS_LOGGER_LOG_EVENT | Logs incoming event | Logging POWERTOOLS_LOGGER_SAMPLE_RATE | Debug log sampling | Logging LOG_LEVEL | Sets logging level | Logging

Debug mode

As a best practice, AWS Lambda Powertools logging statements are suppressed. If necessary, you can enable debugging using set_package_logger:

from aws_lambda_powertools.logging.logger import set_package_logger

set_package_logger()