繁体   English   中英

由于ProbableAccessDeniedError,无法使用pika连接到Heroku上的RabbitMQ

[英]Cannot connect to RabbitMQ on Heroku with pika due to ProbableAccessDeniedError

我只是在heroku中设置了一个RabbitMQ插件。 在开发我的应用程序以排队并使用在本地实例上运行的消息之后,我将其部署到Heroku并且还无法成功连接。 用户名/密码&hostname / port / vhost都来自heroku config 如果我更改用户名或密码,错误将更改为ProbableAuthenticationError ,这使我认为身份验证至少是正确的,但可能是我的vhost或其他一些缺少配置的问题。 我没有在SO上看到任何类似的问题,也没有看到一小时的谷歌搜索没有解决我的问题。

我已经尝试了RABBITMQ_BIGWIG_RX_URLRABBITMQ_BIGWIG_TX_URL环境变量用于发送和使用,并且似乎没有任何组合可行。 下面是我尝试连接的代码。

url = 'small-laurel-24.bigwig.lshift.net'
port = 10019
vhost = '/notmyrealvhost'

credentials = pika.PlainCredentials('username', 'password')
parameters = pika.ConnectionParameters(url, port, vhost, credentials=credentials)
connection = pika.BlockingConnection(parameters)

有什么我缺少的东西或任何方法来弄清楚具体配置错误的是什么? 我在这里不知所措。 非常感谢提前!

我正在运行pika 0.9.14,python 2.7.3。

问题很可能是您在虚拟主机中添加了正斜杠字符。 许多用户将此与正斜杠作为根目录混淆,但它实际上只是默认的虚拟主机名。

除非您使用正斜杠实际命名虚拟主机,否则名称将始终与您在管理控制台中看到的名称相同,例如:

  • my_virtualhost而不是/ my_virtualhost

这就是为什么您的解决方案有效,因为您在使用URLParameters时没有添加额外的正斜杠。

使用URLParameters,原始代码看起来像这样:

amqp://username:password@small-laurel-24.bigwig.lshift.net:10018/%2Fnotmyrealvhost

虽然您在上面的答案中提到的工作版本没有正斜杠( %2F )字符。

amqp://username:password@small-laurel-24.bigwig.lshift.net:10018/notmyrealvhost

我最后通过使用URLParameters上的URLParameters类来解析我的问题来解析Heroku的环境变量中的URL。

这需要像amqp://username:password@small-laurel-24.bigwig.lshift.net:10018/notmyrealvhost这样的字符串,并根据需要解析所有内容。 我自己这样做是不必要的复杂化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM