我有一个生成流数据的Python程序。每条数据都存储为名为message
的变量。
由于Event Hubs不提供Python SDK,我选择使用their REST API。我试图将数据推送到我的Event Hub实例,作为我的Python程序的一部分,生成如下数据:
r = requests.post("https://{Instance name}.servicebus.windows.net/{Path}/messages", message)
print(r.status_code, r.reason)
执行此代码后,我收到401 Unauthorized
响应。
遇到此问题后,我使用this教程尝试创建共享访问签名。在使用curl
确认我生成的令牌有效后,我收到了HTTP/1.1 401 40103: Invalid authorization token signature
响应。
有没有更好的方法来发送数据,同时仍然在Python中生成数据?创建共享访问签名的更好方法是什么?
答案 0 :(得分:2)
Azure SDK for Python支持向事件中心发送消息:https://github.com/Azure/azure-sdk-for-python/tree/master/azure-servicebus#event-hub。
我建议使用SDK,但如果您真的想直接调用REST API,请查看SDK源代码中的Event Hubs方法实现:https://github.com/Azure/azure-sdk-for-python/blob/master/azure-servicebus/azure/servicebus/servicebusservice.py。