2017-03-16 46 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