1+ import uuid
12import json
2- import logging
33import boto3
44import os
5- import uuid
5+ import logging
66from datetime import datetime
77
8- # Hello lambda function
8+
9+ TABLE_NAME = os .environ .get ("REQUESTS_TABLE" , "unknown-table" )
10+
11+ dynamodb = boto3 .resource ("dynamodb" )
12+ table = dynamodb .Table (TABLE_NAME )
13+
14+ logger = logging .getLogger ()
15+ logger .setLevel (logging .INFO )
16+
917def lambda_handler (event , context ):
10- name = event .get ("name" , "World" )
11- message = f"Hello, { name } !"
18+ # Incoming event logging
19+ logger .info ("Received event: %s" , json .dumps (event ))
20+
21+ # Create request id
22+ request_id = str (uuid .uuid4 ())
23+ item = {
24+ "id" : request_id ,
25+ "timestamp" : datetime .now ().isoformat () + "Z" ,
26+ "event" : event
27+ }
28+
29+ # Save request to DynamoDB
30+ try :
31+ table .put_item (Item = item )
32+ logger .info ("Saved item %s to %s" , request_id , TABLE_NAME )
33+ except Exception as e :
34+ logger .exception ("Failed to write to DynamoDB: %s" , e )
35+ return {
36+ "statusCode" : 500 ,
37+ "body" : json .dumps ({"status" : "error" , "message" : "Failed saving request." }),
38+ "headers" : {"Content-Type" : "application/json" }
39+ }
1240
41+ # Return success
1342 return {
1443 "statusCode" : 200 ,
15- "body" : message
44+ "body" : json .dumps ({"status" : "healthy" , "message" : "Request processed and saved." , "id" : request_id }),
45+ "headers" : {"Content-Type" : "application/json" }
1646 }
17-
18- # Run the funtion locally for testing
19- if __name__ == "__main__" :
20- test_event = {"name" : "Emmanuel Ogah" }
21- result = lambda_handler (test_event , None )
22- print (result )
0 commit comments