Python 用户rabbitmq的访问被拒绝&;芹菜

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

我创建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://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
,但在exchange
reply.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 .*  .*  .*