如何使用Azure Data Factory替代Logic Apps创建邮件通知告警
Azure Data Factory 直接发送邮件通知的操作方法
核心实现逻辑:用Web活动调用Office 365 Outlook API
ADF本身没有内置邮件发送组件,需通过Web活动调用微软Graph API的邮件发送接口来实现,具体操作步骤如下:
1. 配置Azure AD应用权限(用于API授权)
- 登录Azure门户,进入Azure Active Directory → 应用注册,创建新的应用
- 在应用的API权限页面,添加Microsoft Graph的
Mail.Send应用权限(注意选「应用权限」而非「委托权限」),完成管理员同意 - 生成客户端密码:进入应用的证书和密码,创建新客户端密码,保存好密码值(仅显示一次)
2. 在ADF管道中配置Web活动
- 打开目标Data Factory管道,拖入一个Web活动
- 配置Web活动参数:
- URL:填写Outlook API端点:
https://graph.microsoft.com/v1.0/users/{你的发件人邮箱}/sendMail - 方法:选择
POST - 标头:添加
Content-Type,值为application/json - 正文:按以下JSON格式填写(替换占位符内容):
{ "message": { "subject": "ADF管道执行通知:{管道名称}", "body": { "contentType": "HTML", "content": "<p>管道{管道名称}执行状态:{状态}</p><p>错误详情:{错误信息}</p>" }, "toRecipients": [ { "emailAddress": { "address": "收件人邮箱@xxx.com" } } ] }, "saveToSentItems": "true" } - 身份验证:选择
OAuth,填入以下信息:- 租户:你的Azure AD租户ID
- 服务主体ID:应用注册的客户端ID
- 服务主体密钥:之前生成的客户端密码
- 资源:填写
https://graph.microsoft.com
- URL:填写Outlook API端点:
3. 绑定管道执行状态触发通知
- 选中管道内的核心业务活动,添加失败分支,将配置好的Web活动拖入分支中
- 用动态内容填充邮件变量:
- 管道名称:
@pipeline().Pipeline - 执行状态:
@activity('{核心活动名称}').Status - 错误信息:
@activity('{核心活动名称}').Error.Message
- 管道名称:
4. 测试验证
- 手动触发管道并故意让核心活动失败,检查收件邮箱是否收到通知邮件
- 确认邮件中的动态内容是否正确填充
内容的提问来源于stack exchange,提问作者Azure Cloud Enthusiast
相关产品推荐
相关产品推荐

