Python 用户rabbitmq的访问被拒绝&;芹菜
我创建vhost:Python 用户rabbitmq的访问被拒绝&;芹菜,python,rabbitmq,celery,Python,Rabbitmq,Celery,我创建vhost: rabbitmqctl add_vhost test 然后用户: rabbitmqctl add_user user 123456 然后我获取该用户的权限: rabbitmqctl set_permissions -p test user "test" "test" "test" 我在tasks.py中使用芹菜: app = Celery('tasks', broker='amqp://user:123456@localhost/test', backend='amqp
rabbitmqctl add_vhost test
然后用户:
rabbitmqctl add_user user 123456
然后我获取该用户的权限:
rabbitmqctl set_permissions -p test user "test" "test" "test"
我在tasks.py中使用芹菜:
app = Celery('tasks', broker='amqp://user:123456@localhost/test', backend='amqp://user:123456@localhost/test')
然后我跑:
celery -A tasks worker --loglevel=info
我有一个错误:
amqp.exceptions.AccessRefused: Exchange.declare: (403) ACCESS_REFUSED - access to exchange 'celeryev' in vhost 'test' refused for user 'user'
如何解决此问题?请查看此处的设置权限: 当您调用set_permissions时,您正在通过配置、读取和写入的“test”,因此您的用户将只能使用名为“test”的队列/交换
另外,也请查看此链接:如果仍然有错误,请检查双引号是否正确(发生在我身上) 而不是
“.*”
当然,请列出vhostpath中用户的权限(默认情况下/)
正如Lexsoul提到的,双引号可能是错误的类型, 例如:
sudo rabbitmqctl list_permissions -p EDO_DEVELOPING
*Listing permissions in vhost "EDO_DEVELOPING" ...
billing “.*” “.*” “.*”
但不起作用,所以我尝试:
sudo rabbitmqctl clear_permissions -p EDO_DEVELOPING billing
Clearing permissions for user "billing" in vhost "EDO_DEVELOPING" ...
sudo rabbitmqctl set_permissions -p EDO_DEVELOPING billing ".*" ".*" ".*"
Setting permissions for user "billing" in vhost "EDO_DEVELOPING" ...
然后
并且为我工作。我再次确认之前关于补助金的细节 问题: 导致通道异常访问被拒绝:对exchange“reply.Cellery.pidbox”的访问 解决方案: rabbitmqctl清除\u权限-p环境用户名
rabbitmqctl设置权限-p环境skberge.*.谢谢。我尝试在set_permissions中使用
celeryev
,但在exchangereply.celery.pidbox
中出现错误,因此现在我使用了“.*”,它可以正常工作。它是保存还是我需要使用正则表达式“芹菜”?正则表达式需要与您计划创建的队列/交换的名称匹配。
sudo rabbitmqctl list_permissions -p EDO_DEVELOPING
*Listing permissions in vhost "EDO_DEVELOPING" ...
billing “.*” “.*” “.*”
sudo rabbitmqctl clear_permissions -p EDO_DEVELOPING billing
Clearing permissions for user "billing" in vhost "EDO_DEVELOPING" ...
sudo rabbitmqctl set_permissions -p EDO_DEVELOPING billing ".*" ".*" ".*"
Setting permissions for user "billing" in vhost "EDO_DEVELOPING" ...
sudo rabbitmqctl list_permissions -p EDO_DEVELOPING
Listing permissions in vhost "EDO_DEVELOPING" ...
billing .* .* .*