Elastic Beanstalk: Как бы я выполнил команду ebextension только на рабочем уровне?

У меня есть эластичное приложение beanstalk, которое использует и веб-уровень и рабочий уровень. Задания выгружаются на рабочий уровень с веб-уровня через SQS, чтобы обеспечить высокую скорость работы веб-серверов. Обе среды используют одну и ту же кодовую базу и используют под ними экземпляр RDS.

Мне нужно запустить задание cron на сервере-лидере рабочего уровня. Я создал папку .ebextensions с файлом с именемcrontab в нем следующее (это веб-приложение Laravel):

* * * * * root php /var/www/html/artisan do:something:with:database

Затем я создал файл с именем01cronjobs.config, который обновляет среды crontab под root следующим образом:

container_commands:
  01_remove_old_cron_jobs:
  command: "crontab -r || exit 0"
  02_cronjobs:
  command: "cat .ebextensions/crontab | crontab"
  leader_only: true

.. все хорошо. Теперь я хочу развернуть это в EB, используяeb deploy команда. Однако я хочу, чтобы рабочий уровень выполнял задачу cron, так как у нас может быть только один сервер, который запускает cron по всей группе.

Есть ли способ указать файл конфигурации ebextensionsтолько запустить команду config на рабочем уровне? Что-то вродеworker_only: true было бы здорово здесь, но, кажется, не существует.

Кто-нибудь может дать некоторое представление о том, как мне этого добиться? Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос