Обновление переменных среды - PullRequest
1 голос
/ 21 февраля 2020

Я портирую свое локальное приложение django на heroku и пытаюсь поймать загадку. Главным образом с моими переменными среды. Я не очень хорошо могу создать файл .env на своем веб-сервере, он просто перезаписывается, когда я снова вынимаю sh из github. Поэтому я установил переменные окружения, используя heroku config:set VAR='' --app <app>. Кажется, они работают, но я работаю с API, который требует, чтобы я обновлял sh мой токен каждые 60 минут. Локально я разработал метод обновления моего .env каждый раз, когда выполнялась задача, обновляющая этот токен, но этого решения явно недостаточно для моего веб-сервера ... Я пытался обновить переменные уровня сервера в Python, но я не думаю, что это возможно. Кто-нибудь имел дело с такой проблемой? Я все неправильно понимаю?

Каков наилучший способ обновить переменную среды на веб-сервере (ie heroku config:set VAR='' --app <app>, но в моем коде python)? Мне нужно, чтобы эта переменная обновлялась каждые 60 минут (у меня уже есть код задачи сельдерея, созданный для этого). Должен ли я изменить задачу, чтобы просто записать ее в текстовый файл и использовать этот текстовый файл в качестве моего «файла .env веб-сервера»? Я действительно потерян здесь, поэтому любая помощь будет высоко ценится. Спасибо!

РЕДАКТИРОВАТЬ:

В соответствии с просьбой, здесь приведена дополнительная информация:

Я создаю промежуточное программное обеспечение для двух систем. Первая система отправляет запись в мой Django API. Это событие запускает задачу, которая впоследствии обновляет отдельную финансовую систему. API этой отдельной финансовой системы требует двух вещей: auth_code и access_token. Access_token должен обновляться каждые 60 минут.

У меня есть refresh_token, который я использую для получения нового access_token. Срок действия освежающего маркера истекает каждые 365 дней. В результате я могу просто повторно использовать этот refresh_token каждый раз, когда запрашиваю новый access_token.

Мое приложение находится на очень ранних стадиях и не требует ничего, кроме простого сообщения API из первой системы, которое будет запущено этот процесс. Это в конечном итоге будет построено так, что мне потребуется мой собственный тип auth_token для доступа к моему django api.

first system --> Django App --> Finance System

https://developer.blackbaud.com/skyapi/docs/authorization/auth-code-flow/tutorial

Процесс:

В настоящее время у меня есть задача сельдерея, которая выполняется в фоновом режиме каждый 55 минут Эта задача собирает новый access_token и воссоздает мой файл .env с новым access_token.

У меня есть отдельная задача celery, которая запускает конвейер ETL и требует access_token для публикации в API финансовых систем.

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