前提・実現したいこと
「AWS Lambda実践ガイド」のテキストを参考にし、入力フォームからPOSTされた値をPythonで取得するシステムを作成しています。
入力フォームから「username」「email」を取得したいのですが、意図した結果が得られません。
システム構成(基盤:AWS)
html入力フォーム(S3 静的ウェブサイトホスティング)
「username」「email」を入力
↓
API Gateway
↓
Lambda(コード:Python)
出力結果をCloudWatchで確認したが、意図した文字列が出力されない
発生している問題・エラーメッセージ
※CloudWatchLogsで確認
- Pythonで出力したい想定文字例
"body": "username=%E5%B1%B1%E7%94%B0%E5%A4%AA%E9%83%8E&email=yamada%40example.co.jp",
- 実際に出力される文字例
"body": "dXNlcm5hbWU9JUU1JUIxJUIxJUU3JTk0JUIwJUU1JUE0JUFBJUU5JTgzJThFJmVtYWlsPXlhbWFkYSU0MGV4YW1wbGUuY28uanA=",
該当のソースコード
- html入力フォーム
html
1 2<!DOCTYPE html> 3<html lang="ja"> 4<head> 5<meta charset="UTF-8"> 6</head> 7<body> 8 <form method="POST" action="https://eucc2c7pji.execute-api.ap-northeast-1.amazonaws.com/default/regist"> 9 氏名:<input type="text" name="username"><br> 10 メールアドレス:<input type="text" name="email"> 11 <input type="submit" value="登録"> 12 </form> 13</body> 14</html>
- Pythonコード
python
1import json 2 3def lambda_handler(event, context): 4 print(json.dumps(event, indent=4)) 5 # JSON形式の戻り値を設定する 6 return { 7 'statusCode' : 200, 8 'headers' : { 9 'content-tpe' : 'text/html' 10 }, 11 'body' : 'OK' 12 }
試したこと
入力フォームに「氏名」「メールアドレス」を入力し、登録をクリック
ブラウザの検証機能で「username」「email」が渡されていることは確認しました。
補足情報(FW/ツールのバージョンなど)
Pyhon3.7
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/09 06:44
退会済みユーザー
2021/05/09 07:07