Почему расшифровка клиента Java AWSKMS намного медленнее, чем Python boto3? - PullRequest
1 голос
/ 06 апреля 2019

В моей Java-лямбде при холодном запуске я хочу расшифровать пароли из переменных среды.Я использую клиент AWSKMS для расшифровки строки (следующие примеры из здесь ), и я считаю, что это занимает до 2 секунд в первый раз, когда я делаю это.Напротив, у меня есть некоторый код на python с использованием boto3, который делает то же самое и работает менее чем за 100 мс.Ясно, что с моим Java-кодом что-то не так.Вот код Java с комментариями, показывающими 2 вызова, которые вместе составляют в общей сложности почти 2 секунды:

ByteBuffer ciphertextBlob = ByteBuffer.wrap(Base64.getDecoder().decode(encrValue));
DecryptRequest req = new DecryptRequest().withCiphertextBlob(ciphertextBlob);
AWSKMS kmsClient = AWSKMSClientBuilder.defaultClient();     // This call takes 800+ ms
ByteBuffer plainText = kmsClient.decrypt(req).getPlaintext();   // This call takes 900+ ms
String plainTextStr = StringUtils.stripToNull(StandardCharsets.UTF_8.decode(plainText).toString());

А вот эквивалентный код Python:

plainTextStr = boto3.client('kms').decrypt(CiphertextBlob=b64decode(encrValue))['Plaintext'].decode()

Очевидно, я делаючто-то не так в коде Java, но я не могу найти более простой пример того, как это сделать в Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...