Azure Logic Apps配置触发器自动监控日期型新增子文件夹
实现Azure Logic Apps自动监控FTP动态日期子文件夹的方案
当然可以实现!这种按每日日期生成子文件夹的监控需求,Azure Logic Apps完全能轻松搞定,根本不用每天手动修改触发器的监控路径——我之前帮好几个客户处理过类似的场景,给你梳理下具体的实现思路:
核心配置:利用FTP触发器的通配符支持
Azure Logic Apps官方FTP连接器自带的When a file is added or modified (properties only)触发器支持通配符路径,这是解决问题的关键。你只需要把触发器的监控路径设置为:
data/*
这个配置会让触发器自动扫描data目录下所有新创建的一级子文件夹,不管子文件夹是2024-05-20还是2024-05-21这类日期格式的,只要里面有新文件生成,触发器就会被触发。
如果你的日期子文件夹下面还有更深层级的子目录,记得开启触发器的递归扫描选项,这样就能覆盖所有嵌套的文件。
可选优化:精准过滤日期格式的子文件夹
如果你担心data目录下可能出现非日期格式的子文件夹,想要只处理符合yyyy-MM-dd这类格式的文件夹,可以在触发器之后加一个条件判断动作:
- 用
split()函数从文件路径中提取子文件夹名称,比如:
(假设文件路径格式是split(triggerBody()?['Path'], '/')[1]data/2024-05-20/test.csv,这个表达式会取出2024-05-20) - 用
isDate()函数验证这个提取出的字符串是否为有效日期,判断条件设置为:isDate(split(triggerBody()?['Path'], '/')[1]) - 只有当条件为
真时,才执行后续的文件传输操作。
后续文件传输步骤
触发之后的文件传输流程很常规,按以下步骤配置即可:
- 调用FTP连接器的
Get file content动作,传入触发时获取到的文件路径,读取文件内容 - 调用Azure文件共享连接器的
Create file动作,将读取到的内容写入到目标共享目录中(如果权限配置到位,也可以直接用Copy file动作一步完成传输)
这样整个流程就完全自动化了,不管每天生成多少个新的日期子文件夹,逻辑应用都会自动捕获并处理里面的新文件,不用手动干预。
内容的提问来源于stack exchange,提问作者Andrew Buikema
相关产品推荐
相关产品推荐

