Я пытаюсь создать lambda S3 слушатель, использующий Lambda как собственный образ. Суть в том, чтобы получить событие S3, а затем выполнить некоторую работу, потянув файл и т. Д. c. Чтобы получить файл, я использую het AWS 2.x S3 клиент, как показано ниже
S3Client.builder().httpClient().build();
Этот код приводит к
2020-03-12 19:45:06,205 ERROR [io.qua.ama.lam.run.AmazonLambdaRecorder] (Lambda Thread) Failed to run lambda: software.amazon.awssdk.core.exception.SdkClientException: Unable to load an HTTP implementation from any provider in the chain. You must declare a dependency on an appropriate HTTP implementation or pass in an SdkHttpClient explicitly to the client builder.
. Чтобы решить эту проблему, я добавил aws apache клиент и обновил код, чтобы сделать следующее:
SdkHttpClient httpClient = ApacheHttpClient.builder().
maxConnections(50).
build()
S3Client.builder().httpClient(httpClient).build();
- Я также должен был добавить:
[
["org.apache.http.conn.HttpClientConnectionManager",
"org.apache.http.pool.ConnPoolControl","software.amazon.awssdk.http.apache.internal.conn.Wrapped"]
]
После этого я получаю следующую трассировку стека:
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
at java.security.cert.PKIXParameters.setTrustAnchors(PKIXParameters.java:200)
at java.security.cert.PKIXParameters.<init>(PKIXParameters.java:120)
at java.security.cert.PKIXBuilderParameters.<init>(PKIXBuilderParameters.java:104)
at sun.security.validator.PKIXValidator.<init>(PKIXValidator.java:86)
... 76 more
Я использую qurkaus версии 1.2.0 на 19.3.1 грааля. Я строю это через Maven и предоставленный контейнер docker для Quarkus. Я думал, что хранилище доверенных сертификатов было добавлено по умолчанию (в команде build оно выглядит точным), но я что-то упустил? Есть ли другой способ заставить его работать без настройки HttpService на клиенте S3?