如何从ADLS Gen2的CSV取列值写入邮件正文,用Logic Apps发带附件邮件
实现Azure Logic Apps自动发送带Blob CSV附件及动态列值邮件的步骤
以下是针对需求的具体实现流程:
1. 配置Logic Apps触发条件
- 使用Azure Blob存储连接器的「当Blob被添加或修改(属性只)」触发器,指定ADF输出CSV所在的Blob容器和目标文件夹
- 在触发器的「筛选器」中设置
Blob类型=文件和文件名后缀=.csv,避免非目标文件触发流程 - 若为每日固定生成文件,也可结合「定期」触发器,设置每日特定时间触发后再去Blob存储获取最新文件
2. 获取Blob文件内容与验证
- 添加「获取Blob内容」动作,关联触发器输出的Blob项,确保能读取到CSV文件的完整内容
- (可选)添加「获取Blob元数据」动作,读取文件大小属性,通过条件分支判断
Size是否小于10MB,不符合则触发错误告警流程
3. 解析CSV提取动态列值
- 添加「解析CSV」动作,将「获取Blob内容」的输出作为输入内容
- 点击「生成Schema」,上传一个ADF输出的CSV样本文件,让Logic Apps自动生成匹配的字段Schema
- 解析完成后,即可通过动态内容面板直接引用目标列值(如
@{body('解析CSV')?['Works/not']});如果CSV有多条记录,可根据需求取第一条或做汇总处理
4. 配置Outlook发送邮件
- 添加Outlook连接器的「发送电子邮件(V2)」动作:
- 填写收件人、邮件主题(可动态引用文件名,如
@{trigger()?['Name']} 运行状态报告) - 邮件正文插入解析得到的动态列值,示例:
本次系统运行状态:@{body('解析CSV')?['Works/not']} - 在「附件」区域添加附件项:
- 名称:选择触发器中的
Name字段(即CSV文件名) - 内容:选择「获取Blob内容」的输出内容
- 名称:选择触发器中的
- 填写收件人、邮件主题(可动态引用文件名,如
关键注意事项
- 确保「解析CSV」的分隔符与ADF输出的CSV格式一致(默认逗号,若为其他分隔符需手动调整)
- Outlook连接器的单附件大小限制为10MB,符合需求,无需额外处理
- 若需实时触发,可改用Blob存储的事件网格触发器,当ADF输出文件完成后立即触发Logic Apps流程
内容的提问来源于stack exchange,提问作者AzSurya Teja
相关产品推荐
相关产品推荐

