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

如何通过托管身份将Synapse Spark DataFrame写入Azure Event Hub

用托管身份从Synapse Spark写入Azure Event Hubs的实现方案

一、先给托管身份配置权限

  • 找到你的Synapse工作区,进入概述页复制系统分配托管身份的名称(或客户端ID)
  • 进入Azure Event Hubs命名空间的**访问控制(IAM)**页面
  • 添加角色分配:选择Azure Event Hubs Data Sender角色,将权限分配给Synapse的系统分配托管身份,保存配置(权限生效可能需要5-10分钟)

二、修改PySpark代码

不需要再使用连接字符串,直接通过托管身份配置连接参数即可,以下是系统分配托管身份的代码示例:

# 替换为你的Event Hubs命名空间和事件中心名称
eh_namespace = "你的EH命名空间"
eh_name = "你的事件中心名称"

eh_conf = {
    "eventhubs.namespace": eh_namespace,
    "eventhubs.entityPath": eh_name,
    "eventhubs.authentication": "MANAGED_IDENTITY"
}

# 如果是使用用户分配托管身份,需要额外添加clientId参数:
# eh_conf["eventhubs.clientId"] = "用户分配托管身份的客户端ID"

df.selectExpr("partitionKey", "body").write.format("eventhubs").options(**eh_conf).save()

说明

  • 系统分配托管身份无需额外指定客户端ID,Spark会自动使用Synapse工作区的系统身份进行认证
  • 权限配置是关键,必须确保托管身份拥有Event Hubs的发送权限,否则会出现认证失败的错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 13:52:02