Conectando a um Broker usando SSL
Conectando a um Broker usando SSL#
Novo na versão 0.20.2.
Para que possamos conectar em um Broker usando ssl precisamos criar um SSLContext e passar esse objeto para o nosso objeto AMQPConnection
.
Esse contexto é criado usando o módulo ssl da stdlib do Python mesmo. Uma forma simples de criar um contexto é usar:
import ssl
ctx = ssl.create_default_context()
Esse contexto deve ser passado ao Objeto AMQPConnection
, dessa forma:
from asyncworker import App
from asyncworker.connections import AMQPConnection
import ssl
amqp_conn = AMQPConnection(host="127.0.0.1",
user="guest",
password="guest",
prefetch_count=256,
ssl=ssl.create_default_context()
)
app = App(connections=[amqp_conn])
@app.amqp.consume(["asgard/counts", "asgard/counts/errors"],
vhost="fluentd")
async def drain_handler(message):
print(message)
Esse código consegue se conectar a um broker que usa ssl. Nesse caso o asyncworker vai conferir so certificados do servidor. Caso você esteja se conectando a um broker com certificados auto-assinados, você deverá carregar os arquivos de certificado que sejam capazes de validar a conexão com esse broker.
from asyncworker import App
from asyncworker.connections import AMQPConnection
import ssl
ctx = ssl.create_default_context()
context.load_verify_locations('path/to/cabundle.pem')
amqp_conn = AMQPConnection(host="127.0.0.1",
user="guest",
password="guest",
prefetch_count=256,
ssl=ctx,
)
app = App(connections=[amqp_conn])