You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Databricks接收Azure Service Bus消息失败问题求助

解决Azure Databricks中Python连接Service Bus队列的问题

先修复TransportType属性异常

  • 你碰到的'str'对象没有'AmqpOverWebsocket'属性错误,基本是因为TransportType的引用方式不对。必须从azure.servicebus包导入枚举类,并且直接用枚举成员,不能写成字符串。
  • 正确代码示例:
    from azure.servicebus import ServiceBusClient, TransportType
    
    # 替换成你的实际信息
    CONNECTION_STRING = "你的Service Bus连接字符串"
    QUEUE_NAME = "目标队列名称"
    
    # 通过WebSocket创建客户端
    servicebus_client = ServiceBusClient.from_connection_string(
        conn_str=CONNECTION_STRING,
        transport_type=TransportType.AmqpOverWebsocket
    )
    
  • 重点:别把TransportType.AmqpOverWebsocket写成"AmqpOverWebsocket",这是最容易踩的坑。

排查Databricks网络/端口限制

  • Databricks集群默认可能封禁了常规AMQP端口(5671),所以切换到AmqpOverWebsocket(走443端口)是对的,但得确认集群网络允许出站访问Service Bus的443端口:
    • 检查集群所在VNet的NSG规则,是否放行到*.servicebus.windows.net的443端口出站流量
    • 如果用的是Databricks托管VNet,默认应该允许,但自定义防火墙规则的话要确认没拦截
  • 可以在Notebook里先测连通性(需要集群装了nc工具):
    %sh
    nc -zv 你的命名空间.servicebus.windows.net 443
    

其他排查项

  • 核对Service Bus连接字符串:确认SharedAccessKeyName、SharedAccessKey和命名空间都正确
  • 检查队列权限:连接字符串对应的SAS政策必须有Listen权限
  • 更新azure-servicebus包:不同版本API可能有差异,在Databricks里执行升级:
    %pip install azure-servicebus --upgrade
    

内容的提问来源于stack exchange,提问作者Tomek Kowalczyk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 02:57:09