尝试使用代理属性发送azure服务总线消息时出现400错误

时间:2016-11-19 16:29:04

标签: python azure azureservicebus

我有一个小的python应用程序,它将信息发送到我的天蓝色服务总线。我注意到每条消息都有" broker_properties"字典,有一个名为"标签"我可以稍后从服务总线访问。

我正在尝试发送填充该属性的消息:

properties = {"Label":label}
msg = Message(bytes(messagebody, "utf-8"), bus_service, broker_properties=properties)
bus_service.send_queue_message("queue", msg)

但这似乎不起作用。执行上面的命令后,我从Azure返回错误:

The value '{'Label': 'testtest'}' of the HTTP header 'BrokerProperties' is invalid.

这是Python Azure SDK中的错误还是我做错了什么?

1 个答案:

答案 0 :(得分:1)

根据您的代码,问题是由使用Python dict对象作为broker_properties的值引起的,但broker_properties值应该是json字符串。请参阅GitHub上Azure SDK for Python中的测试code

所以请修改您的代码如下。

properties = '{"Label": "%s"}' % label

或者

import json
properties = json.dumps({"Label":label})