前提
通信経路
クライアント →(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の場合
未確認