有条件的AWS EB.ebextensions Cron(仅对prod/dev运行Cron)
在.ebextensions目录中,我有一个类似这样的文件“cron.config”,它可以工作有条件的AWS EB.ebextensions Cron(仅对prod/dev运行Cron),cron,amazon-elastic-beanstalk,aws-codebuild,ebextensions,Cron,Amazon Elastic Beanstalk,Aws Codebuild,Ebextensions,在.ebextensions目录中,我有一个类似这样的文件“cron.config”,它可以工作 files: "/etc/cron.d/mycron": mode: "000644" owner: root group: root content: | 0 1 * * * root /usr/local/bin/cron_bash_script.sh
files:
"/etc/cron.d/mycron":
mode: "000644"
owner: root
group: root
content: |
0 1 * * * root /usr/local/bin/cron_bash_script.sh
"/usr/local/bin/cron_bash_script.sh":
mode: "000755"
owner: root
group: root
content: |
#!/bin/bash
...
我们使用CodePipeline从Git部署,我们只希望cron在某些服务器上运行,无论是prod、staging还是dev。我在CodeBuild中有变量ENVIRONMENT
,我可以在构建前/构建后脚本中将其用作${ENVIRONMENT}
我尝试在内容
行之前使用测试
行,如下面所示,但这不起作用
files:
"/etc/cron.d/mycron":
mode: "000644"
owner: root
group: root
test: test "$ENVIRONMENT" != "dev"
content: |
看起来我在这上面找到的一些页面可能已经过时了。有人知道我如何添加条件语句来仅在特定环境中运行cron吗?或者,有没有更好的方法
谢谢。它还没有过时。但最简单的方法是根据env变量在代码构建中删除/renmae eb config文件。因此,对于
dev
,您将使用cron定义完全删除/重命名配置文件,而对于prod,您将保留它。