Этот вопрос меня сейчас тихо убивает.
Я пытаюсь выучить Python, Lambda и Dynamodb.
Python выглядит потрясающе, я могу подключиться к MySQL, используя обычный сервер MySQL, такой как Xampp, цель - научиться работать с Dynamodb, но я не могу получить get_items из Dynamodb. Это действительно бьет меня по голове и уже занимает последние два дня.
Посмотрел тонны фильмов на YouTube и прочитал документацию по aws.
Любые подсказки, что я делаю неправильно.
Мой код до сих пор;
import json
import boto3
from boto3.dynamodb.conditions import Key, Attr
#always start with the lambda_handler
def lambda_handler(event, context):
# make the connection to dynamodb
dynamodb = boto3.resource('dynamodb')
# select the table
table = dynamodb.Table("html_contents")
# get item from database
items = table.get_item(Key={"id": '1'})
Куда бы я ни посмотрел, я вижу, что должен делать это так.
Но я продолжаю получать следующую ошибку
{errorMessage=An error occurred (ValidationException) when calling the GetItem operation: The provided key element does not match the schema, errorType=ClientError, stackTrace=[["\/var\/task\/lambda_function.py",16,"lambda_handler","\"id\": '1'"],["\/var\/runtime\/boto3\/resources\/factory.py",520,"do_action","response = action(self, *args, **kwargs)"],["\/var\/runtime\/boto3\/resources\/action.py",83,"__call__","response = getattr(parent.meta.client, operation_name)(**params)"],["\/var\/runtime\/botocore\/client.py",314,"_api_call","return self._make_api_call(operation_name, kwargs)"],["\/var\/runtime\/botocore\/client.py",612,"_make_api_call","raise error_class(parsed_response, operation_name)"]]}
Моя структура базы данных.
Мои настройки DynamoDb
Имя таблицы html_contents
Идентификатор первичного ключа раздела (номер)
Основной ключ сортировки -
Восстановление на определенный момент времени ОТКЛЮЧЕНО
Шифрование ОТКЛЮЧЕНО
Время жизни атрибута DISABLEDManage TTL
Статус таблицы Актив
Что я здесь не так делаю? Я начинаю думать, что что-то не так с конфигурацией aws.
Заранее спасибо.
Wesley