【问题标题】:AWS Kinesis Lambda Transformation using java - One or more record Ids were not returned使用 java 的 AWS Kinesis Lambda 转换 - 未返回一个或多个记录 ID
【发布时间】:2020-02-08 14:25:29
【问题描述】:

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

One or more record Ids were not returned. Ensure that the Lambda function returns all received record Ids.

以下是我的代码 sn-p。

{
        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");,它按预期工作正常。知道如何解决这个问题吗?

【问题讨论】:

  • 找到结果..谢谢

标签: java amazon-web-services amazon-s3 aws-lambda amazon-kinesis-firehose


【解决方案1】:

Firehose 在函数执行后进行检查...处理的recordID 数量等于发送给函数的recordID。

检查函数结束时返回的数组。

如果您在流程中删除任何元素,则必须为您分配已删除的状态。

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

【讨论】:

    猜你喜欢
    • 2020-11-06
    • 2017-10-16
    • 2021-06-15
    • 2018-07-02
    • 1970-01-01
    • 2015-01-08
    • 2020-02-08
    相关资源
    最近更新 更多