[AWS] Lambdaに入力されたJSONデータを読み込む方法

前提

通信経路

クライアント →(WebSocket通信)→ API Gateway → Lambda

という経路でLambdaに対してデータが入力されることを想定している。

クライアントのデータ形式

クライアントからは、次のJavaScriptコードでデータが出力されたとする。

var socket = new WebSocket("<API GatewayでデプロイしたURL>");
socket.send(JSON.stringify({
  action: "<API Gatewayに設定した文字列>",
  data: {
    sub_data: 123,
    array_data: [1, 2, 3]
  },
  name: "mochi"
}));

API Gatewayにおけるプロキシ統合

適用しているものとする。


Lambdaの言語がPythonの場合

import json

def lambda_handler(event, context):
    # 入力されたデータはeventに格納されている。
    # dataには次のようにしてアクセスできる。
    data = json.loads(event.get('body', '{}')).get('data')
    sub_data = data['sub_data']
    array_value = data['array_data'][0]
    
    # data同様、nameにもアクセスできる。
    name = json.loads(event.get('body', '{}')).get('name')
    
    print(data)       # dataの中身すべて
    print(sub_data)   # 123
    print(array_data) # 1
    print(name)       # mochi
    
    return {
        'statusCode': 200,
        'body': json.dumps('fin.')
    }

Lambdaの言語がNode.jsの場合

未確認

コメントする