Как запустить локальный DynamodB, чтобы мое Java-приложение могло подключиться к нему? - PullRequest
0 голосов
/ 26 февраля 2019

Я посмотрел несколько сообщений от stackoverflow, а также документы AWS для DynamodB, чтобы ответить на этот вопрос.Я хочу иметь возможность запускать локальный DynamodB в Docker, а затем подключиться к нему из моего локально работающего Java-приложения.Я установил образ amazon / dynamodb-local и он работает.Я даже использовал aws cli для создания таблицы, списка таблиц, удаления таблиц и т. Д. На этом локально работающем DynamodB.Я установил зависимость SDK DynamoDB в Java-проекте и чувствую, что все готово к работе, запустил интеграционный тест и бум. Я получаю это сообщение об ошибке

com.amazonaws.services.dynamodbv2.model.ResourceNotFoundException: Невозможно выполнить операции с несуществующей таблицей (Служба: AmazonDynamoDBv2; Код состояния: 400; Код ошибки: ResourceNotFoundException; Идентификатор запроса: c915ea26-008e-4a9f-8b99-6df5d6aa7c5f)

100* Таблица существует, когда запускается функция list-tables с помощью aws cli, поэтому я погуглил, а затем проверил документы dynamicodb docs , и кажется, что вам нужно запустить локальную DynamodB с флагом

-sharedDb

Я пытался это сделать, пытаясь запустить локально работающий Dynamodb с помощью этой команды

docker run -p 8000:8000 amazon/dynamodb-local -sharedDb

Хотя я получаю сообщение об ошибке

Неопознанныйопция: -sharedDb Ошибка: не удалось создать виртуальную машину Java.Ошибка: произошло фатальное исключение.Программа закроется.

После этого я попытался поискать в Google или ищу кого-то, у кого была похожая проблема.Но я ничего не нахожу. Как я могу запустить локально работающую DynamodB и подключиться к ней из моего локально работающего Java-приложения?

1 Ответ

0 голосов
/ 26 февраля 2019

Вам нужно написать команду, подобную этой

docker run -p 8000:8000 amazon/dynamodb-local -jar DynamoDBLocal.jar -sharedDb

Не забывайте, что вам может потребоваться смонтировать том, чтобы данные на хосте использовались, как указано выше,сохраните данные, если вы удалили контейнер, и для этого вам нужно использовать -v флаг

docker run -p 8000:8000 -v /path/to/data/locally:/data/ amazon/dynamodb-local -jar DynamoDBLocal.jar -sharedDb -dbPath /data

Для дополнительных опций вы можете использовать (обратите внимание на флаг --rm)

docker run --rm -p 8000:8000 amazon/dynamodb-local -jar DynamoDBLocal.jar -help
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...