Google Cloud Functions で @functions_framework.http を使用する場合、request オブジェクトにどんな情報が含まれているかここにメモします。
request オブジェクトで取得できる情報
HTTP メソッド | request.method | リクエストのHTTPメソッドを取得します(例:GET, POST, PUT, DELETEなど)。 |
ヘッダー | request.headers | リクエストのすべてのHTTPヘッダーが格納されている辞書型オブジェクトです。特定のヘッダーを取得するには、request.headers.get("ヘッダー名")を使用します。 |
URL パラメータ | request.args | URLに含まれるクエリパラメータが格納されている辞書型オブジェクトです。例:/api?param1=value1の場合、request.args.get("param1")でvalue1を取得できます。 |
フォームデータ | request.form | application/x-www-form-urlencoded形式で送信されたPOSTデータが格納されている辞書型オブジェクトです。HTMLフォームから送信されたデータを取得するのに使用します。 |
JSON データ | request.get_json() | リクエストボディがJSON形式の場合にデータを取得します。リクエストがJSON形式でない場合はNoneが返されます。 |
リクエストボディ | request.data | リクエストボディの生データをバイト列として取得します。 |
ファイル | request.files | ファイルアップロード時に使用される辞書型オブジェクトです。ファイルはrequest.files.get("ファイル名")で取得できます。 |
リモートアドレス | request.remote_addr | クライアントのIPアドレスを取得します。 |
URL パス | request.path | リクエストのパス部分を取得します(例:/api/v1/resource)。 |
完全なURL | request.url | リクエストされた完全なURLを取得します。 |
ホスト | request.host | リクエストが送信されたホスト名を取得します。 |
ユーザーエージェント | request.user_agent | クライアントのユーザーエージェント情報を取得します。 |
クッキー | request.cookies | リクエストに含まれるすべてのクッキーが格納されている辞書型オブジェクトです。特定のクッキーを取得するには、request.cookies.get("クッキー名")を使用します。 |
サンプル
import functions_framework @functions_framework.http def my_function(request): # HTTPメソッドを取得 method = request.method # ヘッダーを取得 content_type = request.headers.get("Content-Type") # URLパラメータを取得 param1 = request.args.get("param1") # JSONデータを取得 json_data = request.get_json() # リクエストボディの生データを取得 raw_data = request.data # クライアントのIPアドレスを取得 client_ip = request.remote_addr # ユーザーエージェントを取得 user_agent = request.user_agent # クッキーを取得 session_cookie = request.cookies.get("session") return f"Method: {method}, Content-Type: {content_type}, Param1: {param1}, IP: {client_ip}", 200