从lambda向消防水带发送数据时出错



我正在测试从aws lambda发送数据到消防软管的代码。这是我的代码:

client = boto3.client('firehose')
for item in items:
response = client.put_record(
DeliveryStreamName='iot-firehose',
Record=item)

我的项目将是一本像这样的字典:

{
'IMEI':123,
'Time':'time',
'Voltage':some voltage(type int),
'Current':some Current(type int),
}

我得到这个错误,我看了文档,但我不知道我做错了什么

[ERROR] ParamValidationError: Parameter validation failed:Missing required parameter in Record: "Data"Unknown parameter in Record: "IMEI", must be one of: DataUnknown parameter in Record: "Time", must be one of: DataUnknown parameter in Record: "Voltage", must be one of: DataUnknown parameter in Record: "Current", must be one of: DataTraceback (most recent call last):  File "/var/task/lambda_function.py", line 19, in lambda_handler    response = client.put_record(  File "/var/runtime/botocore/client.py", line 357, in _api_call    return self._make_api_call(operation_name, kwargs)  File "/var/runtime/botocore/client.py", line 648, in _make_api_call    request_dict = self._convert_to_request_dict(  File "/var/runtime/botocore/client.py", line 696, in _convert_to_request_dict    request_dict = self._serializer.serialize_to_request(  File "/var/runtime/botocore/validate.py", line 297, in serialize_to_request    raise ParamValidationError(report=report.generate_report())

我真的弄明白了。该数据项我发送的是一个python字典但它可能需要的数据是JSON所以json.dumps(item)解出了它。还有一个语法错误,应该是response = client.put_record(DeliveryStreamName='iot-firehose',Record={'Data':json.dumps(item)})

最新更新