我正在开发一个使用 celery 工作人员和 Flower 来监控这些工作人员的项目。 Worker 和 Flower 都作为镜像在一个容器内运行。我想使用 Flower 更改工作人员的属性,但尝试通过 Flower Web UI 更改值会引发以下错误:
FLOWER_UNAUTHENTICATED_API environment variable is required to enable API without authentication
我正在用
celery -A app.celery.celery_worker.celery worker --loglevel=info
启动工人,用 celery -A app.celery.celery_worker.celery flower --port=${PORT} --conf=app/celery/flowerconfig.py
启动花
我尝试在 celeryflower 命令中指定的路径上使用
FLOWER_UNAUTHENTICATED_API = True
设置一个flowerconfig 文件。尽管如此,当使用 Flower 的 Web UI 更改值时,会弹出相同的错误消息并且 Flower 输出 401 POST /api/worker/pool/grow/celery@615b8e2b9e60 (172.18.0.1): FLOWER_UNAUTHENTICATED_API environment variable is required to enable API without authentication
我遇到了同样的问题,我通过指定“--basic-auth”选项解决了这个问题,您可以在启动 Celery Flower 时指定用户和密码(Flower 2.0.0 身份验证文档)。所以启动 Flower 的完整命令如下
celery
-A app.celery.celery_worker.celery
flower
--port=${PORT}
--basic-auth=user:pwd
--conf=app/celery/flowerconfig.py
当您在浏览器中打开 Flower 界面时,系统会要求您提供这些凭据,并且交互应该会再次起作用。如果您需要更复杂的身份验证,文档中还列出了其他选项。