AWS Local DynamoDB Маркер безопасности, включенный в запрос, недействителен - PullRequest
1 голос
/ 21 апреля 2020

Я новичок в AWS и пытаюсь выполнить операцию CRUD на локальном DynamoDB из программы Java. Программа Java - это образец AWS.

У меня установлен AWS CLI и я настроил следующую конфигурацию - согласно документации AWS мне не нужен реальный AWS доступ и секретный ключ для Local DynamoDB.

Я установил следующие значения в ~ / .aws / config и ~ / .aws / credentials, запустив aws configure в AWS CLI.

[default]
aws_access_key_id = ''
aws_secret_access_key = ''
[default]
region = ap-south-1

У меня есть Local DYnamoDB JAR с этим.

java -D java .library.path =. / DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb

И код, который я пытаюсь запустить, это .

https://github.com/aws-samples/aws-dynamodb-examples/blob/master/src/main/java/com/amazonaws/codesamples/datamodeling/ObjectPersistenceCRUDExample.java

Однако я получаю это исключение.

AmazonDynamoDBException: маркер безопасности, включенный в запрос Неправильно.

Вот полный стек.

    Exception in thread "main" com.amazonaws.services.dynamodbv2.model.AmazonDynamoDBException: The security token included in the request is invalid. (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: UnrecognizedClientException; Request ID: UPGRD2BRNUN6S1702EN6N6S8RJVV4KQNSO5AEMVJF66Q9ASUAAJG)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1695)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1350)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1101)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:758)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:732)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:714)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:674)
    at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:656)
    at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:520)
    at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.doInvoke(AmazonDynamoDBClient.java:4192)
    at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:4159)
    at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.executeUpdateItem(AmazonDynamoDBClient.java:3868)
    at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.updateItem(AmazonDynamoDBClient.java:3835)
    at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper$SaveObjectHandler.doUpdateItem(DynamoDBMapper.java:854)
    at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper$2.executeLowLevelRequest(DynamoDBMapper.java:594)
    at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper$SaveObjectHandler.execute(DynamoDBMapper.java:733)
    at com.amazonaws.services.dynamodbv2.datamodeling.DynamoDBMapper.save(DynamoDBMapper.java:623)
    at com.amazonaws.services.dynamodbv2.datamodeling.AbstractDynamoDBMapper.save(AbstractDynamoDBMapper.java:123)
    at com.stackroute.Main.testCRUDOperations(Main.java:60
    at com.stackroute.Main.main(Main.java:17)

Любая помощь будет высоко оценена. Заранее спасибо.

1 Ответ

1 голос
/ 21 апреля 2020

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

Вам нужно изменить конечную точку на локальную версию. Взгляните на эту страницу . Он имеет пример изменения конечной точки на localhost: 8080.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...