Azure Logic App可以有多个启动触发器吗?

时间:2017-04-10 09:21:11

标签: azure azure-logic-apps

Azure Logic App可以有多个启动触发器吗?

我已在MSDN阅读了触发器文档但无法查看有多个触发器的内容

4 个答案:

答案 0 :(得分:7)

通常是的,您可以在Logic App工作流程中拥有多个触发器。实际上,according to the official documentation,最多可以有10个 在单个逻辑应用程序中触发。例如,在以下逻辑应用程序中,我使用了两个触发器:第一个是SFTP连接器触发器,在一系列操作之后,我在Service Bus队列上有第二个触发器(使用发送消息操作,我发送一条消息一个执行长时间运行任务的webjob,它通过另一个允许它继续执行的队列上的消息通知Logic应用程序。)

enter image description here 也许你的意思是,如果有可能有多个"开始"触发器实现某种"或逻辑"触发器之间。在这种情况下,我认为答案是否定的,为了达到这个目的,我将与@Steven Van Eycken所建议的一样:在其中两个中分离逻辑应用程序,由您需要的两个触发器触发,例如然后发送一个队列上的消息,触发具有公共工作流的第三个逻辑应用程序。

答案 1 :(得分:1)

我想我参加派对有点晚了,但我已经能够为逻辑应用创建多个触发器。

在我的工作中,我正在使用SFTP连接器在创建或更改文件时触发。 SFTP连接器只允许监视一个文件夹,但我不想为我要监视的每个文件夹复制逻辑应用程序,所以我在我的应用程序中添加了三个SFTP触发器,每个触发器监视同一SFTP上的不同文件夹站点。

AFAIK你只能在代码视图中执行此操作,一旦你有多个触发器就无法返回到设计器视图,但实际上我按照我的意愿设置了我的逻辑应用程序,然后进入代码视图,重复触发器定义并更改了我需要更改的位(名称,文件夹名称和文件夹ID)。

概述屏幕中的触发历史记录允许您选择要查看的触发器,但无论触发哪个触发器,逻辑应用程序的其余部分都会运行。您也无法查看历史运行的工作流程视图,但只需点击几下,您就可以看到应用程序中每个阶段的情况。

它只能在代码视图中完成,但这是可能的,当然可以使用相同类型的触发器。我不确定混合触发器类型,但我想只要你不依赖于其他人不存在的输出那么它应该没问题。我还用多个电子邮件触发器测试了它。请记住,如果连接器需要不同的连接,则需要在代码中包含每个连接。首先,可能需要在单独的应用程序中构建每个应用程序,然后粘贴相关的代码位。

答案 2 :(得分:1)

这个答案是@Steve答案的延续。史蒂夫已经解释了如何做到这一点,我只想添加一些代码片段以便更清晰。

另外,当我测试这个解决方案时,点击"运行"触发器列表中的第二个文件夹对我来说没有用。从代码视图。因为我认为" Run"默认情况下运行第一个触发器。因此,出于测试目的,我将触发时间设置为15秒,以便在代码视图中保存后更容易进行测试。

"triggers": 
{
"When_a_file_is_added_or_modified_folder1": {
  "inputs": {
    "host": {
      "connection": {
        "name": "@parameters('$connections')['sftp']['connectionId']"
      }
    },
    "method": "get",
      "path": "/datasets/default/triggers/onupdatedfile",
      "queries": {
        "folderId": "L2hvbWUvbmF3YQ==",
        "includeFileContent": true,
        "inferContentType": true,
        "queryParametersSingleEncoded": true
    }
 },
   "metadata": {
        "L2hvbWUvbmF3YQ==": "/home/folder1"
    },
    "recurrence": {
      "frequency": "Second",
      "interval": 15
    },
    "type": "ApiConnection"
  },
"When_a_file_is_added_or_modified_folder1_sub": {
    "inputs": {
      "host": {
        "connection": {
          "name": "@parameters('$connections')['sftp']['connectionId']"
        }
      },
      "method": "get",
        "path": "/datasets/default/triggers/onupdatedfile",
        "queries": {
        "folderId": "L2hvbWUvbmF3YS9zdWIx",
        "includeFileContent": true,
        "inferContentType": true,
        "queryParametersSingleEncoded": true
      }
  },
    "metadata": {
      "L2hvbWUvbmF3YS9zdWIx": "/home/folder1/sub"
    },
    "recurrence": {
      "frequency": "Second",
      "interval": 15
  },
    "type": "ApiConnection"
 }
}

感谢Microsoft Azure对其他信息的支持。

答案 3 :(得分:0)

我们可以创建多个启动触发器。从重复操作开始,然后添加多个触发器。参见下图。

Multiple starter triggers in LogicApp