API Gatewayのlamdba連携時の引数のやり取りについて
API-Gatewayとlambdaで引数のやり取りする場合は、全部Stringで渡されるんだね。よく考えたら、QueryParameterの場合もあるし、JSONでやり取りするとは限らないか。
なので、
{
"user_id": "string",
"lang": "string",
"args": {
"name": "string",
"keyWord": "string"
}
}
こんな感じのjsonをAPI-Gatewayに対してPOSTする場合、lamdba側では、以下のような処理を行う必要がありますね。
def lambda_handler(event, context):
# request bodyはstringなので、jsonに変換する
body = json.loads(event["body"])
# こんな感じにすると、user_idが取得できる。
user_id = body["user_id"]
こうしないと、lambda側で、TypeError: string indices must be integers
になります。
またこれは応答時も同様で、JSONはAPI-Gatewayが受け取れないことから、json.dumpsする必要がありますね。
return {
'statusCode': 200,
'body': json.dumps({
'result': result,
'error_code': error_code,
'error_message': message})
}
こっちはAPI-Gateway側で、Execution failed due to configuration error: Malformed Lambda proxy response
になりますね。
https://aws.amazon.com/jp/premiumsupport/knowledge-center/malformed-502-api-gateway/
Author And Source
この問題について(API Gatewayのlamdba連携時の引数のやり取りについて), 我々は、より多くの情報をここで見つけました https://qiita.com/fake-deli-ca/items/74275e2262b66257e234著者帰属:元の著者の情報は、元の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 .