Powertools for AWS Lambda (Python) (original) (raw)
Typing
This typing utility provides static typing classes that can be used to ease the development by providing the IDE type hints.
Key features¶
- Add static typing classes
- Ease the development by leveraging your IDE's type hints
- Avoid common typing mistakes in Python
Getting started¶
Tip
All examples shared in this documentation are available within the project repository.
We provide static typing for any context methods or properties implemented by Lambda context object.
LambdaContext¶
The LambdaContext
typing is typically used in the handler method for the Lambda function.
getting_started_validator_decorator_function.py
from aws_lambda_powertools.utilities.typing import LambdaContext def handler(event: dict, context: LambdaContext) -> dict: # Insert business logic return event |
---|
Working with context methods and properties¶
Using LambdaContext
typing makes it possible to access information and hints of all properties and methods implemented by Lambda context object.
working_with_context_function.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | from time import sleep import requests from aws_lambda_powertools import Logger from aws_lambda_powertools.utilities.typing import LambdaContext logger = Logger() def lambda_handler(event, context: LambdaContext) -> dict: limit_execution: int = 1000 # milliseconds # scrape website and exit before lambda timeout while context.get_remaining_time_in_millis() > limit_execution: comments: requests.Response = requests.get("https://jsonplaceholder.typicode.com/comments") # add logic here and save the results of the request to an S3 bucket, for example. logger.info( { "operation": "scrape_website", "request_id": context.aws_request_id, "remaining_time": context.get_remaining_time_in_millis(), "comments": comments.json()[:2], }, ) sleep(1) return {"message": "Success"} |
---|