Соединение с Dynamodb: странное поведение

Я создал базу данных динамо amason в докере контейнера, используя этот запрос:

curl -X POST http://192.168.99.100:8000/ -H 'accept-encoding: identity' -H 'authorization: AWS4-HMAC-SHA256 Credential=key/20170515/us-east-1/execute-api/aws4_request, SignedHeaders=accept-encoding;content-length;content-type;host;x-amz-date;x-amz-target, Signature=f2f21c6263ad5380aaa' -H 'cache-control: no-cache' -H 'content-type: application/json' -H 'x-amz-date: 20170515T151032Z' -H 'x-amz-target: DynamoDB_20120810.CreateTable' -d '{"AttributeDefinitions": [{"AttributeName": "userId","AttributeType": "S"}],"TableName": "User","KeySchema": [{"AttributeName": "userId","KeyType": "HASH"}],"ProvisionedThroughput": {"ReadCapacityUnits": 1,"WriteCapacityUnits": 1}}'

Когда я перечисляю таблицы, используя команду curl, вот так:

curl -X POST http://192.168.99.100:8000/ -H 'authorization: AWS4-HMAC-SHA256 Credential=key/20170515/us-east-1/execute-api/aws4_request, SignedHeaders=accept-encoding;content-length;content-type;host;x-am z-date;x-amz-target' -H 'cache-control: no-cache' -H 'content-type: application/json' -H 'x-amz-date: 20 170515T151032Z' -H 'x-amz-target: DynamoDB_20120810.ListTables ' -d '{}'

Все работает отлично. Я получаю список таблиц:

{"TableNames":["UserTable1","User", "TestTable]}

Проблема в том, что когда я подключаюсь к этой базе данных с помощью RazorSQL, на ней нет таблицы. У меня та же проблема с моим приложением, Spring-Boot вызывает исключение:

Cannot do operations on a non-existent table (Service: AmazonDynamoDBv2; Status Code: 400;

Есть ли у вас какие-либо идеи об этом странном поведении?

это скриншот моего профиля подключения:

С наилучшими пожеланиями

0 ответов

При локальном использовании DynamoDB вы должны знать следующее:

  • Если вы используете -sharedDb Опция DynamoDB создает один файл базы данных с именем shared-local-instance.db. Каждая программа, которая подключается к DynamoDB, получает доступ к этому файлу. Если вы удалите файл, вы потеряете все данные, которые вы сохранили в нем.
  • Если вы опустите -sharedDb файл базы данных называется myaccesskeyid_region.db с идентификатором ключа доступа AWS и регионом, указанными в конфигурации вашего приложения. Если вы удалите файл, вы потеряете все данные, которые вы сохранили в нем.

Итак, убедитесь, что вы проходите -shareDb,

Те, кто использует официальный образ DynamoDB Local Docker, могут сделать это следующим образом:

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

Оригинал ENTRYPOINT а также CMD используется изображение можно увидеть в docker inspect amazon/dynamodb-local вывод и есть:

"Entrypoint": [
    "java"
]
"Cmd": [
    "-jar",
    "DynamoDBLocal.jar",
    "-inMemory"
]

Таким образом, мы в основном скопировали их и добавили -sharedDb,

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