任何人都知道如何使用python中的amqp向Azure事件中心发送消息?我需要使用分区键(而不是分区ID)发送消息。非常感谢。
答案 0 :(得分:0)
根据官方文档Partitioned queues and topics
的{{3}}部分,如下所示,您可以通过设置邮件的PartitionKey
属性来发送带分区键的邮件。
PartitionKey :如果消息具有
Use of partition keys
属性但未设置BrokeredMessage.SessionId属性,则Service Bus将使用PartitionKey属性作为分区键。如果消息同时设置了SessionId和PartitionKey属性,则两个属性必须相同。如果PartitionKey属性设置为与SessionId属性不同的值,则Service Bus将返回无效的操作异常。如果发件人发送非会话感知事务消息,则应使用PartitionKey属性。分区键确保在事务中发送的所有消息都由同一个消息传递代理处理。
使用Python时,步骤如下。
pip install python-qpid-proton
安装适用于AMQP的Python Qpid Proton软件包。以下是我的示例代码作为参考。
from proton import Messenger, Message
messenger = Messenger()
message = Message()
message.address = "amqps://<shared_access_policy_name>:<shared_access_policy_key>@<your-servicebus-namespace>.servicebus.windows.net/<your-eventhub-name>"
message.properties = {
"PartitonKey" : "<a partitonKey you want>",
}
message.body = u"This is a text string"
messenger.put(message)
messenger.send()
请参阅proton.Message
课程参考BrokeredMessage.PartitionKey。
希望它有所帮助。