1
5
这里有3种不同的选择。正确的选择取决于您的应用程序的要求。可能这些方法都不能在您的特定用例中工作,但一般来说,这些方法都能工作。
选择2 如果在写入dynamodb时可以处理少量开销,那么可以设置一个lambda函数(或基于ec2的服务),作为dynamodb表的写入代理。配置您的权限,以便只有Lambda可以写入表中,然后您可以接受所需的任何元数据,并以任何方式记录它。如果您只需要记录事件,那么就不需要写入S3,因为AWS可以为您处理Lambda日志。 下面是一个lambda函数的伪代码示例,它使用日志记录而不是写入S3。
当然,您仍然可以自由地直接登录到S3,但如果您这样做,您可能会发现增加的延迟足以影响您的应用程序。 选择3 如果您可以容忍表中的某些陈旧数据,请设置 DynamoDB TTL 在你的桌子上。创建或更新项目时不要设置TTL值。然后,通过将当前时间添加到TTL字段来更新项目,而不是删除项目。据我所知,DynamoDB在删除具有过期TTL的项目时不使用写容量,过期的项目在其过期24小时后被删除。
这将允许您将添加TTL记录为删除,并具有
在应用程序中,还可以检查TTL值是否存在,这样就不会意外地向用户显示已删除的数据。您还可以向任何将忽略具有TTL集的项的查询添加筛选器表达式。 |
fewfew · 为什么在进行筛选时会得到空列表? 2 年前 |
kk651 · 首先创建表,然后将项放入刚刚创建的表中 2 年前 |
GavinF · Dynamo DB-查找每个主键的最新条目 2 年前 |
Hamza Ahmad · 从DynamoDB表中获取最新值 6 年前 |