我们的应用程序日志通过Kinesis Firehose泵送到S3。我们希望这些数据也流向DynamoDB,以便我们可以有效地查询要在Web UI(Ember应用程序)中显示的数据。需要这样才能使用户能够对数据进行过滤和排序等。基本上通过Web UI支持查询功能。
我查看了AWS Data管道。这是可靠的,但更多调整为一次性进口或预定进口。我们希望从s3到dynamoDB的数据流是连续的。
还有哪些其他选择来实现这一目标?将数据从S3移动到dynamoDB并不是一个非常独特的要求。那你怎么解决这个问题呢?
S3事件触发lambda是一个选项吗?如果是,那么如何使这个lambda容错?
答案 0 :(得分:2)
全文查询
您可以按照以下方式设计解决方案,以便使用AWS Elasticsearch作为富查询的目标来更好地进行查询。
基本查询
如果您计划使用DynamoDB存储日志元数据,则最好将S3 Trigger配置为Lambda,Lambda将检索文件并将元数据更新为DynamoDB。
答案 1 :(得分:0)
S3事件是否触发了lambda选项?
这绝对是一种选择。您可以在S3存储桶上创建PutObject event并让它调用Lambda函数,该函数将以异步调用它。
如果是,那么如何使这个lambda容错?
默认情况下,异步调用将retry twice upon failure。为了确保超出两次重试的容错能力,您可以使用Dead Letter Queues并将失败的事件发送到SQS队列或稍后要处理的SNS主题。