Elastic Beanstalk 未调度 cron.yaml 中定义的作业

Posted

技术标签:

【中文标题】Elastic Beanstalk 未调度 cron.yaml 中定义的作业【英文标题】:Elastic Beanstalk not scheduling jobs defined in cron.yaml 【发布时间】:2021-02-24 17:58:32 【问题描述】:

我在 Elastic Beanstalk 上有一个 Web 和一个工作环境。我有一个cron.yaml 文件,其中有一个每小时运行的任务。当我使用 eb-cli 进行部署时,它在开始时运行良好。

然后我决定使用 AWS 代码管道来部署代码,这时 cron 作业停止工作。它的工作方式是管道的构建阶段创建一个 docker 映像并将其推送到我的 ECR 存储库。然后在下一阶段使用此图像(使用Dockerrun.aws.json)在两个环境中运行应用程序。但是这种方法不会调度cron.yaml中定义的任务。

我认为使用 eb-cli,当 elastic beanstalk 解压缩上传到 s3 以供 eb-cli 部署的存档时,它会找到 cron.yaml 文件并安排任务。但是对于 ECR,它只是 docker 映像,并且 cron.yaml 不可用。如果是这种情况,从 ECR 存储库部署时,如何将 cron.yaml 文件提供给弹性 beanstalk?

我错过了什么?

【问题讨论】:

【参考方案1】:

我自己解决了这个问题。您需要做的就是将cron.yaml 文件添加到您的buildspec.yml 文件中的工件中,如下所示:

artifacts:
    files:
      - Dockerrun.aws.json
      - cron.yaml

【讨论】:

以上是关于Elastic Beanstalk 未调度 cron.yaml 中定义的作业的主要内容,如果未能解决你的问题,请参考以下文章

AWS - Elastic BeansTalk:[错误] 'php' 未找到或无法统计

Elastic Beanstalk 未创建 RDS 参数

Elastic Beanstalk 未创建 ssl.conf

Elastic Beanstalk `War` 部署 - 404 未找到

Elastic Beanstalk 经典负载均衡器 HTTPS 未连接

使用 Elasticache 在 Elastic Beanstalk 上未收到任何 cookie