rocket-a


git -C '/home/opc/rocketa.git' show f703852 -- oci_func_prod/test/func.py

commit 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
+    )

diff.txt · 最終更新: by root