gpt4 book ai didi

python - 使用 Lambda 在没有主键的情况下查询 DynamoDB

转载 作者:行者123 更新时间:2023-12-04 16:44:59 26 4
gpt4 key购买 nike

我想使用运行 python 的 lambda 函数查询我的 DynamoDB。

DynamoDB 表(名称:Testing-Table):

  • 用户 ID (字符串)主键
  • 状态(字符串)
  • 目的地(字符串)

  • 我想在我的代码中查询表。我希望 lambda 函数返回我所有的 用户 ID 有他们的 状态 属性与 事件 .
    table = dynamodb.Table('Testing-Table')
    def lambda_handler(event, context):

    response = table.query (
    KeyConditionExpression=Key('status').eq('active')
    )

    for i in response['Items']:
    print(i['user_id'],":",i['status'])

    #return 'listing results'

    我还添加了一个新索引:
    Indexes

    我尝试用 创建一个表状态 作为主键,我的代码有效......但主键必须是唯一的,所以当我尝试在我的表中创建一个新项目时,我无法设置 状态 再次活跃。

    如有必要,我会在问题中添加更多信息。我会感谢一点帮助。

    -- 编辑 ——
    我的代码仅适用于 状态 是我表的主键。

    我的问题是:我可以使用 查询我的 DynamoDB 表吗?状态 PartitionKey 而不是 PrimaryKey used_id ?最重要的是......它是如何完成的?

    最佳答案

    我找到了我要找的东西:

    我不得不像这样在我的代码中添加 IndexName 。

    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table('Testing-Table')

    def lambda_handler(event, context):

    response = table.query (
    IndexName='status-index',
    KeyConditionExpression=Key('status').eq('active')
    )

    for i in response['Items']:
    print(i['user_id'],":",i['status'])

    这是结果的图像:

    results

    关于python - 使用 Lambda 在没有主键的情况下查询 DynamoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50358354/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com