【问题标题】:Kinesis Stream - API Gateway: Serialization ExceptionKinesis Stream - API 网关:序列化异常
【发布时间】:2021-08-10 00:46:36
【问题描述】:

我正在按照this tutorial 将 Kinesis Stream 与 A​​PI Gateway 集成。

records 端点使用PutRecords 操作。此端点的预期请求模板如下:

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

尽管完全按照本教程进行操作,但如果我发送具有预期格式的请求正文(例如下一个格式),我会收到 SerializationException 错误:

  {
    "StreamName": "my_kinesis_stream",
    "Records": [
        {
            "Data": "XzxkYXRhPl8x",
            "PartitionKey": "partitionKey1"
        },
        {
            "Data": "f1PxFQo92Afh",
            "PartitionKey": "partitionKey1"
        },
        {
            "Data": "Gi4sEdd08HypA",
            "PartitionKey": "partitionKey1"
        }
    ]    
}

我不知道教程的模板是否正确,或者我的正文请求格式不正确。

奇怪的是,本教程的所有其他端点都可以正常工作。这是唯一一个不能正常工作的。

提前致谢。

【问题讨论】:

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


    【解决方案1】:

    文档实际上是错误的。 This documentation 指定正确的请求模板:

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

    【讨论】:

      猜你喜欢
      • 2016-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多