AWS Elastic Beanstalk: задание Cron не собирает переменные среды ⇐ Python
AWS Elastic Beanstalk: задание Cron не собирает переменные среды
Я развертываю приложение FastAPI с помощью ElasticBeanstalk. Часть того, что я хотел бы сделать, — это иметь сценарий для сбора некоторых данных и публикации их в базе данных Postgres RDS с использованием задания cron. После некоторых поисков мне удалось заставить работу cron работать, но не полностью.
Скрипт для публикации данных использует переменные среды RDS_USERNAME.... У меня есть следующие файлы конфигурации:
option_settings: aws:elasticbeanstalk:приложение:среда: PYTHONPATH: "/var/app/current:$PYTHONPATH" aws:elasticbeanstalk:контейнер:python: WSGIPath: «main:app» команды: Setvars: команда: среда /opt/elasticbeanstalk/bin/get-config | jq -r 'to_entries | .[] | "export \(.key)=\"\(.value)\""' > /etc/profile.d/local.sh пакеты: ням: джк: [] контейнерные_команды: 01_инитдб: команда: «source /var/app/venv/*/bin/activate && python3 init_db.py» Leader_only: правда 02_some_cron_job: команда: «cat .ebextensions/cron_job.txt > /etc/cron.d/cron_job && chmod 644 /etc/cron.d/cron_job» Leader_only: правда У меня есть команда, которая считывает переменные среды AWS и устанавливает их для сеанса.
Как я уже сказал, cron запущен. Это ошибка, которую я получаю из /var/log/cron:
CMDOUT (KeyError: 'RDS_USERNAME')
Файл Python, который подключается к базе данных:
DATABASE_URL = \ 'postgresql://{имя пользователя}:{пароль}@{хост}:{порт}/{база данных}'.format( имя пользователя = os.environ['RDS_USERNAME'], пароль=os.environ['RDS_PASSWORD'], хост=os.environ['RDS_HOSTNAME'], порт = os.environ['RDS_PORT'], база данных = os.environ['RDS_DB_NAME'], ) А это файл cron_job.txt:
* * * * * ec2-user /var/app/venv/*/bin/python3 /var/app/current/cron.py
Я развертываю приложение FastAPI с помощью ElasticBeanstalk. Часть того, что я хотел бы сделать, — это иметь сценарий для сбора некоторых данных и публикации их в базе данных Postgres RDS с использованием задания cron. После некоторых поисков мне удалось заставить работу cron работать, но не полностью.
Скрипт для публикации данных использует переменные среды RDS_USERNAME.... У меня есть следующие файлы конфигурации:
option_settings: aws:elasticbeanstalk:приложение:среда: PYTHONPATH: "/var/app/current:$PYTHONPATH" aws:elasticbeanstalk:контейнер:python: WSGIPath: «main:app» команды: Setvars: команда: среда /opt/elasticbeanstalk/bin/get-config | jq -r 'to_entries | .[] | "export \(.key)=\"\(.value)\""' > /etc/profile.d/local.sh пакеты: ням: джк: [] контейнерные_команды: 01_инитдб: команда: «source /var/app/venv/*/bin/activate && python3 init_db.py» Leader_only: правда 02_some_cron_job: команда: «cat .ebextensions/cron_job.txt > /etc/cron.d/cron_job && chmod 644 /etc/cron.d/cron_job» Leader_only: правда У меня есть команда, которая считывает переменные среды AWS и устанавливает их для сеанса.
Как я уже сказал, cron запущен. Это ошибка, которую я получаю из /var/log/cron:
CMDOUT (KeyError: 'RDS_USERNAME')
Файл Python, который подключается к базе данных:
DATABASE_URL = \ 'postgresql://{имя пользователя}:{пароль}@{хост}:{порт}/{база данных}'.format( имя пользователя = os.environ['RDS_USERNAME'], пароль=os.environ['RDS_PASSWORD'], хост=os.environ['RDS_HOSTNAME'], порт = os.environ['RDS_PORT'], база данных = os.environ['RDS_DB_NAME'], ) А это файл cron_job.txt:
* * * * * ec2-user /var/app/venv/*/bin/python3 /var/app/current/cron.py
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Параметр Django ALLOWED_HOSTS для экземпляра Elastic Beanstalk за Elastic Load Balancer
Anonymous » » в форуме Python - 0 Ответы
- 118 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Параметр Django ALLOWED_HOSTS для экземпляра Elastic Beanstalk за Elastic Load Balancer
Anonymous » » в форуме Python - 0 Ответы
- 84 Просмотры
-
Последнее сообщение Anonymous
-
-
-
HTTPS не работает на платформе Java с одним экземпляром AWS Elastic BeanStalk
Anonymous » » в форуме JAVA - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-