我有一个kinesis数据流连接到了一个kinesis firehose,后者在S3中转储数据。我正在使用JavaScript客户端库aws-sdk
将记录推送到数据流中(例如,使用putRecords()
)。
我是否可以在服务器端记录IP,时间戳和用户代理?更一般而言,我可以将服务器端的http标头放入正在被吸收进kinesis的记录中吗?还是我必须将所有这些都放在客户端上?
(如果在客户端,在处理来自客户端的ip和时间戳时是否有最佳做法的指针?)
答案 0 :(得分:0)
有没有办法让我记录IP,时间戳和用户代理 服务器端?
不幸的是,您无法在服务器端执行此操作。 Kinesis API沿这些行不提供任何类型的配置,并且传递过来的Kinesis记录不包含putRecords()请求附带的任何HTTP元数据。 (Looks something like this。)推测时,您将不得不在客户端添加信息。
我们有一个类似的情况,我们不能依赖客户端详细信息(尤其是时间),因此我们有一个小型Web服务,它位于Kinesis的前面,可以接受来自客户端的HTTP,添加HTTP元数据和服务器时间戳,然后将记录转发给Kinesis。
您可以执行类似的操作,或者,如果您认为更简单,则可以使用API Gateway / Lambda接受来自客户端的数据,添加HTTP元数据并将其转发到支持API Gateway端点的Lambda中的Kinesis。 / p>