как извлечь значения из dynamodb с помощью лямбда-функции

#python

#python

Вопрос:

Мне нужно извлечь значения из dynamodb с помощью лямбда-функции

 import boto3
from boto3.dynamodb.conditions import Key, Attr

    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table(os.environ['DB_TABLE_NAME'])
    postItem = table.query(
        KeyConditionExpression=Key('id').eq(postId)
    )
  

Я получаю следующую ошибку:

 {
  "errorMessage": "Syntax error in module 'lambda_function'"
}
  

Комментарии:

1. Это реальный код? Пробелы имеют значение в Python , поэтому здесь может потребоваться изменить отступы.

2. это фактический код, я также новичок в кодировании на Python.

3. Где находится ваша лямбда-функция? в вашем лямбда-коде должна быть лямбда-функция.

4. Вы также не импортировали модуль операционной системы

5. извините, ребята, это было в def lambda_handler (событие, контекст):

Ответ №1:

Вам нужен обработчик лямбда-кода в вашем коде, и вам также необходимо импортировать модуль os. Это может помочь вам начать.

 import boto3
import os
from boto3.dynamodb.conditions import Key, Attr

def lambda_handler(event, context):

    postId = event["postId"]

    dynamodb = boto3.resource('dynamodb')
    table = dynamodb.Table(os.environ['DB_TABLE_NAME'])

    if postId=="*":
        items = table.scan()
    else:
        items = table.query(
            KeyConditionExpression=Key('id').eq(postId)
        )

    return items["Items"]
  

Комментарии:

1. я попробовал вышеупомянутое решение, я сопоставляю строку { «postID»: «open»}, я получаю START RequestID: 8377ab44-d39c-495c-b609-88f4bcce77f5 Version: $LATEST При вызове операции запроса произошла ошибка (исключение ValidationException): условие запроса пропущенный ключевой элемент схемы: Номер заказа: ClientError