【问题标题】:Python and Azure Service BusPython 和 Azure 服务总线
【发布时间】:2014-10-20 20:53:14
【问题描述】:

我在设置从 Python 脚本到 Azure 服务总线的连接时遇到问题。 C# 中的类似代码(在 Windows 上)运行良好。

from azure.servicebus import *

AZURE_SERVICEBUS_NAMESPACE='blablabla.servicebus.windows.net'
AZURE_SERVICEBUS_ISSUER='RootManageSharedAccessKey'
AZURE_SERVICEBUS_ACCESS_KEY='sdkfjlkewjrlwerjlewrjlewrjfjflsdkfjew3='

bus_service = ServiceBusService(service_namespace=AZURE_SERVICEBUS_NAMESPACE, account_key=AZURE_SERVICEBUS_ACCESS_KEY, issuer=AZURE_SERVICEBUS_ISSUER) 

bus_service.create_queue('taskqueue')

这会产生以下输出:

Traceback(最近一次调用最后一次): 文件“createqueue.py”,第 9 行,在 bus_service.create_queue('taskqueue') 文件“/usr/local/lib/python2.7/dist-packages/azure/servicebus/servicebusservice.py”,第 143 行,在 create_queue request.headers = self._update_service_bus_header(请求) _update_service_bus_header 中的文件“/usr/local/lib/python2.7/dist-packages/azure/servicebus/servicebusservice.py”,第 860 行 ('授权', self._sign_service_bus_request(request))) _sign_service_bus_request 中的文件“/usr/local/lib/python2.7/dist-packages/azure/servicebus/servicebusservice.py”,第 868 行 self._get_token(request.host, request.path) + '"' _get_token 中的文件“/usr/local/lib/python2.7/dist-packages/azure/servicebus/servicebusservice.py”,第 908 行 resp = self._httpclient.perform_request(request) 文件“/usr/local/lib/python2.7/dist-packages/azure/http/httpclient.py”,第 191 行,在 perform_request self.send_request_headers(连接,request.headers) 文件“/usr/local/lib/python2.7/dist-packages/azure/http/httpclient.py”,第 170 行,在 send_request_headers 连接.endheaders() 文件“/usr/lib/python2.7/httplib.py”,第 958 行,在 endheaders 中 self._send_output(message_body) _send_output 中的文件“/usr/lib/python2.7/httplib.py”,第 818 行 自我发送(味精) 文件“/usr/lib/python2.7/httplib.py”,第 780 行,在发送中 self.connect() 文件“/usr/lib/python2.7/httplib.py”,第 1161 行,在连接中 self.timeout, self.source_address) 文件“/usr/lib/python2.7/socket.py”,第 553 行,在 create_connection 对于 getaddrinfo(host, port, 0, SOCK_STREAM) 中的 res: socket.gaierror: [Errno -2] 名称或服务未知

这里出了什么问题?

谢谢

【问题讨论】:

  • 您使用的是哪个版本的 Python SDK,您何时创建了 SB 命名空间?
  • 好问题:不知道,因为我像 2 天前一样拉起 pip 包。我还使用 WebInstaller 从 MSDN 中提取了 SDK,在 Windows 上使用 Python 进行了测试。结果相同。奇怪的是,我有一个创建 blob 存储容器的工作脚本。我还使用预先配置的队列进行了测试,并且只写了一条消息。这也会导致相同的错误行为。
  • 我有同样的问题,还没有解决办法。不适用于 Windows 机器或使用 python 的 Linux 机器,但可与 .NET 一起使用。

标签: python-2.7 azureservicebus


【解决方案1】:
AZURE_SERVICEBUS_NAMESPACE='blablabla'

您无需为命名空间指定整个 URL。

【讨论】:

  • 这也是我的想法,但是无论有没有命名空间,结果都是一样的。我还运行了一个创建 blob 存储容器的 python 脚本,它正在工作(添加和不添加 URL)。
  • 您使用的是 SAS 还是 ACS?
  • SAS。请参阅访问密钥的使用。同样:同样的概念在 C# / .NET 中完美运行
  • 嗯,好的。我认为 Python SDK 不支持 SAS。
【解决方案2】:

检查您与 microsift 上的 servicebus 服务的连接性。 我遇到了同样的问题,问题在于 wlan0 连接 - 我丢失了 DHCP 服务器分配的 IP。 或者您的 DNS 无法正常工作。

【讨论】:

    猜你喜欢
    • 2017-01-13
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 2021-11-06
    • 2014-03-29
    • 2018-11-18
    • 2018-10-30
    • 1970-01-01
    相关资源
    最近更新 更多