#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