【问题标题】:Setting up a trigger to watch new folders Azure Logic Apps设置触发器以监视新文件夹 Azure 逻辑应用
【发布时间】:2018-02-12 15:51:58
【问题描述】:

我正在尝试创建一个逻辑应用程序,它将在创建文件时将它们从我的 FTP 服务器传输到我的 Azure 文件共享。我的触发器正在监视的文件夹的结构是按日期构建的(见下文)。添加文件的每一天,都会创建一个新文件夹,因此我需要触发器来检查新的子文件夹,但我不想每天都进入应用程序来更改触发器查看的文件夹。这可能吗?

这是我的文件夹(称为数据)结构的方式,每天添加一个文件都会创建一个新文件夹。

-DATA-

2016-10-01
2016-10-02
2016-10-03
...

【问题讨论】:

    标签: azure azure-logic-apps


    【解决方案1】:

    FTP 连接器使用可配置的轮询,您可以在其中设置它应该查找文件的次数。触发器当前不支持动态文件夹。但是,您可以尝试以下方法:

    • 通过重复触发逻辑应用(实际上与 FTP 触发原理相同)
    • 操作:创建一个变量来存储日期时间(文件夹命名中使用的格式)
    • 操作:列出文件夹中的文件(在这里您应该能够使用您创建的变量动态设置文件夹名称)
    • 对于文件夹中的每个文件
      • 操作:获取文件内容
      • 无论您需要对文件做什么(调用嵌套逻辑应用程序以防您需要对每个文件执行多个处理操作,如果您需要按文件处理流的重新提交,这很聪明)

    为了避免每次都拾取每个文件,您需要找到一种方法来排除在较早运行中已处理的文件。因此,要么将文件处理后重命名为您可以在下次运行中排除的扩展名,要么将文件移动到根目录中的子文件夹“Processed\datetime”。

    此解决方案需要更多操作,因此成本更高。我还没有尝试过,但我认为这应该可以。或者至少这是我会尝试建立的方法。

    【讨论】:

    • 啊,谢谢!目前正在测试这个,现在唯一的问题是我的条件不起作用(如果 AzureFileShare 包含 CurrentTime),所以我不确定是否可以将 CurrentTime 变量作为名称进行检查。除非我完全做错了哈哈
    【解决方案2】:

    很遗憾,当前的 FTP 连接器无法满足您的要求。而且目前还没有任何真正好的解决方案...:(

    顺便说一句,我已经多次看到这种模式,正如你所看到的,它只会导致比它可以解决的问题更多的问题,实际上是 0。:)

    如果您拥有 FTP 服务器,最好将文件放在一个文件夹中。

    如果您不拥有 FTP 服务器,请礼貌地向所有者提及这种模式会导致问题并且对您没有任何帮助,因此请将文件放在一个文件夹中;)

    【讨论】:

    • 啊,不!我读过一些这样说的东西,但它是几年前发布的,我希望他们能修复它:(我目前正在为每个循环创建多个循环,这些循环只是比较每个商店中的文件并添加丢失的文件,但我们'看看这是否真的有效...感谢您的意见!
    • @AndrewBuikema 这是 BizTalk 多年来“要求”的功能,但我们仍然没有它,所以不能等待。
    猜你喜欢
    • 2020-09-19
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 2021-08-27
    • 2019-02-15
    • 1970-01-01
    • 2019-02-15
    相关资源
    最近更新 更多