Skip to content

Commit b049233

Browse files
Created the Logged event details to DynamoDB
1 parent 48b3032 commit b049233

1 file changed

Lines changed: 36 additions & 12 deletions

File tree

lambda/hello.py

Lines changed: 36 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,46 @@
1+
import uuid
12
import json
2-
import logging
33
import boto3
44
import os
5-
import uuid
5+
import logging
66
from 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+
917
def 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

Comments
 (0)