我想编写一个在部署后运行的简单冒烟测试,以验证RabbitMQ凭证是否有效.检查rabbitmq用户名/密码/ vhost有效的最简单方法是什么?
编辑: 最好使用bash脚本进行检查.或者,使用Python脚本.
cce*_*lar 44
由于您没有提供有关语言等的任何细节:
您只需向管理API发出HTTP GET请求即可.
$ curl -i -u guest:guest http://localhost:15672/api/whoami
Run Code Online (Sandbox Code Playgroud)
请参阅RabbitMQ Management HTTP API
Lor*_*ein 25
这是一种使用Python检查的方法:
#!/usr/bin/env python
import socket
from kombu import Connection
host = "localhost"
port = 5672
user = "guest"
password = "guest"
vhost = "/"
url = 'amqp://{0}:{1}@{2}:{3}/{4}'.format(user, password, host, port, vhost)
with Connection(url) as c:
try:
c.connect()
except socket.error:
raise ValueError("Received socket.error, "
"rabbitmq server probably isn't running")
except IOError:
raise ValueError("Received IOError, probably bad credentials")
else:
print "Credentials are valid"
Run Code Online (Sandbox Code Playgroud)
你可以尝试用rabbitmqctl
为好,
rabbitmqctl authenticate_user username password
Run Code Online (Sandbox Code Playgroud)
并检查 Bash 中的返回码。
使用Python:
>>> import pika
>>> URL = 'amqp://guest:guest@localhost:5672/%2F'
>>> parameters = pika.URLParameters(URL)
>>> connection = pika.BlockingConnection(parameters)
>>> connection.is_open
True
>>> connection.close()
Run Code Online (Sandbox Code Playgroud)