#java #amazon-web-services
#java #amazon-веб-сервисы
Вопрос:
Я использую приведенный ниже код для обновления секрета в службе secret manager от Amazon. Вскоре после обновления секретного значения я получаю секрет из AWS, и это не самое последнее обновленное значение. Приведенный ниже код не создает исключений. Я ищу рекомендации по подтверждению успешного обновления AWS secret manager.
public void updateSecretValue(String fullAwsKey, String keyValue) {
UpdateSecretRequest updateSecretRequest = new UpdateSecretRequest ().withSecretId(fullAwsKey);
updateSecretRequest.setSecretString(keyValue);
AWSSecretsManager client = buildAWSSecretsManager();
try {
performUpdate(updateSecretRequest, client);
} catch (SdkClientException e) {
throw new RuntimeException(e);
} finally {
client.shutdown();
}
}
protected void performUpdate(UpdateSecretRequest updateSecretRequest, AWSSecretsManager client) {
boolean processed = false;
int tryCount = 0;
while (!processed) {
UpdateSecretResult result = client.updateSecret(updateSecretRequest);
if (result.getSdkHttpMetadata().getHttpStatusCode() == 200) {
processed = true;
} else {
tryCount ;
if (tryCount >= 5) {
throw new RuntimeException("performUpdate, unable to update secret: " result.toString());
}
}
}
}
Ответ №1:
Вы используете более старый API версии V1. Amazon рекомендует использовать AWS SDK для Java 2.x, который представляет собой серьезную переработку базы кода 1.11.x, построенной поверх Java 8 . Java SDK 2.x обладает улучшенной согласованностью, простотой использования и строгой неизменяемостью. Он также поддерживает неблокирующий ввод-вывод и возможность подключения другой реализации HTTP во время выполнения.
Вот примеры Secret Manager V2:
Если вы не знакомы с запуском и запуском API-интерфейсов V2, пожалуйста, обратитесь к этому разделу, в котором это объясняется: