Error con el código de python lectura de sqs y escribir dynamodb
Caso de uso:
- Leer JSON SQS mensajes a través de la función lambda(escrito en python).
- Escribir mensaje JSON para dynamodb.
He creado una cola, una función lambda(código python a continuación) y una tabla de dynamodb . He conectado la función lambda SQS. Esto funciona bien (fila se añade a dynamodb) cuando la prueba mediante el uso de datos de eventos de prueba.
Cuestión es la siguiente: A prueba de disparo de lambda, he añadido siguientes datos JSON a la cola sqs-manualmente, pero no hay datos es cada vez insertado en dynamodb.
{"FirstName":"Name1SQS","City": "City1SQS"}
He probado la función de python mediante la configuración de un evento de prueba. Esto funciona bien y crea un json registro en dynamodb. Parece que el mensaje variable está correctamente llegar/procesamiento de datos en formato JSON desde el evento de prueba, pero no de SQS.
Código para la función lambda:
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
)
Me sale este error en los registros de Cloudwatch cuando puedo crear nuevos SQS mensaje manualmente.
[ERROR] ParamValidationError Parámetro de error de validación: de tipo no Válido para parámetro de Elemento
¿Qué estoy haciendo mal?
Gracias, Sam