You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Data Factory:如何检查文件夹是否存在并判断后缀是否为*-imported

解决方案:Azure Data Factory中基于文件夹规则的布尔判断

针对Cost Management导出到存储账户的多层文件夹场景,无法用Validation活动实现需求的情况下,可通过Get Metadata + Filter + 变量判断的组合逻辑完成,步骤如下:

1. 用Get Metadata活动获取文件夹列表

配置一个Get Metadata活动,数据源指向存储账户的目标容器:

  • 字段列表选择Child Items,用于获取容器下所有子项(文件/文件夹)
  • 如果目标文件夹是多层嵌套结构,勾选数据源设置中的递归选项,确保能遍历到所有层级的文件夹

2. 用Filter活动筛选符合要求的文件夹

将Get Metadata的输出作为Filter活动的输入,设置筛选条件(多条件用and组合):

@and(
    equals(item().type, 'Folder'),
    not(endswith(item().name, '-imported')),
    matchesPattern(item().name, '^\d{4}-\d{2}-\d{2}-TO-\d{4}-\d{2}-\d{2}$')
)
  • 第一个条件:筛选出类型为文件夹的子项
  • 第二个条件:排除名称以-imported结尾的文件夹
  • 第三个条件:匹配Cost Management导出的FROM-TO日期格式文件夹(可根据实际日期格式调整正则表达式,比如^\d{8}-TO-\d{8}$对应YYYYMMDD-TO-YYYYMMDD格式)

3. 生成布尔判断结果

  • 提前在流水线中初始化一个布尔变量(如isValidFolderExists),默认值设为false
  • 添加Set Variable活动,将变量值设置为:
@greater(length(activity('Filter').output.Value), 0)

当筛选后的文件夹列表长度大于0时,变量值为true(存在符合要求的文件夹),否则为false

4. 根据布尔值执行分支逻辑

用If Condition活动判断@variables('isValidFolderExists'):

  • 当值为true时,执行后续业务操作(如CSV文件处理、复制等)
  • 当值为false时,跳过操作或执行其他分支逻辑

内容的提问来源于stack exchange,提问作者Francesco Mantovani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 17:40:01