AWS Elastic beanstalk 上的计划任务未运行

时间:2021-01-20 20:23:10

标签: amazon-web-services cron amazon-elastic-beanstalk cron-task

我有一个 Laravel 应用程序在由 Elastic Beanstalk 处理的 EC2 实例上运行。 为了处理一些 cron 作业,我使用了 AWS 在此处提供的脚本 https://github.com/awsdocs/elastic-beanstalk-samples/blob/master/configuration-files/aws-provided/instance-configuration/cron-leaderonly-linux.config 以及 Macin 在此线程中提供的一些额外信息 Laravel Scheduling Task on AWS is not working

一切都在我的临时环境中正常工作,但在生产中似乎没有触发 cron 任务。

两个环境应该完全相同(平台版本是“PHP 7.4 在 64 位 Amazon Linux 2 上运行”)。 我尝试运行 sudo service crond status,在部署应用程序 (*system*) RELOAD (/etc/cron.d/cron_example) 时可以看到这一行。

也在 /var/log/cron 文件中,我可以看到每分钟 (root) CMD (/usr/local/bin/cron_example.sh),所以看起来一切都运行良好,但是 /tmp/cron_example.log 没有创建,我的真正任务也没有执行。

有没有人知道我可以做些什么来理解是什么阻止了它?是否有一些额外的日志文件我可以查阅以了解发生了什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

在 AWS 技术团队的帮助下,我终于能够修复此 CRON 未运行错误。 事实证明,在我的 ElasticBeanstalk 中进行部署的 IAM 角色没有 ec2:DescribeTag 角色(它具有 elasticbeanstalk:DescribeTag 角色)。 那时我仍然不知道为什么完全相同的角色在我的临时环境中正确运行,而不是在生产环境中。