Closed
Description
Use case
I see Pydantic models were added for API Gateway WebSocket events here:
Model name Description APIGatewayWebSocketMessageEventModel Lambda Event Source payload for Amazon API Gateway WebSocket API message body APIGatewayWebSocketConnectEventModel Lambda Event Source payload for Amazon API Gateway WebSocket API $connect message APIGatewayWebSocketDisconnectEventModel Lambda Event Source payload for Amazon API Gateway WebSocket API $disconnect message
This is request to add the corresponding Event Source Data Classes.
Solution/User Experience
It would be used like below, as an example:
import requests
from aws_lambda_powertools.utilities.data_classes import (
APIGatewayWebSocketMessageEvent,
event_source,
)
session = requests.Session()
@event_source(data_class=APIGatewayWebSocketMessageEvent)
def lambda_handler(event: APIGatewayWebSocketMessageEvent, context):
params = {
"connection_id": event.request_context.connection_id,
"data": event.json_body,
}
response = session.post("https://mydomain.com/myapi", data=params)
if 400 <= response.status_code < 600:
raise RuntimeError(response.text)
return {"statusCode": 200}
Alternative solutions
I see other requests related to API Gateway WebSocket events, but they seem like different features: #1165, #5905
Acknowledgment
- This feature request meets Powertools for AWS Lambda (Python) Tenets
- Should this be considered in other Powertools for AWS Lambda languages? i.e. Java, TypeScript, and .NET
Metadata
Metadata
Assignees
Type
Projects
Status
Shipped