Boto3 无法从 DynamoDB 检索项目

Boto3 unable to retrieve items from DynamoDB

所以我正在使用 DynamoDB 来存储我的 Spark 作业的状态。我创建了名为 scheduleTime(Partition key)appName(Range key)Primary keys 和我的 spark作业完成后写入作业的状态。在我的 spark 作业完成后,另一个 Python 脚本 被安排来检索作业的状态并在出现故障时重新启动应用程序。对于一组特定的 主键 ,我在 DynamoDB table 中没有得到任何项目,有时即使记录存在并且当我使用 UI 我可以看到各自的记录。我为此使用 boto3table.get_item() 方法。代码片段如下:

    table.get_item(
    Key = {
         'scheduleTime': scheduleTime,
         'appName': appName
          }
    )

所以基本上问题是 DynamoDB Python boto3 库的 get_item() 函数支持不一致的读取默认(这有点奇怪,因为其他记录检索方法如 batch_get_items() 提供一致的读取能力)。所以我只需要将 ConsistantRead 标志启用为 True

response = table.get_item(
    Key = {
         "scheduleTime": scheduleTime,
         "appName": appName
    },
    ConsistentRead=True
)

所以上面的代码片段非常适合立即读取。