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

Azure DevOps Pipeline中AzureCLI@2获取Logic App SAS Token失败排查

排查Azure Logic App SAS Token获取失败(第二个请求报错ServiceUnavailable)

问题场景

在Azure Pipeline中使用AzureCLI@2任务批量获取两个Logic App工作流的SAS Token时,第一个请求成功,但第二个请求返回错误:

ERROR: Bad Request({\"Code\":\"BadRequest\",\"Message\":\"Encountered an error (ServiceUnavailable) from host runtime.\"...})

任务脚本如下:

- task: AzureCLI@2
  displayName: get Logic App SAS Token
  name: getLogicAppSASToken1
  inputs:
    azureSubscription: ${{ parameters.serviceAccount }}
    scriptType: pscore
    scriptLocation: inlineScript
    inlineScript: |              
      $workflowDetails1 = az rest --method post --uri https://management.azure.com/subscriptions/$(SUBSCRIPTION_ID)/resourceGroups/$(RG_LOGIC_APP)/providers/Microsoft.Web/sites/$(LOGIC_APP_NAME)/hostruntime/runtime/webhooks/workflow/api/management/workflows/$(WORKFLOW_NAME1)/triggers/manual/listCallbackUrl?api-version=2018-11-01
      $workflowResponse1 = $workflowDetails1 | ConvertFrom-Json
      $nameValueBody1 = '{\"Name\":\"Workflow1\",\"value\":\"' + $workflowResponse1.queries.sig + '\"}'
      echo $nameValueBody1
      $workflowDetails2 = az rest --method post --uri https://management.azure.com/subscriptions/$(SUBSCRIPTION_ID)/resourceGroups/$(RG_LOGIC_APP)/providers/Microsoft.Web/sites/$(LOGIC_APP_NAME)/hostruntime/runtime/webhooks/workflow/api/management/workflows/$(WORKFLOW_NAME2)/triggers/manual/listCallbackUrl?api-version=2018-11-01
      $workflowResponse2 = $workflowDetails2 | ConvertFrom-Json
      $nameValueBody2 = '{\"Name\":\"Workflow2\",\"value\":\"' + $workflowResponse2.queries.sig + '\"}'
      echo $nameValueBody2

排查方向建议

  • 检查第二个工作流的运行状态:确认$(WORKFLOW_NAME2)对应的工作流是否已发布且处于激活状态。如果工作流未发布、被禁用或处于异常休眠状态,host runtime会返回服务不可用错误。
  • 添加请求间隔:两个API请求连续发送可能触发Logic App runtime的限流或并发限制,尝试在两个请求之间加入Start-Sleep -Seconds 5之类的延迟,避免请求过于密集。
  • 验证工作流和触发器名称正确性:仔细核对$(WORKFLOW_NAME2)和触发器名称(这里是manual)是否完全匹配,包括大小写、特殊字符。名称不匹配会导致runtime无法找到资源,间接返回服务不可用错误。
  • 检查Logic App服务实例状态:登录Azure门户,查看该Logic App所在的App Service计划是否有资源耗尽(CPU、内存过高)、实例重启或健康状态异常的情况。如果宿主环境资源不足,会影响后续请求的处理。
  • 使用最新API版本:当前使用的API版本是2018-11-01,尝试更新为较新的版本(如2021-03-01),旧版本API可能存在已知的并发请求处理问题。
  • 单独测试第二个请求:临时修改脚本,只保留第二个工作流的SAS Token获取逻辑,运行任务看是否仍报错。如果单独请求正常,说明是并发请求或脚本上下文的问题;如果仍报错,聚焦第二个工作流本身的配置问题。
  • 检查服务主体权限:确认${{ parameters.serviceAccount }}对应的服务主体是否对第二个工作流有Microsoft.Logic/workflows/triggers/listCallbackUrl/action权限,虽然第一个请求成功,但权限可能针对单个工作流配置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 00:30:54