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

如何从Azure Synapse Notebook向Service Bus队列发送消息?

Azure Synapse Notebook 向 Service Bus 队列发送消息的实现方法

完全可以通过Azure Synapse Notebook(Python环境)实现向Service Bus队列发送消息,以下是具体的配置和操作步骤:

1. 安装依赖包

在Synapse Notebook的代码单元格中,先安装Azure Service Bus的Python SDK:
!pip install azure-servicebus

2. 准备Service Bus连接信息

从Azure门户获取两个关键信息:

  • Service Bus命名空间的主连接字符串(在Service Bus资源的"共享访问策略"中获取)
  • 目标队列的名称

3. 基础消息发送代码

替换占位符后直接运行即可完成单条消息发送:

from azure.servicebus import ServiceBusClient, ServiceBusMessage

# 替换为你的实际信息
SB_CONNECTION_STR = "<你的Service Bus主连接字符串>"
QUEUE_NAME = "<目标队列名称>"

# 初始化客户端并发送消息
servicebus_client = ServiceBusClient.from_connection_string(conn_str=SB_CONNECTION_STR)
with servicebus_client:
    sender = servicebus_client.get_queue_sender(queue_name=QUEUE_NAME)
    with sender:
        # 这里可以替换为从Blob加载的实际数据
        message_content = "从Blob加载的数据内容"
        message = ServiceBusMessage(message_content)
        sender.send_messages(message)
        print("消息已成功发送至Service Bus队列")

4. 结合Blob数据加载的完整示例

如果需要从Blob存储加载数据后发送,可结合Azure Blob Storage SDK实现:

from azure.servicebus import ServiceBusClient, ServiceBusMessage
from azure.storage.blob import BlobServiceClient

# Blob存储信息
BLOB_CONN_STR = "<你的Blob Storage连接字符串>"
CONTAINER_NAME = "<Blob容器名称>"
BLOB_FILE_NAME = "<目标Blob文件名>"

# Service Bus信息
SB_CONN_STR = "<你的Service Bus主连接字符串>"
QUEUE_NAME = "<目标队列名称>"

# 加载Blob数据
blob_client = BlobServiceClient.from_connection_string(BLOB_CONN_STR).get_blob_client(container=CONTAINER_NAME, blob=BLOB_FILE_NAME)
blob_data = blob_client.download_blob().readall().decode("utf-8")

# 发送数据到Service Bus
servicebus_client = ServiceBusClient.from_connection_string(conn_str=SB_CONN_STR)
with servicebus_client:
    sender = servicebus_client.get_queue_sender(queue_name=QUEUE_NAME)
    with sender:
        # 若Blob数据过大,可拆分后批量发送
        message = ServiceBusMessage(blob_data)
        sender.send_messages(message)
        print("Blob数据已成功发送至Service Bus队列")

关键注意事项

  • 权限配置:确保Synapse工作区有权访问Service Bus和Blob Storage,可使用Managed Identity或直接通过连接字符串授权(测试场景推荐后者)
  • 批量发送:若需发送大量消息,可将消息存入列表后调用send_messages(message_list)提升效率
  • 异常处理:建议添加try-except块捕获连接超时、发送失败等异常,保证代码健壮性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 08:00:01