Я следую инструкциям в Документах Heroku Postgres для создания внешнего приложения, которое подключается к Heroku Postgres для своего слоя данных. В инструкциях упоминается, что учетные данные автоматически поворачиваются, и я должен справиться с этим сам.
Я прочитал больше документов, чтобы узнать о существующих веб-крючках, чтобы помочь остальной части вашей системы уведомить об изменениях в ваших сервисах Heroku. Это имело смысл для меня быть областью, где разработчики Heroku реализовали бы это. Должен существовать веб-крючок, который я мог бы использовать, чтобы получать уведомления о ротации учетных данных. Я обнаружил, что был api:addon
webhook, который имел событие update
. Я протестировал этот веб-крючок, ожидая, что это будет то, что я искал, но обнаружил, что он не запускается при вращении учетных данных. Он был запущен только тогда, когда я подготовил или удалил больше дополнений Heroku Postgres.
Поскольку нужного мне веб-крюка не существует, я кодировал обходной путь, в котором я ожидаю, что во время выполнения AWS Lambda будет возникать ошибка аутентификации библиотеки PostgreSQL. Если выдается ошибка, я предполагаю, что это из-за ротации, и у меня все еще работает лямбда-функция, которая извлекает новые учетные данные с помощью API Heroku и повторяет запрос PostgreSQL, после чего он работает, если нет других ошибок. Я проверил это, вращая свои учетные данные вручную, и все работало хорошо, но это некрасивый код. См. здесь для подробного примера.
Так что на данный момент мне интересно, существует ли искомый веб-крючок, и я просто не смог его найти. Или, если он не существует, я хотел бы запросить его как новую функцию. Я понимаю, что команда Heroku, возможно, не хочет, чтобы люди выбирали свои дополнения по меню, и они хотят, чтобы люди использовали всю платформу Heroku, но я думаю, что это принесет большую пользу платформе Heroku. Лично мне нравилось получать все больше и больше облачных сервисов, поскольку я обычно могу выбирать их по меню. Например, AWS не запрещает мне использовать только S3 и ничего от них. Они делают все возможное, чтобы мне было проще связывать с ними мои приложения, независимо от того, какие другие облачные сервисы я использую.