使用哈希+范围密钥在 DynamoDB 中存储 CloudWatch 警报



我配置了一个 CloudWatch 警报。我需要捕获此事件并将其记录在数据库中以进行报告。选择发电机是因为传入读/写量低。

我需要捕获的内容:

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

我有多个 AWS 账户,我想将它们全部存储在一个表中(我也可以将它们存储在单独的表中,但鉴于数量很少,不确定这是否真的那么有用(。

那么我应该使用哈希+范围吗?

Hash: <account_id>
Range: <datetime>

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

我的查询只会是:

  • 获取account_id/所有帐户的所有事件
  • 获取自 X 时间以来的所有事件 account_id/所有帐户

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

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

  • 如果只需要一个account_id的数据,请执行Query。您还可以在范围键上提供KeyConditionExpression,以仅获取在给定timestamp之后发生的事件。
  • 如果需要account_id列表的数据,请运行Scan。(你不能BatchGetItem,因为它需要哈希键和范围键(。

最新更新