2017-03-16 51 views
0

我配置了CloudWatch警报。我需要捕获这个事件并记录在数据库中用于报告目的。因为传入的读/写量很低,因此选择了Dynamo。使用Hash + Range键在DynamoDB中存储CloudWatch警报

我需要捕获:

  • AWS账户ID(12345678912345)
  • 事件的日期时间
  • 事件ID

我有多个AWS账户,我想将它们全部存储在一个表格中(我可以将它们存储在单独的表格中,但考虑到低音量不确定这是否真的有用)。

所以我应该使用哈希+范围?

Hash: <account_id> 
Range: <datetime> 

这样我的理解是DynamoDB将根据范围进行分组/排序。

我的查询就只能是:/

  • 得到所有的事件为ACCOUNT_ID所有账户/
  • 得到所有的事件,因为X时间ACCOUNT_ID所有帐户的

这是一个很好的设计吗?我需要一个单独的索引吗?

回答

1

根据您的查询模式,您的方法看起来正确。

  • 如果您只想要一个account_id的数据,请执行Query。您还可以提供范围键上的KeyConditionExpression以仅获得timestamp后发生的事件。
  • 如果你想为account_id的榜单数据,运行Scan。 (你不能BatchGetItem,因为它需要散列键和范围键)。
+0

谢谢。知道使用哪个API是有用的。 – CppLearner