【发布时间】:2022-01-09 23:06:50
【问题描述】:
我想使用运行 python 的 lambda 函数查询我的 DynamoDB。
DynamoDB 表(名称:Testing-Table):
- user_id(字符串)PrimaryKey
- 状态(字符串)
- 目的地(字符串)
我想查询代码中的表。我希望 lambda 函数返回所有 user_id 的 status 属性和 active。
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'
我还添加了一个新索引:
我尝试创建一个以 status 作为主键的表,并且我的代码有效...但是主键必须是唯一的,所以当我尝试在表中创建一个新项目时,我无法设置状态再次处于活动状态。
如有必要,我会在问题中添加更多信息。我会感谢您的帮助。
--编辑-- 我的代码仅在 status 是我的表的 PrimaryKey 时才有效。
我的问题是:我可以使用 status PartitionKey 而不是 PrimaryKey used_id 来查询我的 DynamoDB 表吗?最重要的是......它是如何完成的?
【问题讨论】:
-
您的问题是什么?您添加的代码 sn-p 是否有效?
-
它可以工作,但它不能满足我的需要。我需要过滤活动、非活动状态。作为 Lambda 执行的结果获取我的表的 user_id。
标签: python amazon-web-services aws-lambda amazon-dynamodb