amazon-web-services - 如何在 Kinesis 服务器端记录 IP、时间戳和用户代理

标签 amazon-web-services amazon-kinesis amazon-kinesis-firehose

我有一个 kinesis 数据流连接到一个 kinesis firehose,它在 S3 中转储数据。我正在使用 javascript 客户端库 aws-sdk将记录推送到数据流中(例如使用 putRecords() )。

有没有办法让我在服务器端记录 ip、时间戳和用户代理?更一般地说,我可以将服务器端的 http header 放入正在摄取到 kinesis 的记录中吗?还是我必须把所有这些都放在客户端?

(如果在客户端,在处理来自客户端的 ip 和时间戳时是否有任何指向最佳实践的指针,这可能不可靠?)

最佳答案

Is there a way for me to log the ip, timestamp, and user-agent op the server side?



不幸的是,您无法在服务器端执行此操作。 Kinesis API 不提供任何类型的配置,并且传递的 Kinesis 记录不包含任何随 putRecords() 请求而来的 HTTP 元数据。 ( Looks something like this .) 正如您猜测的那样,您必须在客户端添加信息。

我们有一个类似的情况,我们不能依赖客户端的细节(尤其是时间),所以我们有一个位于 Kinesis 前面的小型 Web 服务,从我们的客户端接受 HTTP,添加 HTTP 元数据和服务器端时间戳,然后将记录转发到 Kinesis。

您可以执行类似的操作,或者,如果您认为更简单,可以使用 API Gateway/Lambda 接受来自客户端的数据,添加 HTTP 元数据并将其转发到支持 API Gateway 端点的 Lambda 内的 Kinesis。

关于amazon-web-services - 如何在 Kinesis 服务器端记录 IP、时间戳和用户代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51217504/

相关文章:

amazon-web-services - Kinesis 到 S3 自定义分区

python - VPC 中的 Lambda 无法连接到 AWS 服务

amazon-web-services - 将数据从单个 Kinesis Stream 流式传输到 Redshift 中的多个表

amazon-web-services - AWS CloudWatch 日志的订阅过滤器以清除 Lambda 报告消息

amazon-web-services - 在 AWS、Azure 或 Google Cloud 等主要参与者托管时,我可以相信我的代码和表结构不会被复制吗?

amazon-web-services - 如何续订aws预留实例

amazon-web-services - 如何从自定义 REST API 将数据加载到 Redshift

postgresql - 是否可以将 Postgresql 数据库从 Amazon RDS 复制到另一个 Amazon RDS?

amazon-web-services - 如何将运动视频流存储到 S3 存储桶中?

amazon-kinesis - 如何延迟处理 AWS Kinesis 消息?