如何在映射模板中添加换行符

时间:2016-12-15 08:00:06

标签: aws-api-gateway amazon-kinesis-firehose

似乎微不足道,但我无法让它工作:我将编码为JSON对象的数据发送到调用Firehose的API网关。 S3中生成的文件包含一行中的所有JSON对象。我已经读到应该可以添加新行,但无论我尝试什么,都会出现错误或者根本不做任何事情。 mappping模板看起来像这样

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

任何想法该怎么做?

2 个答案:

答案 0 :(得分:3)

答案非常容易。只需在映射模板中添加这样的换行符。

#set($payload = "$input.json('$')
")
{
   "DeliveryStreamName": "stream-name",
   "Record": { 
      "Data": "$util.base64Encode($payload)"
   }
}

答案 1 :(得分:1)

不再是当前的! - 请勿使用

我遇到了完全相同的问题。根据此helpful git issue,您可以通过附加base64编码的换行符来解决它,例如:

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

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