Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
质子连接到azure iothub amqps端点_Azure_Amqp_Qpid_Azure Iot Hub - Fatal编程技术网

质子连接到azure iothub amqps端点

质子连接到azure iothub amqps端点,azure,amqp,qpid,azure-iot-hub,Azure,Amqp,Qpid,Azure Iot Hub,我正在尝试使用谷歌云上Debian 4.8.4-1上的python 2.7 qpid proton(0.17.0)连接Azure IoT中心上的服务AMQPS 1.0端点 我正在为SASL平原使用共享访问策略和SAS令牌对(在C#下的ampq net lite中成功工作)。对于azure iothub,您引用共享访问策略作为格式中的用户名policyName@sas.root.IoTHubName 当我将这些(模糊的)凭证与qpid一起使用时,如下所示 import sys from proto

我正在尝试使用谷歌云上Debian 4.8.4-1上的python 2.7 qpid proton(0.17.0)连接Azure IoT中心上的服务AMQPS 1.0端点

我正在为SASL平原使用共享访问策略和SAS令牌对(在C#下的ampq net lite中成功工作)。对于azure iothub,您引用共享访问策略作为格式中的用户名policyName@sas.root.IoTHubName

当我将这些(模糊的)凭证与qpid一起使用时,如下所示

import sys
from proton import Messenger, Message

base = "amqps://iothubowner@sas.root.HubName:SharedAccessSignature sr=HubName.azure-devices.net%2fmessages&sig=PERCENT_ENCODED_SIG&se=1493454429&st=1490861529&skn=iothubowner@HubName.azure-devices.net:5671"

entityName = "/messages/servicebound/feedback"

messenger = Messenger()
messenger.subscribe("%s%s" % ( base, entityName))
messenger.start()
我得到以下错误

(正在传递的连接字符串的调试打印)amqps://iothubowner@sas.root.HubName:SharedAccessSignature sr=HubName.azure devices.net%2Messages&sig=PERCENT_ENCODED_sig&se=1493454429&st=1490861529&skn=iothubowner@HubName.azure-devices.net:5671

回溯(最后一次调用):文件“readProton2.py”,第27行, 在里面 messenger.subscribe(“%s%s”%(base,entityName))文件/usr/lib/python2.7/dist packages/proton/__init__.py),第496行,在 订阅 self._check(pn_error_code(pn_messenger_error(self._mng)))文件“/usr/lib/python2.7/dist packages/proton/_uuuinit_uuu.py”,第300行,in _检查 raise exc(“[%s]:%s”%(错误,pn\u错误文本(pn\u messenger\u错误(self.\u mng)))

proton.Messenger异常:[-2]:连接错误 (sas.root.HubName:SharedAccessSignature sr=HubName.azure devices.net%2Messages&sig=PERCENT_ENCODED_sig&se=1493454429&st=1490861529&skn=iothubowner@HubName.azure-设备(网址:5671): getaddrinfo(sas.root.HubName,SharedAccessSignature sr=HubName.azure devices.net%2Messages&sig=PERCENT_ENCODED_sig&se=1493454429&st=149086152 9&skn=iothubowner@HubName.azure-devices.net:5671):Servname不是 支持ai_socktype

最后一条错误消息看起来连接字符串的解析被破坏了(快速查看,qpid proton/messenger.c中的pni_default_rewrite似乎使用第一次出现的@来拆分连接字符串,这可能是问题所在)


然而,我对AMQP和质子还不熟悉,所以在我提出错误之前,我想检查其他人是否已成功使用质子到iothub,或者我是否遗漏了什么???

您需要对AMQP用户名和密码进行编码。

iothubowner@sas.root.HubName

iothubowner%40sas.root.HubName
SharedAccessSignature sr=HubName.azure devices.net%2Messages&sig=PERCENT_ENCODED_sig&se=1493454429&st=1490861529&skn=IoTubOwner

SharedAccessSignature%20sr%3DHubName.azure-devices.net%252fmessages%26sig%3DPERCENT_ENCODED_SIG%26se%3D1493454429%26st%3D1490861529%26skn%3Diothubowner

服务器名称应为
HubName.azure devices.net:5671
,但正如您在错误消息中看到的,服务器名称更改为
sas.root.HubName,SharedAccessSignature sr=HubName.azure devices.net%2Messages&sig=PERCENT_ENCODED_sig&se=1493454429&st=149086152 9&skn=iothubowner@HubName.azure-devices.net:5671

您需要对amqp用户名和密码进行编码。

iothubowner@sas.root.HubName

iothubowner%40sas.root.HubName
SharedAccessSignature sr=HubName.azure devices.net%2Messages&sig=PERCENT_ENCODED_sig&se=1493454429&st=1490861529&skn=IoTubOwner

SharedAccessSignature%20sr%3DHubName.azure-devices.net%252fmessages%26sig%3DPERCENT_ENCODED_SIG%26se%3D1493454429%26st%3D1490861529%26skn%3Diothubowner

服务器名称应为
HubName.azure devices.net:5671
,但正如您在错误消息中看到的,服务器名称更改为
sas.root.HubName,SharedAccessSignature sr=HubName.azure devices.net%2Messages&sig=PERCENT_ENCODED_sig&se=1493454429&st=149086152 9&skn=iothubowner@HubName.azure-devices.net:5671

您是否忘记了变量
base
的双引号,例如:base=”amqps://...“?没有-他们只是在写问题时迷失了方向,你遵循了哪个教程?”?你查过了吗?注意地址格式。您是否忘记了变量
base
的双引号,例如:base=”amqps://...“?没有-他们只是在写问题时迷失了方向,你遵循了哪个教程?”?你查过了吗?注意地址格式。这也适用于eventhubs吗?使用什么编码方法?这方面的MSFT文档在哪里?谢谢-最终在其他人尝试做类似事情的经历中找到了对此的评论这对eventhubs也适用吗?使用什么编码方法?这方面的MSFT文档在哪里?谢谢-最终在其他人尝试做类似事情的经历中找到了对此的评论