使用 java 的 AWS Kinesis Lambda 转换 - 未返回一个或多个记录 ID
AWS Kinesis Lambda Transformation using java - One or more record Ids were not returned
处理 AWS 运动时出现以下错误 - 到 S3 的 Lambda 函数
One or more record Ids were not returned. Ensure that the Lambda function returns all received record Ids.
下面是我的代码片段。
{
List<KinesisFirehoseOutputRecord> results = event.getRecords().stream()
.map(record -> {
KinesisFirehoseOutputRecord outRec = new KinesisFirehoseOutputRecord();
outRec.setRecordId(record.getRecordId());
outRec.setData(record.getData());
if (record.getData().toLowerCase().contains("moldovan")) {
outRec.setResult("Ok");
} else {
outRec.setResult("Dropped");
}
return outRec;
}).collect(Collectors.toList());
return new KinesisFirehoseResponse(results);
}
如果我删除 if else 条件并添加 outRec.setResult("Ok");,它按预期工作正常。知道如何解决这个问题吗?
Firehose 在函数执行后进行检查...处理的 recordID 数量等于发送给函数的 recordID。
正在检查函数结束时返回的数组。
如果您在流程中删除任何元素,您必须被分配到已删除的状态。
处理 AWS 运动时出现以下错误 - 到 S3 的 Lambda 函数
One or more record Ids were not returned. Ensure that the Lambda function returns all received record Ids.
下面是我的代码片段。
{
List<KinesisFirehoseOutputRecord> results = event.getRecords().stream()
.map(record -> {
KinesisFirehoseOutputRecord outRec = new KinesisFirehoseOutputRecord();
outRec.setRecordId(record.getRecordId());
outRec.setData(record.getData());
if (record.getData().toLowerCase().contains("moldovan")) {
outRec.setResult("Ok");
} else {
outRec.setResult("Dropped");
}
return outRec;
}).collect(Collectors.toList());
return new KinesisFirehoseResponse(results);
}
如果我删除 if else 条件并添加 outRec.setResult("Ok");,它按预期工作正常。知道如何解决这个问题吗?
Firehose 在函数执行后进行检查...处理的 recordID 数量等于发送给函数的 recordID。
正在检查函数结束时返回的数组。
如果您在流程中删除任何元素,您必须被分配到已删除的状态。