[英]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.