如何一次获取与 Azure 逻辑应用程序 运行 或执行相关的所有操作结果?

How to get all the action results related to a azure logic app run or execution at one shot?

我设计了一个 Azure Logic 应用程序,其中包含许多连接器、循环和条件,例如发送电子邮件、SQL 更新和其他设置。

流程按照我的要求正确执行并为我提供了最终结果。

现在我想要的是一次性检索在特定逻辑应用程序中执行的所有步骤或操作 运行 以及状态。让我通过一个逻辑应用程序的小例子来解释我的查询:

假设有一个名称为 TestLogicAPP 的逻辑应用程序 5 steps,并且其中包含以下操作或步骤:

STEP 1:收到邮件时触发流程:OFfice365中使用的连接器 第 2 步:触发流程后,第一个操作是将其标记为已读:再次使用的连接器是 Office365 第 3 步:向发件人发送回复:再次使用的连接器是 Office365 第 4 步:假设电子邮件中有一个附件,并且通过声明一个变量使用内置变量减速将附件名称存储在一个变量中
第 5 步:将电子邮件中收到的附件存储到 Azure 文件存储或文件共享中:使用 azure 文件存储连接器

当您查看 运行 历史记录时,所有这些步骤都在逻辑应用程序中完美执行,没有任何错误。

我想要的是一次性列出所有这些 actions/steps 以及它的状态

STEP1 名称:成功 STEP2 名称:成功 第 3 步名称:失败以及失败的原因或消息(假设上面给出的示例中的第 3 步失败)

STEP1 名称:成功 STEP2 名称:成功 STEP3 名称:成功 STEP4 名称:成功 STEP5 名称:成功

为此,当我搜索网络时,我得到了微软提供的休息 API,其中提供了这些详细信息:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/运行s/{运行Name }/actions?api-version=2016-06-01

以上API取自下方link: https://docs.microsoft.com/en-us/rest/api/logic/workflowrunactions/list#code-try-0

但是在执行时它并没有列出给定逻辑应用程序中的所有操作 运行。具体来说,它没有在下面列出与连接器相关的操作:

  1. 逻辑应用程序的触发操作(office 365 连接器)
  2. 正在发送电子邮件(office 365 连接器)
  3. 正在将电子邮件中的附件上传到 Azure 文件共享或文件存储

请注意为什么?它是 Microsoft Logic APP REST 中的错误 API 还是构建它是为了有目的地显示或省略这些类型的步骤或操作?

或者有没有其他方法可以得到上面解释的期望结果?

请帮助我解决这个问题或查询。

搜索网络并从下方 link 找到与 Logic 应用相关的其余部分 API,如上所述。

预期结果:获取逻辑应用程序的所有操作或步骤结果运行,包括触发操作

实际结果: 只得到少数 actions/steps 结果 其余 api 结果中遗漏了少数。

我可以知道你是怎么称呼其余的 api 的吗?我测试了一下,得到了预期的结果,post步骤如下供大家参考:

  1. 我在我的 Azure 门户中创建了一个逻辑应用程序(如下面的屏幕截图所示)

  2. 向电子邮件地址发送电子邮件以触发此逻辑应用。

  3. 在我的逻辑应用程序的 运行 历史记录中,它显示如下截图。操作 "Mark as read or unread" 失败,最后一个操作被跳过。

  4. 然后我去了你提供的其余api的页面:https://docs.microsoft.com/en-us/rest/api/logic/workflowrunactions/list然后点击"Try it"。输入所有需要的参数,例如 "resourceGroupName"、"workflowName" 和 "runName"。

  5. 点击"Run"后,结果如下:

{
  "value": [
    {
      "properties": {
        "inputsLink": {
          "uri": "xxxxxxxxx",
          "contentVersion": "xxxxxxx",
          "contentSize": 377,
          "contentHash": {
            "algorithm": "md5",
            "value": "xxxxxx"
          }
        },
        "outputsLink": {
          "uri": "xxxxxxxx",
          "contentVersion": "xxxxxxx",
          "contentSize": 766,
          "contentHash": {
            "algorithm": "md5",
            "value": "xxxxxxx"
          }
        },
        "startTime": "2019-10-28T06:17:56.8609023Z",
        "endTime": "2019-10-28T06:17:56.9044006Z",
        "correlation": {
          "actionTrackingId": "xxxxxxx",
          "clientTrackingId": "xxxxxxx"
        },
        "status": "Failed",
        "code": "BadRequest"
      },
      "id": "/subscriptions/xxxxxxx/resourceGroups/huryTest/providers/Microsoft.Logic/workflows/hurylogicsteps/runs/xxxxxx/actions/Mark_as_read_or_unread_(V2)",
      "name": "Mark_as_read_or_unread_(V2)",
      "type": "Microsoft.Logic/workflows/runs/actions"
    },
    {
      "properties": {
        "startTime": "2019-10-28T06:17:56.9859119Z",
        "endTime": "2019-10-28T06:17:56.9977121Z",
        "correlation": {
          "actionTrackingId": "xxxxxx",
          "clientTrackingId": "xxxxxx"
        },
        "status": "Skipped",
        "code": "ActionSkipped",
        "error": {
          "code": "ActionConditionFailed",
          "message": "The execution of template action 'Send_an_email_(V2)' is skipped: the 'runAfter' condition for action 'Mark_as_read_or_unread_(V2)' is not satisfied. Expected status values 'Succeeded' and actual value 'Failed'."
        }
      },
      "id": "/subscriptions/xxxxxx/resourceGroups/huryTest/providers/Microsoft.Logic/workflows/hurylogicsteps/runs/xxxxxx/actions/Send_an_email_(V2)",
      "name": "Send_an_email_(V2)",
      "type": "Microsoft.Logic/workflows/runs/actions"
    }
  ]
}

我们可以看到 json 类型的响应体中 "values" 下有两个动作。 "Mark_as_read_or_unread_(V2)"的状态是"Failed","Send_an_email_(V2)"的状态是"Skipped"。虽然他们失败或跳过,但他们都显示在这个休息的结果中 api。(在你的问题中,你说 "Sending email" 不在结果中)

顺便说一句: 据我所知,这个 api 只是显示了动作,但触发器不是动作。所以触发器不会显示在这个 api.

的结果中

除此之外,如果我们不使用其余 api,我们还可以通过 "Runs history" 查看 Azure 门户中操作的所有状态 --> "Run Details"

希望对您的问题有所帮助~