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

如何配置Azure Databricks向Event Grid发送作业事件并解决认证问题?

问题背景与疑问

我目前用Azure Durable Function编排器管理包含Azure Databricks作业创建的流程:编排器通过Databricks REST API创建作业并提供回调URL,之后无限等待外部回调事件确认作业完成(回调模式)。Databricks作业代码被包裹在try:except块中,确保无论执行结果如何都能向编排器返回状态。

但我担心如果作业出现Internal Error,代码块无法执行,会导致编排器无限等待。为提升可靠性,我考虑了三种方案:给编排器设置超时、定时轮询作业状态、采用事件驱动架构(比如向Azure Event Grid主题写入事件,由独立服务订阅)。

我有两个核心疑问:

  1. 能否让Databricks作业在完成时(成功、失败、错误等所有可能结果)向Azure Event Grid主题发送事件,确保编排器能收到通知并执行对应操作?我查了Jobs 2.1 REST API文档,发现可以配置邮件或预览版webhook在作业启动、成功、失败时发送通知,能不能直接在这里填入Event Grid主题的URL?
  2. 我已经参考文档创建了系统通知,但测试连接时遇到401错误:请求必须包含aeg-sas-token或aeg-sas-key签名。请问该如何提供令牌,让Databricks能够向Event Grid主题写入事件?

解答

1. 能否用Databricks Webhook向Azure Event Grid发送事件?

可以。Databricks Jobs 2.1 API的预览版webhook支持自定义HTTP端点,完全可以将Azure Event Grid主题的URL配置为webhook目标,以此实现作业全生命周期事件(启动、成功、失败、超时等)的推送。

需要注意:

  • Databricks webhook的请求格式和Event Grid的事件格式不完全匹配,但Event Grid支持接收自定义JSON负载,后续可以在订阅端(比如你的Durable Function)做格式转换处理。
  • 配置webhook时需勾选所有需要的事件触发条件(作业启动、成功、失败、超时等),覆盖所有可能的作业终止场景,避免遗漏通知。

2. 解决Event Grid 401认证错误

Azure Event Grid主题要求请求携带SAS令牌或SAS密钥进行身份验证,Databricks webhook支持自定义HTTP请求头,可通过以下步骤配置:

步骤1:生成Event Grid主题的SAS令牌

使用Azure CLI生成,命令如下:

az eventgrid topic generate-sas --name <你的主题名称> --resource-group <资源组名称> --expiry <过期时间,比如"2025-12-31T23:59:59Z">

执行后会得到类似格式的SAS令牌:sv=2021-10-01&sig=xxx&se=xxx

步骤2:配置Databricks Webhook的自定义请求头

在调用Databricks Jobs API创建/更新作业时,在webhook配置中添加aeg-sas-token请求头,值为步骤1生成的SAS令牌。示例请求体片段如下:

{
  "settings": {
    "webhooks": [
      {
        "id": "event-grid-notification",
        "url": "https://<你的Event Grid主题名称>.<区域名>.eventgrid.azure.net/api/events",
        "http_method": "POST",
        "headers": {
          "aeg-sas-token": "sv=2021-10-01&sig=xxx&se=xxx"
        },
        "events": ["STARTED", "SUCCEEDED", "FAILED", "TIMED_OUT"]
      }
    ]
  }
}

补充说明

  • 若倾向于使用SAS密钥而非令牌,可直接在请求头中添加aeg-sas-key,值为Event Grid主题的访问密钥(可在Azure门户的主题「访问密钥」页面获取)。
  • 注意SAS令牌的过期时间,建议设置较长有效期,或在令牌过期前自动更新Databricks作业的webhook配置。
  • 测试时可先用Postman手动发送带SAS令牌的请求到Event Grid主题,验证认证通过后再配置到Databricks中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:15:37