Kinesis Firehose HTTP_Endpoint 目标响应格式
Posted
技术标签:
【中文标题】Kinesis Firehose HTTP_Endpoint 目标响应格式【英文标题】:Kinesis Firehose HTTP_Endpoint destination Response format 【发布时间】:2021-12-27 06:16:01 【问题描述】:以 http_endpoint 作为目标的 Kinesis Firehose 响应的正确格式是什么。已经通过aws链接: https://docs.aws.amazon.com/firehose/latest/dev/httpdeliveryrequestresponse.html#responseformat
我在 python 中使用了以下 lambda 代码(集成在 api 中)以及许多其他选项,但不断收到以下错误消息。使用“使用演示数据进行测试”选项执行测试
示例代码:
def lambda_handler(event, context):
data =
headersD =
headersD['content-length'] = 0
headersD['content-type'] = 'application/json'
data['requestId'] = 'ed4acda5-034f-9f42-bba1-f29aea6d7d8f'
data['timestamp'] = '1578090903599'
bodyDetail=
data['body'] = ''
data['headers'] =headersD
data['statusCode']=200
resp = json.dumps(data)
return resp
日志中的错误响应:
从端点收到的响应无效。有关详细信息,请参阅 Firehose 文档中的 HTTP 端点故障排除。原因:。请求“request-Id”的响应未被识别为有效 JSON 或包含意外字段。收到的原始响应:200 "HttpEndpoint.InvalidResponseFromDestination"
【问题讨论】:
也许这个文档也有帮助docs.aws.amazon.com/firehose/latest/dev/… 【参考方案1】:这是有效的示例输出(在 python 中):
responseBody =
"requestId": "requestId",
"timestamp": 123456
resp =
"headers": "Content-Type": "application/json", "Content-Length": 100,
"body": json.dumps(responseBody),
"statusCode": 200
return resp
【讨论】:
以上是关于Kinesis Firehose HTTP_Endpoint 目标响应格式的主要内容,如果未能解决你的问题,请参考以下文章
AWS Typescript CDK,尝试将 kinesis 流作为来源添加到 firehose
将 AWS Kinesis Firehose 回填到 Elasticsearch Service 失败记录
Kinesis Firehose HTTP_Endpoint 目标响应格式