从sqs读取并写入dynamodb的python代码出错

时间:2019-05-04 02:05:54

标签: amazon-dynamodb

用例:

  1. 通过lambda函数(用python编写)读取JSON SQS消息。
  2. 将JSON消息写入dynamodb。

我创建了一个队列,一个lambda函数(下面的python代码)和一个dynamodb table。我已将lambda函数附加到SQS。 当我通过使用来自测试事件的数据进行测试时,这可以正常工作(行被添加到dynamodb中)。

问题是: 为了测试lambda的触发,我手动将以下JSON数据添加到sqs队列中,但是没有数据插入dynamodb中。

{"FirstName":"Name1SQS","City": "City1SQS"} 

我已经通过配置测试事件测试了python函数。这可以正常工作,并在dynamodb中创建一个json记录。看来可变消息是从测试事件而不是从SQS正确获取/处理JSON格式的数据。

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
)

当我手动创建新的SQS消息时,我在Cloudwatch日志中收到此错误。

[错误] ParamValidationError参数验证失败:参数Item的类型无效

我在做什么错了?

谢谢, 山姆

0 个答案:

没有答案