将api网关连接到kinesis流

时间:2017-07-18 11:07:28

标签: json amazon-web-services aws-api-gateway amazon-kinesis

我已将API网关配置为Kinesis代理,如亚马逊用于将记录放入Kinesis流的教程中所述。

集成请求的HTTP标头是:

  • Content-Type映射到application / x-amz-json-1.1

内容类型application / json的正文映射模板如下所示:

#set($event =  "{
  ""rows"": ""$input.json('$')"",
 ""uuid"": ""$input.params('uuid')"",
}")
{
   "StreamName": "$input.params('stream-name')",  
   "Data": "$util.base64Encode($event)",  
   "PartitionKey": "$input.params('$partition-key')"
}

我在发送帖子请求时收到内部服务器错误。

1 个答案:

答案 0 :(得分:0)

您的身体模板映射似乎有些错误。

如果“PartitionKey”是请求正文使用$input.path('$.PartitionKey')的一部分,例如当您的请求正文时 {"Data" : "example-data", "PartitionKey" : "example-key"}

;如果“partition-key”是api路径(或查询字符串或标题)的一部分,请使用$input.params('partition-key'),例如当您的网址为abc.api-xxxxx.com/{stream-name}/{parition-key}/{uuid}时。

有关输入变量的更多帮助,请参阅http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html#input-variable-reference

谢谢!