Azure ML管道完成时触发警报/Logic Apps并附带输出至邮件的咨询
Azure ML管道完成触发通知及输出邮件的实现建议
一、Azure Monitor警报中的JobCompleted事件说明
Azure Monitor的AmlComputeJobEvent日志表中确实存在JobCompleted事件类型,你提供的Kusto查询是有效的。该事件会在Azure ML作业(包括管道运行)完成时生成,可用于触发警报。
你可以根据需求优化查询,比如仅针对成功完成的作业:
AmlComputeJobEvent | where ExperimentName == 'mslearn-train-diabetes' | where EventType == 'JobCompleted' | where JobStatus == 'Completed' // 过滤成功完成的作业,可选
二、两种实现方案的详细建议
方案1:Azure Monitor警报 + 动作组(可选配合Logic Apps)
- 前提:确保你的Azure ML工作区已启用诊断设置,将
AmlComputeJobEvent日志发送到Azure Monitor日志工作区。 - 步骤:
- 在Azure门户的Azure Monitor中创建自定义日志警报,使用上述Kusto查询作为警报规则的信号逻辑。
- 配置警报阈值(比如“查询结果数大于0”),设置触发频率。
- 创建动作组:
- 若仅需基础通知,直接选择“电子邮件/短信/推送/语音”动作,配置收件人即可,但这种方式无法直接附加管道输出。
- 若需要附加管道输出,选择“Logic Apps”动作,将警报触发事件传递给Logic Apps,由Logic Apps调用Azure ML API获取管道输出(如作业输出文件、运行指标等),再生成包含输出内容的邮件。
方案2:直接使用Logic Apps触发
这种方案更适合需要自定义邮件内容、处理管道输出的场景,步骤如下:
- 创建新的Logic Apps,选择内置触发器**“当Azure机器学习作业完成时”**。
- 配置触发器参数:指定目标Azure ML工作区、实验名称,设置过滤条件(如作业状态为“Completed”)。
- 添加动作:调用Azure ML的“获取作业详细信息”或“列出作业输出”API,提取管道运行的输出数据(如模型文件路径、评估指标等)。
- 添加“发送电子邮件”动作(支持Outlook、Office 365等),将提取到的输出内容插入邮件正文或作为附件发送。
三、方案对比与选择
- 若仅需简单的完成通知,无需附加输出:优先选择Azure Monitor警报+邮件动作组,配置简单快捷。
- 若需要自定义邮件格式、附加管道输出内容:优先选择Logic Apps直接触发,灵活性更高,能直接对接Azure ML的作业数据。
内容的提问来源于stack exchange,提问作者R0106
相关产品推荐
相关产品推荐

