Невозможно добавить данные в DynamoDB, используя метод POST шлюза API - PullRequest
0 голосов
/ 21 октября 2019

Я создал серверный API-интерфейс на консоли AWS, который использует функции API Gateway, DynamoDB, Lambda.

При создании я могу добавить данные в DynamoDB онлайн, добавив файл JSON, который выглядит следующим образом:

{
  "id": "4",
  "k": "key1",
  "v": "value1"
}

Но когда я пытаюсь добавить это с помощью «Почтальон», добавив вышеупомянутые данные JSON в тело сообщения POST, я получаю положительный результат (т.е. без ошибок), но только поле «id»добавляется в базу данных, а не "k" или "v".

Чего не хватает?

1 Ответ

0 голосов
/ 21 октября 2019

Я думаю, что вам нужно проверить функцию Lambda .

Поскольку вы используете Postman для выполнения вызовов API, полученное тело события будет иметь видследует:

{'resource':
...
}, 'body': '{\n\t"id": 1,\n\t"name": "ben"\n
}', 'isBase64Encoded': False
}

Как видите:

'body': '{\n\t"id": 1,\n\t"name": "ben"\n}'

Например, я буду использовать Python 3 для этого случая, чтоМне нужно сделать, это загрузить тело в формате JSON , тогда мы сможем его использовать.

result = json.loads(event['body'])
id = result['id']
name = result['name']

Затем обновите их до DynamoDB :

item = table.put_item(
        Item={
        'id': str(id),
        'name': str(name)
        }
    )
...