将S3中的日志连续将其推向DynamoDB



我们的应用程序日志通过kinesis firehose泵送至S3。我们希望这些数据也流向DynamoDB,以便我们可以有效地查询要在Web UI(Ember App)中显示的数据。需要这样做是为了使用户能够过滤和分类数据,依此类推。基本上是通过Web UI支持查询功能。

我研究了AWS数据管道。这是可靠的,但更调整为一次导入或计划导入。我们希望从S3到DynamoDB的数据流是连续的。

还有哪些其他选择可以实现这一目标?将数据从S3转到DynamoDB并不是非常独特的要求。那么您如何解决此问题?

S3事件是否触发了lambda?如果是,则如何使此lambda容错?

用于全文查询

您可以按以下方式设计解决方案,以更好地查询使用AWS Elasticsearch作为富查询的目的地。

  • Amazon Elastic Search的设置Kinesis Firehouse目的地。这将使您可以从Web UI进行全文查询。
  • 您可以选择仅备份失败的记录或所有记录。如果您选择所有记录,Kinesis Firehose将所有传入的源数据与Amazon Elasticsearch的数据交付并同时将所有传入的源数据备份到您的S3存储桶中。

用于基本查询

如果您打算使用DynamoDB存储日志的元数据,则最好将S3触发器配置为Lambda,该触发器将检索文件并将元数据更新为dynamodb。

S3事件是否触发了lambda?

这绝对是一种选择。您可以在S3存储桶上创建一个putobject事件,并将其调用您的lambda函数,该功能将调用异步

如果是,那么如何使此lambda容错持续?

默认情况下,异步调用将在失败后两次重试。为了确保超出两个重试的故障耐受性,您可以使用死字母队列并将失败的事件发送到SQS队列或SNS主题,以便在以后处理。

最新更新