Не удается получить файл ресурсов Java в AWS Lambda - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь настроить SSL-соединение между PostgreSQL и AWS Lambda. Проблема заключается в передаче файла PEM сертификата AWS в pgjdbc.

Я добавил PEM-файл в свою папку ресурсов и попытался определить его местоположение с помощью:

Thread.currentThread().getContextClassLoader().getResource("rds-combined-ca-bundle.pem").toString();

И он возвращает:

file:/var/task/rds-combined-ca-bundle.pem

Но если я передам это как свойство sslrootcert, я получу исключение:

org.postgresql.util.PSQLException: Не удалось открыть файл файла корневого сертификата SSL: /var/task/rds-combined-ca-bundle.pem.

Затем я решил запустить код, который печатает все каталоги и имена файлов из моей Lambda, начиная с текущей папки, и я получаю файл rds-combined-ca-bundle.pem в текущем каталоге.

Как правильно получить PEM-файл из моих ресурсов и затем передать его в pgjdbc?

1 Ответ

1 голос
/ 09 июля 2019

Так что это не решит проблему, описанную здесь, но решит мою проблему при настройке pgjdbc.

Если вы хотите передать PEM-файл сертификата в pgjdbc, как файл ресурсов, добавьте следующееКонфигурация для вашего файла свойств:

sslfactory = org.postgresql.ssl.SingleCertValidatingFactory
sslfactoryarg = classpath:rds-combined-ca-bundle.pem

SingleCertValidatingFactory принимает другие виды ссылок на файл, такие как classhpath, путь к файлу, переменная среды, системная переменная или сам текст сертификата.Для получения дополнительной информации см. Класс документов здесь .

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