ADF流程错误日志邮件需求:推送缺失文件详情通知
在Azure Data Factory中实现带缺失文件详情的错误日志邮件
需求拆解
流程通过字符串参数ProcessScope(可选值ALL/some)控制文件处理范围:
- 选
ALL时,检查全量4个文件(1.txt、2.txt、3.txt、4.txt),邮件反馈缺失的文件 - 选
some时,检查指定文件(需提前传入逗号分隔的文件名列表),邮件反馈该范围内的缺失文件
分步实现方案
1. 配置流程参数
- 创建字符串参数
ProcessScope,限定可选值为ALL和some(注意逻辑中大小写要统一匹配) - 针对
some场景,新增字符串参数TargetFiles,格式为逗号分隔的文件名(例如1.txt,4.txt)
2. 获取文件夹现有文件列表
- 添加Get Metadata活动,关联目标存储的数据集,勾选
Child items字段 - 新建数组变量
ExistingFiles,赋值为:@activity('Get Metadata').output.childItems.name,以此获取当前文件夹所有文件的名称集合
3. 生成待检查的文件数组
- 用Set Variable活动创建数组变量
ExpectedFiles,根据参数分支赋值:- 当
ProcessScope为ALL:直接赋值全量文件数组@createArray('1.txt','2.txt','3.txt','4.txt') - 当
ProcessScope为some:拆分TargetFiles参数为数组@split(variables('TargetFiles'),',')
可选优化:若担心输入有空格,可先去除空格再拆分:
@split(replace(variables('TargetFiles'),' ',''),',') - 当
4. 筛选缺失文件
- 添加Filter活动,输入数据源选择
ExpectedFiles变量,筛选条件设为:@not(contains(variables('ExistingFiles'), item()))若文件名大小写不敏感,可统一转小写匹配:
@not(contains(toLower(variables('ExistingFiles')), toLower(item()))) - 将筛选结果(缺失文件数组)存入变量
MissingFiles
5. 触发错误邮件
- 添加If Condition活动,判断条件为:
@greater(length(variables('MissingFiles')),0)- 条件成立时,调用Send Email活动,邮件正文拼接缺失文件列表:
示例正文:以下文件缺失,请核查:<br>@join(variables('MissingFiles'), '<br>') - 条件不成立时,可跳过邮件或发送处理完成通知(按需配置)
- 条件成立时,调用Send Email活动,邮件正文拼接缺失文件列表:
内容的提问来源于stack exchange,提问作者Avenue Guy
相关产品推荐
相关产品推荐

