我有一個利用web層和worker層的彈性beanstalk應用程序。作業通過SQS從Web層卸載到工作層,以保持面向網絡的服務器的速度。兩種環境都使用完全相同的代碼庫,並在其下使用RDS實例。Elastic Beanstalk:我如何僅在工作層上運行ebextension命令?
我需要在工作層的引導服務器上運行cron作業。我創建了一個.ebextensions用它叫做crontab
文件,如下所示(這是一個Laravel Web應用程序)文件夾:
* * * * * root php /var/www/html/artisan do:something:with:database
然後,我創建了一個名爲01cronjobs.config
,這下根更新了環境的crontab如下:
container_commands:
01_remove_old_cron_jobs:
command: "crontab -r || exit 0"
02_cronjobs:
command: "cat .ebextensions/crontab | crontab"
leader_only: true
..都不錯。現在,我想使用eb deploy
命令將其部署到EB。但是,我只希望工作層承擔cron工作,因爲我們只能有一臺服務器在整個組中運行cron。
有沒有辦法告訴ebextensions配置文件只有在工作層上運行配置命令?像worker_only: true
就像這裏很棒,但它似乎並不存在。
任何人都可以提供一些見解我如何實現這一目標?謝謝。
會是什麼檢查的環境屬性是準確的測試?這將使這個答案更有幫助:-) – mikhuang 2018-02-05 21:37:18