使用Lambda

时间:2018-05-15 20:02:30

标签: python amazon-web-services aws-lambda amazon-dynamodb

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

DynamoDB表(名称:Testing-Table):

  • user_id (字符串) PrimaryKey
  • status(String)
  • 目的地(字符串)

我想在我的代码中查询表。我希望lambda函数能够将所有 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'

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

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

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

- 的修改 - 如果状态是我的表的PrimaryKey,则我的代码只能

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

1 个答案:

答案 0 :(得分:0)

我找到了我要找的东西:

我必须在我的代码中添加 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