我在ECS中运行了一个单独的Celery Beat和Work服务。工作人员似乎连接到SQS正常。另一方面,Beat给我带来了麻烦。我把这些说明作为我正在做的事情的模板。
https://dev.to/daiquiri_team/deploying-django-application-on-aws-with-terraform-setting-up-celery-and-sqs-38ik
我偏离了一点,因为我已经有一个现有的Terraform/Django项目在AWS中运行。Django项目也在ECS上。
我很难知道要找什么,因为错误相当模糊。为什么计划会创建“Permissions denied”?Beat是否尝试向SQS写入?我现在有4个队列。
我从容器定义中执行下面的命令:
第一个月
我还在我的容器定义中运行以下代码,因为我了解到ECS总是以root身份运行。
{"name": "C_FORCE_ROOT", "value": "true"}
字符串
1条答案
按热度按时间o2gm4chl1#
根据official Celery Beat documentation(在启动调度程序部分下):
Beat需要将任务的最后一次运行时间存储在本地数据库文件中(默认情况下名为celerybeat-schedule),因此它需要访问当前目录,或者您可以为该文件指定一个自定义位置:
字符串
所以我认为你只需要提供一个路径,容器可以通过
-s
标志写入文件。