В настоящее время я работаю с Eclipse и AWS Toolkit для Eclipse. Мой проект уже работает, и он выполняет свою работу, которая заключается в подключении к экземпляру RDS и возврате объектов JSON для вызовов API-шлюза.
У меня только что появилось новое требование, мы должны использовать службу SecretsManager для автоматического изменения конфигурации RDS, такой как пользователи, пароли и так далее.
Проблема в том, что когда я пытаюсь импортировать классы, такие как GetSecretValueResponse
, я получаю The import com.amazonaws.services.secretsmanager cannot be resolved
. Когда я изучаю документацию и SDK, существует GetSecretValueRequest
, но не GetSecretValueResponse
, поэтому я не могу понять, что мне делать, и я не нашел ничего похожего на пример, который я мог бы изучить.
Следующий код - это то, что я пытаюсь реализовать, и он предоставляется самой Amazon (на странице Secrets Manager есть кнопка, которую вы можете щелкнуть, чтобы увидеть, как это будет работать с 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.
}