Ребята, когда я запускаю свой проект Spring Boot 2 с локального компьютера (Ubuntu), все в порядке, но когда я пытался получить доступ к таблицам DynamoDb из моего проекта Spring Boot 2, запущенного на экземпляре E C 2, я получил эту ошибку :
"The security token included in the request is invalid. (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: UnrecognizedClientException; Request ID: E0JP23I9DK11PE64OQV5MNLGR3VV4KQNSO5AEMVJF66Q9ASUAAJG)"
После компиляции моего проекта я запускаю его (на EC2 или локальном компьютере) с помощью командной строки:
java -Daws.accessKeyId=... -Daws.secretKey=... -jar myApp.jar
Для входа в DynamoDB мой код:
@Configuration
@EnableDynamoDBRepositories(basePackages = "app.repositories")
public class DynamoDBConfig {
@Autowired
private ConfigProperties config;
@Bean
public AmazonDynamoDB amazonDynamoDB() {
AWSCredentialsProvider credentialsProvider = buildCredentials();
AmazonDynamoDBClient.builder().withCredentials(credentialsProvider).withRegion("");
return AmazonDynamoDBClientBuilder.defaultClient();
}
private AWSCredentialsProvider buildCredentials() {
AWSCredentialsProvider credentialsProvider = new AWSCredentialsProvider(){
@Override
public AWSCredentials getCredentials() {
return new BasicAWSCredentials(config.getAwsAccessKey(), config.getAwsSecretKey());
}
@Override
public void refresh() {
// TODO Auto-generated method stub
}
};
return credentialsProvider;
}
}
Для доступа к таблицам я использую этот код:
@Getter
@Setter
@DynamoDBTable(tableName = "user")
public class UserModel {
@DynamoDBHashKey
@DynamoDBAutoGeneratedKey
private String id;
@DynamoDBIndexHashKey(globalSecondaryIndexName = "idx_global_userMatricula")
@DynamoDBAttribute
private String matricula;
@DynamoDBAttribute
private String nome;
@DynamoDBAttribute
private String senha;
@DynamoDBIndexHashKey(globalSecondaryIndexName = "idx_global_userClinicaId")
@DynamoDBAttribute
private String clinicaId;
@DynamoDBAttribute
private boolean active;
@DynamoDBAttribute
private boolean grantCli;
@DynamoDBAttribute
private boolean grantUser;
@DynamoDBAttribute
private String collection;
}
И мой класс хранилища:
@EnableScan
public interface UserRepository extends CrudRepository<UserModel,String>{
}
Tks ...