代码之家  ›  专栏  ›  技术社区  ›  hotmeatballsoup

通过python3和boto3将ttl添加到dynamodb记录中

  •  0
  • hotmeatballsoup  · 技术社区  · 6 年前

    我有以下pyhton3/boto3脚本,它连接到一个AWS dynamodb表,并试图通过循环在所有记录上设置19天的TTL:

    #!/usr/bin/env python3
    import boto3
    import sys
    from datetime import datetime, timedelta
    from boto3.dynamodb.conditions import Key, Attr
    
    client = boto3.resource('dynamodb')
    
    ttl = 19    # The TTL in number of DAYS
    
    myTable = client.Table('MyTable')
    
    pe = "logId, id, created"
    delCount = 0
    
    try:
        response = integrationLogTable.scan(
            ProjectionExpression=pe,
            )
        while 'LastEvaluatedKey' in response:
            response = integrationLogTable.scan(
                ProjectionExpression=pe,
                ExclusiveStartKey=response['LastEvaluatedKey']
                )
    
            for i in response['Items']:
                # ???
    
    except ClientError as e:
        print(e.response['Error']['Message'])
    

    我正在努力研究如何将19天的生存时间(TTL)添加到我的所有记录中… 有什么想法吗?

    1 回复  |  直到 6 年前
        1
  •  2
  •   Kannaiyan    6 年前

    下面是将TTL添加到dynamodtable的过程,

    1. 将TTL添加到dynamodb表中
    2. 将属性添加到每个记录并保存它。

    属性格式:

    以秒为单位添加TTL。

    19天,19*24*60*60=>19天/24小时/60分钟/60 秒。

    1641600秒

    import time; 
    object.ttlattribute = 1641600 + long(time.time())
    

    希望它有帮助。

    Eddi1:

    https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.Python.03.html#GettingStarted.Python.03.03

    查看如何使用boto在dynamodb上执行所有操作的链接。