gpt4 book ai didi

java - 使用 Java 的 Kinesis firehose 数据转换

转载 作者:行者123 更新时间:2023-11-29 08:27:08 24 4
gpt4 key购买 nike

使用 Java Lambda 函数进行运动数据流水转换时,出现以下错误。下面是我转换后的 JSON 样子

{
"records": [
{
"recordId": "49586022990098427206724983301551059982279766660054253570000000",
"result": "Ok",
"data": "ZXlKMGFXTnJaWEpmYzNsdFltOXNJam9pVkVWVFZEY2lMQ0FpYzJWamRHOXlJam9pU0VWQlRGUklRMEZTUlNJc0lDSmphR0Z1WjJVaQ0KT2kwd0xqQTFMQ0FpY0hKcFkyVWlPamcwTGpVeGZRbz0="
}
]
}

运动控制台中的错误就像

无效的输出结构:请检查您的函数并确保处理的记录包含 Dropped、Ok 或 ProcessingFailed 的有效结果状态

任何人对此都有想法,我找不到在运动数据转换上使用 Java 的示例代码

https://docs.aws.amazon.com/firehose/latest/dev/data-transformation.html

这个文档说的是输出结构

最佳答案

我刚刚在 Scala(与 Java 兼容)中苦苦挣扎。关键是使用返回类型:com.amazonaws.services.lambda.runtime.events.KinesisAnalyticsInputPreprocessingResponse

import java.nio.ByteBuffer

import com.amazonaws.services.lambda.runtime.events.KinesisAnalyticsInputPreprocessingResponse._
import com.amazonaws.services.lambda.runtime.events.{KinesisAnalyticsInputPreprocessingResponse, KinesisFirehoseEvent}
import com.amazonaws.services.lambda.runtime.{Context, LambdaLogger, RequestHandler}

import scala.collection.JavaConversions._
import scala.language.implicitConversions

class Handler extends RequestHandler[KinesisFirehoseEvent, KinesisAnalyticsInputPreprocessingResponse] {

override def handleRequest(in: KinesisFirehoseEvent, context: Context): KinesisAnalyticsInputPreprocessingResponse = {

val logger: LambdaLogger = context.getLogger
val records = in.getRecords
val tranformed = records.flatMap(record => {

try {
val changed = record.getData.array()
//do some sort of transform
val rec = new Record(record.getRecordId, Result.Ok, ByteBuffer.wrap(changed))
Some(rec)
} catch {
case e: Exception => {
logger.log(e.toString)
Some(new Record(record.getRecordId, Result.Dropped, record.getData))
}
}
})

val response = new KinesisAnalyticsInputPreprocessingResponse()
response.setRecords(tranformed.toList)
response
}
}

关于java - 使用 Java 的 Kinesis firehose 数据转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51710546/

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