如何在映射模板中添加换行符
How to add a newline in a mapping template
似乎微不足道,但我无法让它工作:我将编码为 JSON 对象的数据发送到调用 Firehose 的 API 网关。 S3 中生成的文件在一行中包含所有 JSON 对象。我读过应该可以添加换行符,但无论我尝试什么,要么出现错误,要么根本不执行任何操作。映射模板如下所示
{
"DeliveryStreamName": "file-datadump",
"Record": {
"Data": "$util.base64Encode($input.json('$'))"
}
}
有什么想法吗?
不再有效! - 不要使用
我遇到了完全相同的问题。根据这个 helpful git issue,你可以通过附加一个 base64 编码的换行符来破解它,例如:
{
"DeliveryStreamName": "$stageVariables.delivery_stream",
"Record": {
"Data":"$util.base64Encode($input.params().querystring)Cg=="
}
}
不太理想,但希望对您有所帮助!
答案简单得离谱。只需在映射模板中像这样添加一个换行符。
#set($payload = "$input.json('$')
")
{
"DeliveryStreamName": "stream-name",
"Record": {
"Data": "$util.base64Encode($payload)"
}
}
似乎微不足道,但我无法让它工作:我将编码为 JSON 对象的数据发送到调用 Firehose 的 API 网关。 S3 中生成的文件在一行中包含所有 JSON 对象。我读过应该可以添加换行符,但无论我尝试什么,要么出现错误,要么根本不执行任何操作。映射模板如下所示
{
"DeliveryStreamName": "file-datadump",
"Record": {
"Data": "$util.base64Encode($input.json('$'))"
}
}
有什么想法吗?
不再有效! - 不要使用
我遇到了完全相同的问题。根据这个 helpful git issue,你可以通过附加一个 base64 编码的换行符来破解它,例如:
{
"DeliveryStreamName": "$stageVariables.delivery_stream",
"Record": {
"Data":"$util.base64Encode($input.params().querystring)Cg=="
}
}
不太理想,但希望对您有所帮助!
答案简单得离谱。只需在映射模板中像这样添加一个换行符。
#set($payload = "$input.json('$')
")
{
"DeliveryStreamName": "stream-name",
"Record": {
"Data": "$util.base64Encode($payload)"
}
}