cloud-function-base/examples/example_http.py
ry.yamafuji ce5bc639fe
Some checks failed
Python Test / python-test (push) Failing after 11s
Cloud Functionの基本ソースを追加しました
2025-12-06 01:56:18 +09:00

49 lines
1.4 KiB
Python

from flask import Request
import functions_framework
from utils.custom_logger import get_logger
logger = get_logger(__name__)
@functions_framework.http
def hello_request(request: Request):
"""HTTPリクエストを処理するエンドポイント"""
logger.info("Cloud Function triggered start")
# Headerを取得する
ua = request.headers.get("User-Agent", "Unknown")
logger.info(f"User-Agent: {ua}")
if request.method == "GET":
logger.info("Processing GET request")
return _get(request)
elif request.method == "POST":
logger.info("Processing POST request")
return _post(request)
else:
logger.warning(f"Unsupported HTTP method: {request.method}")
return {"error": "Unsupported HTTP method"}, 405
def _get(request: Request):
"""GETリクエストの処理"""
params = request.args
name = params.get("name", "World")
message = f"Hello, {name}!"
logger.info(f"Greeting generated: {message}")
return {"message": message}
def _post(request: Request):
"""POSTリクエストの処理"""
data = request.get_json(silent=True)
if not data or "name" not in data:
logger.warning("Invalid POST request: 'name' not found in JSON body")
return {"error": "Please provide a 'name' in the JSON body."}, 400
name = data["name"]
message = f"Hello, {name}!"
logger.info(f"Greeting generated: {message}")
return {"message": message}