【发布时间】:2019-04-10 23:23:15
【问题描述】:
我有两个 Elastic Beanstalk 服务器用于相同的代码库。一个是生产,一个是暂存。
我正在尝试使用条件 container_command 创建一个仅在生产中运行的 crontab。这些条件语句对于常规 commands 工作正常,但对于 container_commands 似乎总是评估为 true。但是,根据其他 SO 帖子和示例,它们对于两种类型的命令应该是一样的。
这就是我想要做的:
container_commands:
01_activate_cronjob:
test: '[ "${BEANSTALK_ENVIRONMENT}" == "production" ]'
command: "cat .ebextensions/my_cron_file > /etc/cron.d/my_cron_file && chmod 644 /etc/cron.d/my_cron_file"
leader_only: true
BEANSTALK_ENVIRONMENT 是我的 beanstalk 配置中设置的 Elastic Beanstalk 变量,我已确认 echo $BEANSTALK_ENVIRONMENT 分别输出“production”和“staging”。
我也试过这个test 线:
test: test $BEANSTALK_ENVIRONMENT == production
另外,我已经在终端中验证了这些测试命令的正确性。
test $BEANSTALK_ENVIRONMENT == production && echo yes || echo no
# outputs "yes" on the production server and "no" on the staging server
我知道我可以通过在command 部分中插入条件语句来破解/修复此问题;然而,正如我之前所说,网上的一切都表明这应该可以工作,所以我很难过。
【问题讨论】:
标签: amazon-web-services amazon-elastic-beanstalk