Вариант использования:
- Чтение сообщений JSON SQS с помощью лямбда-функции (написано на python).
- Запись сообщения JSON в Dynamodb.
Iсоздали очередь, лямбда-функцию (код Python ниже) и таблицу DynamodB.Я прикрепил лямбда-функцию к SQS.Это работает нормально (строка добавляется в DynamodB), когда я тестирую, используя данные из тестового события.
Проблема: для проверки запуска лямбды я добавил следующие данные JSON в очередь sqs вручную, но данные не вставляются в DynamodB.
{"FirstName":"Name1SQS","City": "City1SQS"}
Я тестировал pythonфункция путем настройки тестового события.Это прекрасно работает и создает запись JSON в DynamodB.Кажется, что переменное сообщение правильно получает / обрабатывает данные в формате JSON из тестового события, но не из SQS.
Код для лямбда-функции:
import json
import boto3
dynamodb = boto3.resource('dynamodb')
def lambda_handler(event, context):
message = event['Records'][0]['body']
dynamodb_table_name = dynamodb.Table('Lead')
dynamodb_table_name.put_item(
Item=message
)
Я получаю эту ошибку в журналах Cloudwatch при ручном создании нового сообщения SQS.
[ОШИБКА] ParamValidationError Проверка параметровСбой: Неверный тип для параметра Item
Что я делаю не так?
Спасибо, Сэм