如何解决通过Python和azure-uamqp-python使用AMQP连接到AmazonMQ
我正在尝试使用来自Azure的AmazonMQ客户端通过AMQP 1.0 protocol连接到azure-uamqp-python。
def uamqp_send_simple():
msg_content = b"Hello world"
parsed_uri = urlparse(URI)
plain_auth = authentication.SASLPlain(parsed_uri.hostname,KEY_NAME,ACCESS_KEY)
uamqp.send_message(URI,msg_content,auth=plain_auth)
print("Message sent!")
我遇到一个Invalid Target Address
错误,而uri是
ValueError: Invalid Target address: ParseResultBytes(scheme=b'amqp+ssl',netloc=xxxx.xxxx.amazonaws.com:5671',path=b'',params=b'',query=b'',fragment=b'')
使用方案amqp+ssl
。
使用通过SASLPlain的身份验证方案也会发生同样的情况:
def uamqp_send_simple_sasl():
parsed_uri = urlparse(URI)
plain_auth = uamqp.authentication.SASLPlain(parsed_uri.hostname,ACCESS_KEY,port=int(PORT),transport_type=uamqp.TransportType.Amqp)
target = uamqp.Target("amqp+ssl://" + str(parsed_uri.hostname))
send_client = uamqp.SendClient(target,auth=plain_auth,debug=True,client_name="send_example_uamqp")
try:
msg_props = uamqp.message.MessageProperties()
msg_props.to = "queue://test"
message = uamqp.Message("content",properties=msg_props)
print(message.properties)
print(message.encode_message())
send_client.queue_message(message)
results = send_client.send_all_messages(close_on_done=False)
assert not [m for m in results if m == uamqp.constants.MessageState.SendFailed]
finally:
send_client.close()
print("Message sent!")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。