用例:
我创建了一个队列,一个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的类型无效
我在做什么错了?
谢谢, 山姆