Nac*_*ris 6 python amazon-web-services amazon-dynamodb aws-lambda
我想使用运行 python 的 lambda 函数查询我的 DynamoDB。
DynamoDB 表(名称:测试表):
我想查询我的代码中的表。我希望 lambda 函数返回所有状态属性为active的user_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'
Run Code Online (Sandbox Code Playgroud)
我还添加了一个新索引:

我尝试创建一个以状态为主键的表,并且我的代码有效...但主键必须是唯一的,因此当我尝试在表中创建新项目时,我无法再次将状态设置为活动状态。
如果有必要,我会在问题中添加更多信息。我会感谢您的一点帮助。
--编辑--仅当状态是我的表的主键时,我的代码才有效。
我的问题是:我可以使用状态PartitionKey 而不是 PrimaryKeyused_id查询我的 DynamoDB 表吗?最重要的是......它是如何完成的?
Nac*_*ris 10
我找到了我正在寻找的东西:
我必须像这样在我的代码中添加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'])
Run Code Online (Sandbox Code Playgroud)
这是结果的图像:

| 归档时间: |
|
| 查看次数: |
4540 次 |
| 最近记录: |