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

如何实现Azure Synapse管道超时自取消及解决Token受众验证失败问题

解决Azure Synapse管道超时自动取消的问题

咱们先拆解你遇到的两个核心问题:REST API调用的令牌受众错误,以及如何正确实现管道超时自取消的逻辑。

一、修复InvalidTokenAuthenticationAudience错误

你遇到的这个错误核心原因是请求令牌的受众(Audience)不匹配Synapse Data Plane API的要求。Synapse数据平面API(就是你调用的pipelineruns/cancel接口)要求令牌的受众必须是https://dev.azuresynapse.net/,而不是ADF常用的管理平面资源https://management.azure.com/。

不管是用托管标识还是手动获取令牌,都要确保请求令牌时指定的resource参数是https://dev.azuresynapse.net/:

  • 如果是用Web Activity的托管标识身份验证,直接在“资源”字段填这个值即可。
  • 如果是手动测试(比如Postman),获取令牌的请求里要把resource设为这个URL。

另外,还要确保你的托管标识(不管是工作区系统托管标识还是用户托管标识)拥有Synapse Contributor角色(至少需要Microsoft.Synapse/workspaces/pipelineRuns/cancel/action权限),不然就算令牌正确,也会有权限错误。

二、两种实现管道超时自取消的方案

方案1:管道内部嵌入超时检查逻辑(适合单个管道定制)

这个思路和ADF的实现类似,用管道活动组合来实现超时监测和自动取消:

  1. 添加超时监测逻辑:
    • 用Until活动包裹你的核心业务逻辑,或者单独做一个并行分支来定时检查。
    • 每隔固定时间(比如5分钟)调用Get Pipeline Run活动,获取当前运行的开始时间和状态。
    • 用表达式计算运行时长:sub(ticks(utcNow()), ticks(pipeline().TriggerTime))/10000000(转换成秒)。
  2. 触发取消操作:
    • 当计算出的时长超过10000秒时,调用Web Activity执行取消API:
      • URL:POST https://{workspacename}.dev.azuresynapse.net/pipelineruns/@{pipeline().RunId}/cancel?api-version=2020-12-01
      • 方法:POST
      • 身份验证:选择“托管标识”,资源填https://dev.azuresynapse.net/
      • 请求体留空即可,该API不需要额外参数。
  3. 终止管道:取消后可以用Fail活动抛出明确的超时错误,方便后续监控。

方案2:用Azure Monitor全局管控(适合批量管道)

如果需要给所有管道统一设置超时规则,用Azure Monitor的日志警报+自动化更高效:

  1. 创建日志查询:
    • 进入Synapse工作区的“日志”页面,编写查询语句筛选超时的运行中管道:
      SynapsePipelineRun
      | where Status == "InProgress"
      | where Duration > 10000
      | project PipelineName, RunId, WorkspaceName
      
  2. 配置警报规则:
    • 基于这个查询创建警报,触发条件设为“当结果数大于0时”。
  3. 添加自动化动作:
    • 创建一个Logic App或Azure Function,用托管标识调用Synapse的取消管道API(同样要确保令牌受众是https://dev.azuresynapse.net/)。
    • 把这个Logic App/Func添加到警报的动作组,当警报触发时自动执行取消操作。

三、关于你测试Try it功能失败的说明

官方文档的Try it功能默认可能用的是管理平面的令牌,受众不匹配Synapse数据平面API,所以会报错。你可以手动指定获取令牌的资源为https://dev.azuresynapse.net/,再用这个令牌去测试,就能正常调用了。

内容的提问来源于stack exchange,提问作者ALEJANDRO PEREZ MORENO

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 19:42:35