11

我在AWS Elastic Beanstalk:Development和有两个环境Production

我希望.ebextensions/app.config它只在Production环境中运行。有没有办法做到这一点?


应用程序配置:

container_commands:
  01-command:
    command: "crontab .ebextensions/cronjob"
    leader_only: true
4

2 回答 2

15

根据TNICHOLS想法,我找到了解决方案:


将环境PARAM1变量值更改为MyAppEnv-Production(或您想要的)。

应用程序配置:

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
于 2013-06-06T01:13:22.783 回答
2

我认为没有一种简单的方法可以按照您的想法进行操作。您可以让配置文件运行并执行第二个脚本(可能是 cron.sh)。在 cron.sh 中,您可以检查环境名称,然后相应地添加 cronjobs。没有测试过,但我认为应该可以。

于 2013-06-05T19:15:48.200 回答