django 错误13:权限被拒绝:'celerybeat-schedule',Celery在AWS ECS和SQS上运行

bweufnob  于 2023-08-08  发布在  Go
关注(0)|答案(1)|浏览(148)

我在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"}

字符串

o2gm4chl

o2gm4chl1#

根据official Celery Beat documentation(在启动调度程序部分下):
Beat需要将任务的最后一次运行时间存储在本地数据库文件中(默认情况下名为celerybeat-schedule),因此它需要访问当前目录,或者您可以为该文件指定一个自定义位置:

celery -A proj beat -s /home/celery/var/run/celerybeat-schedule

字符串
所以我认为你只需要提供一个路径,容器可以通过-s标志写入文件。

相关问题