diff --git a/src/main.py b/src/main.py
index 04ea4da61d8e609bbc0bd0e44c10d523bb169cfd..f8105ee6b248f5f45bef29e95a3dd3deb5bb5b5a 100644
--- a/src/main.py
+++ b/src/main.py
@@ -1,21 +1,6 @@
 import base64
+import functions_framework
 
-def process_message(event, context):
-    """
-    Cloud Function triggered by a Pub/Sub message.
-
-    Args:
-        event (dict): The event payload, which includes the message data.
-        context (google.cloud.functions.Context): Metadata about the event.
-
-    """
-    # Decode the Pub/Sub message
-    if 'data' in event:
-        message = base64.b64decode(event['data']).decode('utf-8')
-        print(f"Received message: {message}")
-    else:
-        print("No data found in event.")
-
-    # Log context information
-    print(f"Event ID: {context.event_id}")
-    print(f"Event type: {context.event_type}")
+@functions_framework.cloud_event
+def process_message(cloud_event):
+    print(f"Received message: {cloud_event}")
diff --git a/src/requirements.txt b/src/requirements.txt
index d197ada2ff50cd90ce252664a35c1eb28165a1da..6c9d1547234699343a375b43c1668d7e70c8f1ac 100644
--- a/src/requirements.txt
+++ b/src/requirements.txt
@@ -1 +1,2 @@
+functions_framework==3.8.2
 pytest==8.3.4
diff --git a/src/test_main.py b/src/test_main.py
index 6bab79050df149e93291bc6d9daf56bcf4c69ed6..c862d605e76258a0096db1c9791270e2e4ea353f 100644
--- a/src/test_main.py
+++ b/src/test_main.py
@@ -1,4 +1,3 @@
-from src.main import process_message
 
 def test_process_message():
     pass
\ No newline at end of file