В настоящее время я работаю с Eclipse и инструментарием AWS для Eclipse.Мой проект уже работает, и он выполняет свою работу: подключиться к экземпляру RDS и вернуть объекты JSON в вызовы API-шлюза.
Я только что получил новое требование, мы должны использовать службу SecretsManager для автоматического доступаповернуть конфигурацию RDS, например «Пользователи», «пароли» и т. д.
Проблема заключается в том, что при попытке импортировать классы, например GetSecretValueResponse
, я получаю The import com.amazonaws.services.secretsmanager cannot be resolved
.Когда я изучаю документацию и SDK, существует GetSecretValueRequest
, но не GetSecretValueResponse
, поэтому я не могу понять, что мне делать, и я не нашел ничего похожего на пример, который я могу изучить.
Следующий код - это то, что я пытаюсь реализовать, и он предоставляется самим Amazon (на странице диспетчера секретов есть кнопка, которую вы можете нажать, чтобы посмотреть, как она будет работать с Java, в данном случае), ион представлен без каких-либо изменений, потому что, как я уже сказал, я не знаю, как импортировать несколько классов:
// Use this code snippet in your app.
public static void getSecret() {
String secretName = "secretName";
String endpoint = "secretEndpoint";
String region = "region";
AwsClientBuilder.EndpointConfiguration config = new AwsClientBuilder.EndpointConfiguration(endpoint, region);
AWSSecretsManagerClientBuilder clientBuilder = AWSSecretsManagerClientBuilder.standard();
clientBuilder.setEndpointConfiguration(config);
AWSSecretsManager client = clientBuilder.build();
String secret;
ByteBuffer binarySecretData;
GetSecretValueRequest getSecretValueRequest = GetSecretValueRequest.builder()
.withSecretId(secretName)
.build();
GetSecretValueResponse getSecretValueResponse = null;
try {
getSecretValueResponse = client.getSecretValue(getSecretValueRequest);
} catch(ResourceNotFoundException e) {
System.out.println("The requested secret " + secretName + " was not found");
} catch (InvalidRequestException e) {
System.out.println("The request was invalid due to: " + e.getMessage());
} catch (InvalidParameterException e) {
System.out.println("The request had invalid params: " + e.getMessage());
}
if(getSecretValueResponse == null) {
return;
}
// Decrypted secret using the associated KMS CMK
// Depending on whether the secret was a string or binary, one of these fields will be populated
if(getSecretValueResponse.getSecretString() != null) {
secret = getSecretValueResponse.getSecretString();
}
else {
binarySecretData = getSecretValueResponse.getSecretBinary();
}
// Your code goes here.
}