git -C '/home/opc/rocketa.git' show f703852 -- oci_func_prod/test/func.pycommit f70385251317348253f5ebffeffc00e3a1d6d563
Author: Satoshi Ujihara <satoshi_ujihara@fivegate.jp>
Date: Thu Jan 29 17:46:01 2026 +0900
gitignore 更新
compser.json 更新
本番環境oci_func 作成
diff --git a/oci_func_prod/test/func.py b/oci_func_prod/test/func.py
new file mode 100644
index 0000000..e1053b7
--- /dev/null
+++ b/oci_func_prod/test/func.py
@@ -0,0 +1,79 @@
+import io
+import urllib.parse
+import datetime
+import logging
+from fdk import response
+
+
+def handler(ctx, data: io.BytesIO = None):
+
+ # ===== 時刻(JST)=====
+ now_jst = datetime.datetime.utcnow() + datetime.timedelta(hours=9)
+
+ # ===== URL / Query =====
+ full_url = ctx.RequestURL()
+ parsed = urllib.parse.urlparse(full_url)
+ query_params = urllib.parse.parse_qs(parsed.query)
+
+ error = query_params.get('error', [''])[0]
+
+ # ===== Headers =====
+ headers = ctx.Headers()
+
+ x_real_ip = headers.get('x-real-ip', '')
+ user_agent = headers.get('user-agent', '')
+ referer = headers.get('referer', '')
+
+ return output(
+ ctx,
+ now_jst,
+ full_url,
+ error,
+ x_real_ip,
+ user_agent,
+ referer
+ )
+
+
+def output(ctx, now_jst, full_url, error, x_real_ip, user_agent, referer):
+
+ html = f"""<!doctype html>
+<html lang="ja">
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+<title>TEST</title>
+<style>
+*,*::before,*::after{{box-sizing:border-box;}}
+body{{display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif;margin:0;min-height:100vh;font-size:.88rem;line-height:1.5;color:#555;background:#fff;}}
+.container{{max-width:800px;margin:3rem auto;padding:1rem;}}
+h1{{font-size:1.4rem;margin-bottom:1rem;}}
+table{{width:100%;border-collapse:collapse;}}
+th,td{{padding:.5rem;border:1px solid #ddd;text-align:left;word-break:break-all;}}
+th{{background:#f5f5f5;width:30%;}}
+footer{{margin-top:auto;padding:.5rem;text-align:center;color:#fff;background:#343a40;}}
+</style>
+</head>
+<body>
+<div class="container">
+<h1>Request Info</h1>
+<table>
+<tr><th>日時 (JST)</th><td>{now_jst.strftime('%Y-%m-%d %H:%M:%S')}</td></tr>
+<tr><th>Request URL</th><td>{full_url}</td></tr>
+<tr><th>Error Param</th><td>{error}</td></tr>
+<tr><th>X-Real-IP</th><td>{x_real_ip}</td></tr>
+<tr><th>User-Agent</th><td>{user_agent}</td></tr>
+<tr><th>Referer</th><td>{referer}</td></tr>
+</table>
+</div>
+<footer>TEST</footer>
+</body>
+</html>
+"""
+
+ return response.Response(
+ ctx,
+ status_code=404,
+ headers={"Content-Type": "text/html; charset=utf-8"},
+ response_data=html
+ )