2

看起来微不足道,但我无法让它工作:我正在将编码为 JSON 对象的数据发送到调用 Firehose 的 API Gateway。S3 中生成的文件在一行中包含所有 JSON 对象。我读过应该可以添加换行符,但是无论我尝试什么,要么出现错误,要么根本没有做任何事情。映射模板如下所示

{
    "DeliveryStreamName": "file-datadump",
    "Record": { 
    "Data": "$util.base64Encode($input.json('$'))"
    }
}

有什么想法该怎么做?

4

2 回答 2

12

答案非常简单。只需在映射模板中添加一个换行符即可。

#set($payload = "$input.json('$')
")
{
   "DeliveryStreamName": "stream-name",
   "Record": { 
      "Data": "$util.base64Encode($payload)"
   }
}
于 2017-05-04T13:40:36.753 回答
1

不再是电流!- 不使用

我遇到了完全相同的问题。根据这个有用的 git issue,您可以通过附加 base64 编码的换行符来绕过它,例如:

{
    "DeliveryStreamName": "$stageVariables.delivery_stream",
    "Record": {
        "Data":"$util.base64Encode($input.params().querystring)Cg=="
    }
}

这并不理想,但希望有所帮助!

于 2016-12-19T12:14:54.727 回答