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}