取り急ぎ忘れないようにめもめも。
- POSTパラメータは
event['body']
に入っている。 - API Gateway の設定で
isBase64Encoded
が有効であると、Base64エンコードされる
APIに投げるときにJSONエンコードしたものを渡すと、Base64デコード後にJSONが取れる。
その際は、リクエストクエリのパースではなく、JSONのパース処理を行う。
import json
import base64
import urllib.parse
def lambda_handler(event, context):
# POSTパラメータがBASE64でエンコードされているのでデコードする
decoded_body = base64.b64decode(event['body']).decode()
# POSTパラメータをdict型に変換
post_params = urllib.parse.parse_qs(decoded_body)
result = {}
result['message'] = 'lambdaからのレスポンス'
# POSTされたデータを参照 (配列になっているので注意)
result['name'] = post_params['name'][0]
result['email'] = post_params['email'][0]
return {
'statusCode': 200,
'body': json.dumps(result)
}