gpt4 book ai didi

java - 使用 java 的 AWS Kinesis Lambda 转换 - 未返回一个或多个记录 ID

转载 作者:行者123 更新时间:2023-12-02 09:26:04 27 4
gpt4 key购买 nike

处理 AWS kinesis - Lambda 函数到 S3 时出现以下错误

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。

检查是对函数结束时返回的数组进行的。

如果您删除流程中的任何元素,则必须指定您已删除的状态。

https://github.com/awsdocs/amazon-kinesis-data-firehose-developer-guide/blob/master/doc_source/data-transformation.md#data-transformation-status-model

关于java - 使用 java 的 AWS Kinesis Lambda 转换 - 未返回一个或多个记录 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58334808/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com