如何使用python中的amqp将消息发送到Azure事件中心

时间:2017-06-08 05:53:32

标签: python python-2.7 azure amqp

任何人都知道如何使用python中的amqp向Azure事件中心发送消息?我需要使用分区键(而不是分区ID)发送消息。非常感谢。

1 个答案:

答案 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时,步骤如下。

  1. 通过pip install python-qpid-proton安装适用于AMQP的Python Qpid Proton软件包。
  2. 以下是我的示例代码作为参考。

    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()
    
  3. 请参阅proton.Message课程参考BrokeredMessage.PartitionKey

    希望它有所帮助。