1

我有一个运动流,它的原始值是 Base64 编码的数据。由于 Kinesis 默认将其所有数据编码为 Base64,因此我必须执行 Base64decode 才能从 Kinesis DataBlob 中获取数据。但由于 originalData 在解码时也是 Base64,因此 originalData 被损坏/解码,我不希望我的 Originaldata 被解码。我的代码位于由 SQS 触发的 lambda 中,我无法将 Kinesis 作为触发器。我观察到如果触发器是 Kinesis,则不会出现此问题。您能否建议我如何在不解码/损坏的情况下提取原始数据?

编辑:添加更多点。作为此 lambda01 触发器的 SQS 是另一个消耗 Kinesis 的 lambda02 的失败消息的目标队列。失败时,记录详细信息(Kinesis 的 ShardID 和 SequenceNumber)被推送到 SQS,lambda01 将根据此数据从 Kinesis 获取这些详细信息。由 Kinesis 触发的 Lambda02 消耗 Kinesis,但不会更改/推送任何记录运动。推送到 Kinesis 的一些示例数据示例数据:{ "Attribute1": "<Base64EncodedValue>", "Attribute2:"value1" }

nodejs 用于解码Base64的代码

const decodedRecord= Buffer.from(recordFromKinesis.data, 'base64').toString();

我需要 Attribute1 值完好无损。

4

0 回答 0