繁体   English   中英

Azure Devops 管道任务 (Azure CLI@2) 失败

[英]Azure Devops Pipeline task (Azure CLI@2) failing

我在 Azure 管道中有以下步骤

  - 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

以下是我在日志中看到的内容

/usr/bin/az account set --subscription 4xxxxxxxxxxxxxxxxxxxxxxxx0313
/usr/bin/pwsh -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Unrestricted -Command . '/myagent/_work/_temp/azureclitaskscript1674363859719.ps1'
{"Name":"Workflow1","value":"oxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxA"}
ERROR: Bad Request({"Code":"BadRequest","Message":"Encountered an error (ServiceUnavailable) from host runtime.","Target":null,"Details":[{"Message":"Encountered an error (ServiceUnavailable) from host runtime."},{"Code":"BadRequest"},{"ErrorEntity":{"Code":"BadRequest","Message":"Encountered an error (ServiceUnavailable) from host runtime."}}],"Innererror":null})
{"Name":"Workflow2","value":""}
##[error]Script failed with exit code: 1
/usr/bin/az account clear

如果您看到日志,第一个 API 调用工作正常,我得到逻辑应用程序工作流的 SAS 令牌。 但是,第二次调用失败并出现错误,如下面的日志所示。 令我困惑的是,为什么第一个电话有效而第二个电话失败了。 所以我认为这不是因为任何配置,好像是这样,我相信所有调用都应该失败。

请问有什么指点吗? 谢谢!

不确定它起作用的确切原因。 但是在 2 个 API 调用之间引入 10 秒的延迟就达到了目的。 请参阅下文。

  - task: AzureCLI@2
    displayName: get Logic App SAS Token
    name: getLASASToken1
    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_NAME)/triggers/manual/listCallbackUrl?api-version=2018-11-01 --debug
        $workflowResponse1 = $workflowDetails1 | ConvertFrom-Json
        $nameValueBody1 = '{"Name":"Workflow1-SASToken","value":"' + $workflowResponse1.queries.sig + '"}'
        echo $nameValueBody1
  - task: PowerShell@2
    inputs:
      displayName: 'Delay'
      targetType: 'inline'
      script: |
        Start-Sleep -Seconds 10
      pwsh: true
  - task: AzureCLI@2
    displayName: get Logic App SAS Token 2
    name: getLASASToken2
    inputs:
      azureSubscription: ${{ parameters.serviceAccount }}
      scriptType: pscore
      scriptLocation: inlineScript
      inlineScript: |              
        $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_NAME)/triggers/manual/listCallbackUrl?api-version=2018-11-01 --debug
        $workflowResponse2 = $workflowDetails2 | ConvertFrom-Json
        $nameValueBody2 = '{"Name":"Workflow2-SASToken","value":"' + $workflowResponse2.queries.sig + '"}'
        echo $nameValueBody2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM