Как запросить DynamoDB с лямбда-функцией с несколькими фильтрами, переданными из API

Я создаю лямбда-функцию с Dynamodb для отображения элементов и пытаюсь передать параметры для фильтрации данных. Без прохождения какого-либо фильтра я могу получить данные с помощью метода сканирования, но при прохождении фильтра получаю ошибку. Ниже приведен код, который я пытаюсь

    from __future__ import print_function 
import json
import boto3
from boto3.dynamodb.conditions import Key, Attr

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

def scan_table_allpages(self, table_name, filter_key=None, filter_value=None):

        table = self.dynamodb_resource.Table(table)

        if filter_key and filter_value:
            filtering_exp = Key(filter_key).eq(filter_value)
            response = table.scan(FilterExpression=filtering_exp)
        else:
            response = table.scan()

        items = response['Items']
        while True:
            print(len(response['Items']))
            if response.get('LastEvaluatedKey'):
                response = table.scan(ExclusiveStartKey=response['LastEvaluatedKey'])
                items += response['Items']
            else:
                break
        return items 

# def lambda_handler(event, context):    
#     print(table.creation_date_time)

#     response = table.get_items(
#         Key={
#             'Country':event['pathParameters']['USA']
#         }
#     )

#     #response = table.query()
#     #print(response)

#     return response

scan_table_allpages(self.table,filter_key="Country",filter_value='USA') 

0 ответов

Другие вопросы по тегам