问题描述
当标准版的Logic App在执行时候出现异常,无法正常停止的情况下的一种特殊的方式来停止Job。
比如在点击页面上的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
选择 Debug Console, 然后一步一步进入 wwwroot 目录,点击编辑案例,编辑 host.json 文件
第二步:为 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
当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!