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ヶ月前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ