问题描述
当标准版的Logic App在执行时候出现异常,无法正常停止的情况下的一种特殊的方式来停止Job。
image.png
比如在点击页面上的Cancel按钮时,报错 Bad Request({"error":{"code":"WorkflowRunCanNotBeCancelled","message":"The workflow 'xxxxxxxxxxx' run 'xxxxxxxxxxxxxxxxxxxxCU01' with state 'Failed' could not be canceled, because it is not active."}}) 等信息。
下面,分享一种特殊的方法来停止它!
问题解答
第一步:进入Logic App的Kudu页面,进入C:\home\site\wwwroot> 目录,选择 host.json 文件
1:Logic App --> Development Tools --> Advanced Tools, 点击Go
image.png
选择 Debug Console, 然后一步一步进入 wwwroot 目录,点击编辑案例,编辑 host.json 文件
image.png
第二步:为 host.json 添加 Jobs.SuspendedJobPartition 和 Jobs.CleanupJobPartition 参数
Jobs.SuspendedJobPartition 和 Jobs.CleanupJobPartition 的参数值格式为:"<WORKFLOWID>:2D<RUNID>", 注意,这些值都是需要大写。
示例内容如:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle.Workflows",
"version": "[1.*, 2.0.0)"
},
"extensions": {
"workflow": {
"settings": {
"Jobs.SuspendedJobPartition": "XXXXXXXXXXXXXXXXXXXXXECFF:2DXXXXXXXXXXXXXXXXXXXXXXXXCU01",
"Jobs.CleanupJobPartition": "XXXXXXXXXXXXXXXXXXXXXECFF:2DXXXXXXXXXXXXXXXXXXXXXXXXCU01"
}
}
}
}
参考资料
Workflow Runs - Cancel - REST API (Azure Logic Apps) : https://learn.microsoft.com/en-us/rest/api/logic/workflow-runs/cancel?view=rest-logic-2016-06-01&tabs=HTTP
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!