Streaming data to an HTTP endpoint with Amazon Kinesis Data Firehose

0

Hi All, Trying to implement "Streaming data to an HTTP endpoint with Amazon Kinesis Data Firehose" using AWS Big Data blog https://aws.amazon.com/blogs/big-data/stream-data-to-an-http-endpoint-with-amazon-kinesis-data-firehose/. Blog does not tell about "REST API in Amazon API Gateway" Mapping template - for Integration Request and Integration Response is configured. I am getting error HTTPEndpoint "missing requestId". How to set Integration Response & Method Response in API Gateway to work. Any help is much appreciated.

2 個答案
1

There are some good tutorials that can help you understand how to configure API Gateway - https://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-rest-tutorials.html

profile pictureAWS
專家
已回答 2 年前
profile picture
專家
已審閱 1 個月前
  • @UdAWS - If my answer has helped you understand API Gateway better, can I request you to please accept my answer. Thanks

0

Kinesis DF expects a specific response format - see https://docs.aws.amazon.com/firehose/latest/dev/httpdeliveryrequestresponse.html for details. The same responseId from the request sent to a HTTP destination must exist as well in the response. If you can not influence HTTP destination so it replies with the expected format you can use API Gateway Rest API with the integration type of HTTP. There you can define VTL templates to map responses from the target. The only way I know to remember requestId between the request and the response is to add an integration request template

#set($context.requestOverride.header.request-id = $util.parseJson($input.body).requestId)
$input.json('$')

and then in the integration response template:

#set($requestId = $context.requestOverride.header.request-id)
{
  "requestId": "$requestId",
  "timestamp": $context.requestTimeEpoch
}
已回答 5 個月前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南