AWS API Gateway + Kinesis集成:记录数组的映射模板?

时间:2018-07-17 17:59:39

标签: amazon-web-services amazon-s3 aws-api-gateway amazon-kinesis amazon-kinesis-firehose

我正在使用API​​网关将数据流传输到Kinesis / Firehose,然后将其传递到S3。 我正在使用将记录批量发送到API网关的记录器。这些记录以JSON对象数组的形式发送,如下所示:

struct Root: Codable {
    let  data: [InnerItem]
}
struct InnerItem:Codable {
    let  id: Int?
    let  image: String?
    let  name: String?

    private enum CodingKeys : String, CodingKey {
        case id = "id", image = "image", name = "name"
    }
}

我希望S3将这些记录存储为JSON文件,例如:

[
{"data" : "some data", "PartitionKey" : "key"},
{"data" : "some data", "PartitionKey" : "key"},
...
]

我正在尝试使用以下模板:

[
{"data" : "some data"},
{"data" : "some data"},
...
]

但是,当我测试该方法时,出现以下错误:

{
    "StreamName": "$input.params('stream-name')",
    "Records": [
       #foreach($elem in $input.path('$'))
          {
            "Data": "$util.base64Encode($elem.data)",
            "PartitionKey": "$elem.PartitionKey"
          }#if($foreach.hasNext),#end
        #end
    ]
}

对于我犯了什么错误,我将不胜感激。

非常感谢。

0 个答案:

没有答案