有条件的AWS EB.ebextensions Cron(仅对prod/dev运行Cron)

有条件的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

在.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

    "/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,您将保留它。