Azure Data Factory中获取SFTP文件名并传递至逻辑应用发邮件
解决SFTP Get Metadata获取文件名并传递至逻辑应用的问题
关键前提配置
确保你的Get Metadata活动字段列表已勾选childItems(目标为文件夹时)或name(目标为单个文件时),否则输出中不会包含文件名相关属性。
单个文件场景的实现步骤
设置变量
- 创建字符串类型变量(例如
TargetFileName) - 变量赋值表达式:
注:若Get Metadata指向文件夹且确定仅含单个文件,改用@activity('你的Get Metadata活动名').output.name@activity('你的Get Metadata活动名').output.childItems[0].name
- 创建字符串类型变量(例如
Web活动传递变量
在Web活动的JSON请求体中直接引用变量:{ "fileName": "@variables('TargetFileName')" }逻辑应用接收
在逻辑应用中解析Web活动的请求体,提取fileName字段并插入到邮件正文即可。
多文件场景的处理(需过滤目标文件)
如果文件夹内存在多个文件,先通过Filter活动筛选出目标文件:
- Filter活动的项设为
@activity('你的Get Metadata活动名').output.childItems - 条件设为匹配规则,例如
@equals(item().name, '目标文件名')或@endsWith(item().name, '.csv') - 取过滤后的结果文件名:
@first(activity('Filter').output.value).name,再赋值给变量。
常见问题排查
- 检查Get Metadata活动的数据集是否正确指向目标文件/文件夹
- 确认活动名称与表达式中的
'你的Get Metadata活动名'完全一致(大小写敏感) - 查看管道运行日志,检查Get Metadata的output结构,确认是否包含预期的
name或childItems属性
内容的提问来源于stack exchange,提问作者Trenton Williams
相关产品推荐
相关产品推荐

