AWS の API Gateway (HTTP API) 経由で Lambda に繋いで POST データを処理するメモ
取り急ぎ忘れないようにめもめも。
- 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)
}
Author And Source
この問題について(AWS の API Gateway (HTTP API) 経由で Lambda に繋いで POST データを処理するメモ), 我々は、より多くの情報をここで見つけました https://qiita.com/reneice/items/05ff1318b4ff3fa3ca56著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .