我在AWS Elastic Beanstalk
有两个环境:Development
和Production
。
我希望.ebextensions/app.config
仅在Production
环境中运行。
有什么办法吗?
的app.config:
container_commands:
01-command:
command: "crontab .ebextensions/cronjob"
leader_only: true
答案 0 :(得分:15)
根据TNICHOLS
的想法,我找到了一个解决方案:
将环境PARAM1
变量值更改为MyAppEnv-Production
(或您想要的)。
的app.config:
container_commands:
command-01:
command: "/bin/bash .ebextensions/crontab.sh"
leader_only: true
crontab.sh:
if [ "$PARAM1" == "MyAppEnv-Production" ]; then
crontab -l > /tmp/cronjob
#CRONJOB RULES
echo "00 00 * * * /usr/bin/wget http://localhost/cronexecute > /dev/null 2>&1" >> /tmp/cronjob
crontab /tmp/cronjob
rm /tmp/cronjob
echo 'Script successful executed, crontab updated.'
else
echo 'This script is only executed in the production environment.'
fi
答案 1 :(得分:2)
我认为没有一种简单的方法可以按照你的思维方式去做。您可以运行配置文件并执行第二个脚本(可能是cron.sh)。在cron.sh中,您可以检查环境名称,然后相应地添加cronjobs。没有测试过,但我认为这应该有用。