Amazon web services 远程连接到RabbitMQ实例(在AWS上创建)

Amazon web services 远程连接到RabbitMQ实例(在AWS上创建),amazon-web-services,rabbitmq,python-pika,Amazon Web Services,Rabbitmq,Python Pika,我无法连接到RabbitMQ实例(这是我第一次这样做)。我已经在AWS上旋转了一个,并且被允许访问一个我可以访问的管理面板 我正尝试使用以下代码连接到python/pika中的RabbitMQ服务器: import pika import logging logging.basicConfig(level=logging.DEBUG) credentials = pika.PlainCredentials('*******', '**********') parameters = pika.

我无法连接到RabbitMQ实例(这是我第一次这样做)。我已经在AWS上旋转了一个,并且被允许访问一个我可以访问的管理面板

我正尝试使用以下代码连接到python/pika中的RabbitMQ服务器:

import pika
import logging

logging.basicConfig(level=logging.DEBUG)

credentials = pika.PlainCredentials('*******', '**********')
parameters = pika.ConnectionParameters(host='a-25c34e4d-a3eb-32de-abfg-l95d931afc72f.mq.us-west-1.amazonaws.com',
                                       port=5671,
                                       virtual_host='/',
                                       credentials=credentials,
                                       )

connection = pika.BlockingConnection(parameters)

当我运行上述操作时,我得到了
pika.exceptions.compatibileProtocolError:StreamLosError:(“流连接丢失:ConnectionResetError(54,'由对等方重置连接”),

如果您试图通过AMQP协议进行连接,而AWS正在使用AMQPS,您应该像这样向连接参数添加ssl\u选项

import ssl

logging.basicConfig(level=logging.DEBUG)

credentials = pika.PlainCredentials('*******', '**********')
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
parameters = pika.ConnectionParameters(host='a-25c34e4d-a3eb-32de-abfg-l95d931afc72f.mq.us-west-1.amazonaws.com',
                                       port=5671,
                                       virtual_host='/',
                                       credentials=credentials,
                                       ssl_options=pika.SSLOptions(context)
                                       )

connection = pika.BlockingConnection(parameters)

您正在尝试通过AMQP协议进行连接,而AWS正在使用AMQP,您应该向您的连接参数添加ssl_选项,如下所示

import ssl

logging.basicConfig(level=logging.DEBUG)

credentials = pika.PlainCredentials('*******', '**********')
context = ssl.SSLContext(ssl.PROTOCOL_TLSv1_2)
parameters = pika.ConnectionParameters(host='a-25c34e4d-a3eb-32de-abfg-l95d931afc72f.mq.us-west-1.amazonaws.com',
                                       port=5671,
                                       virtual_host='/',
                                       credentials=credentials,
                                       ssl_options=pika.SSLOptions(context)
                                       )

connection = pika.BlockingConnection(parameters)

您可以验证以下内容1)检查端口5671是否可访问(需要确保安全组得到正确管理以实现此目的)2)版本检查(确保您使用的python库版本支持AWS上运行的rabbitmq版本)您可以验证以下内容1)检查端口5671是否可访问(需要确保正确管理安全组以实现此目标)2)版本检查(确保您使用的python库版本支持AWS上运行的rabbitmq版本)