~~NOCACHE~~
## APIGWのクエリパラメータをDyanmoDBに書き込む
[[Aws:APIGateway:UsingLambdaProxy|Aws/APIGateway/Lambdaプロキシ統合の使用]]のついでに、DyanmoDBまで書き込む
DynamoDBのリファレンスは下記になります。
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html
https://docs.aws.amazon.com/cli/latest/reference/dynamodb/
### Lambda関数サンプル
APIGatewayのURLの末尾(クエリパラメータ)に[?id=0003&value=kyoto]をつけてリクエストしてみる。
eventの['queryStringParameters']からidとvalueを受け取って、dynamodbの指定したTableにputitemしています。
※DynamoDBへの登録がしたかったので、ブラウザには{"message": "Internal server error"}が返ります。
import json
import boto3
def lambda_handler(event, context):
id = event['queryStringParameters']['id']
value = event['queryStringParameters']['value']
item = {
"DeviceID": id,
"SensorID": value
}
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table('{テーブル名}')
response = table.put_item(Item=item)
return response
### 実行結果
登録された!APIGateway Lambda DynamoDBってこんな風に使うのかな・・・?これでアプリと会話できるといいな。
{{:Aws:Lambda:pasted:20210523-180216.png?direct 600x0}}
{{tag>AWS Lambda APIGateway DynamoDB}}