Мое приложение мула записывает запись json в поток kinesis. Я использую библиотеку производителя KPL. При локальном запуске он выбирает учетные данные AWS из .aws/credentials и успешно записывает запись в Kinesis.
Однако, когда я развертываю свое приложение в Cloudhub, оно генерирует исключение AmazonClientException, очевидно, из-за отсутствия доступа ни к одному из каталогов, поддерживаемых классом DefaultAWSCredentialsProviderChain. (http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/auth/DefaultAWSCredentialsProviderChain.html)
Вот как я прикрепляю учетные данные, и это выглядит локально в .aws/credentials:
config.setCredentialsProvider( new
DefaultAWSCredentialsProviderChain());
Я не мог найти способ явно указать учетные данные, используя файл my-app.properies.
Затем я попытался создать отдельный файл конфигурации с геттерами/сеттерами. установите ключ доступа и закрытый ключ как закрытый, а затем внедрите геттер:
public AWSCredentialsProvider getCredentials() {
if(accessKey == null || secretKey == null) {
return new DefaultAWSCredentialsProviderChain();
}
return new StaticCredentialsProvider(new BasicAWSCredentials(getAccessKey(), getSecretKey()));
}
}
Это было предназначено для использования вместо класса DefaultAWSCredentialsProviderChain таким образом ---
config.setCredentialsProvider(new AWSConfig().getCredentials());
Все еще выдает ту же ошибку при развертывании. В следующем репо говорится, что можно предоставить явные учетные данные. Мне нужна помощь, чтобы понять, как это сделать, потому что я не могу найти подходящую документацию/пример. https://github.com/awslabs/amazon-kinesis-producer/blob/master/java/amazon-kinesis-producer-sample/src/com/amazonaws/services/kinesis/producer/sample/SampleProducer.java
PropertiesFileCredentialsProvider
? - person Jon   schedule 27.10.2017