Fabric激活器检测流数据中的模式,并在满足条件时采取措施。 在本教程中,将使用 AI 代理生成端到端管道。 管道监视遥测事件流,检测持续过热,并调用Fabric用户数据函数(UDF)来提交修复作业。 你编写提示词;智能体负责撰写。
本教程以组件制造机器的遥测数据作为贯穿示例,但同样的提示几乎适用于任何每个实体都有稳定 ID 的时序数据,例如 IoT 设备、车队、物流事件、金融逐笔数据、应用指标等。 替换字段名称和阈值以适合数据形状。
在本教程中,你将完成以下任务:
- 在事件中心上创建事件流。
- 创建用户数据函数以提交修复作业。
- 创作触发函数的激活器规则。
如果你刚开始接触 Fabric Activator,请参阅 什么是 Fabric Activator?。 如果你不熟悉Fabric用户数据函数,请参阅 什么是Fabric用户数据函数?。
场景概述
一家制造商在多个工厂运营着多台用于制造小组件的机器。 每台计算机都会将遥测数据(温度、振动、压力、运行状态)发送到Azure事件中心。 当机器运行温度持续偏高时,需要在发生故障前进行一次维护检查。
在本教程中,每个事件都使用一个较小的代表性架构:每台计算机 ID(machine_id)、位置标记()、用于监视的数字plant_id指标(temperature_c)和运行状态字段(state)。 确切的字段名称并不重要——相同的提示词结构适用于任何实体级 ID 加上一个需要设定阈值的指标。
你生成一个Fabric管道,该管道监视遥测流、应用持续阈值规则,并调用用户数据函数来提交修复作业。 该规则按 machine_id 对事件进行分组,并在 temperature_c 持续高于 50°C 达 5 分钟时触发。 当它触发时,它会将 machine_id、plant_id 和当前温度传递给该操作。
Prerequisites
在开始之前,需要:
- 位于 F4(或更高)容量上且具有创作权限的 Fabric 工作区。 若要了解工作区,请参阅 工作区。
- 已安装 Fabric skills 的技能兼容型代理(例如,GitHub Copilot CLI 或 Visual Studio Code 中的 GitHub Copilot)。
- 用于流式传输遥测数据的 Azure 事件中心 命名空间和事件中心。 您需要命名空间 FQDN、中心名称以及
Listen+Send连接字符串。
设置事件流
在此步骤中,您将创建订阅您的事件中心的事件流。 向代理发出提示,并在门户中验证结果。
将以下提示提供给代理,并将占位符替换为来自你的事件中心的值:
Create a Fabric eventstream in my workspace called `WidgetMachineTelemetry` that ingests from this Azure event hub: - Namespace: `<your namespace FQDN>` - Hub name: `<your hub name>` - Connection string: `<your Listen+Send connection string>` When you're done, give me a direct portal link to the eventstream item so I can verify it.代理调用事件流编写技能。 它会创建事件流项目,将事件中心配置为源,并返回 Fabric 门户中该项目的可点击 URL。 无需目标地址——激活器会直接订阅该流。
选择代理提供的链接。 在 实时视图 中,确认事件中心源已连接,并且 widget-machine 遥测事件正在传输。
图 1:
WidgetMachineTelemetry事件流 - 事件流从widget-telemetry事件中心源流流到WidgetMachineMaintenance激活器目标。
创建用户数据函数
在此步骤中,将创建激活器规则调用的用户数据函数。 该函数将修复作业请求发送到下游 API。
为代理提供此提示:
Create a Fabric User Data Function called `MaintenanceDispatcher` in my workspace, written in Python, with a function `file_repair_job(machine_id, plant_id, temperature_c)` that sends those values as JSON in a POST request to `https://contoso.com/maintenance/fileRepairJob` and returns the parsed response. When you're done, give me a direct portal link to the UDF item so I can verify it.代理调用 Fabric UDF 编写技能。 它为Python UDF 项搭建基架,使用
file_repair_job实现httpx,发布 UDF,确认该函数是可调用的,并返回项的可单击 URL。选择智能体提供的链接,然后使用内置的测试窗格,借助示例负载调用
file_repair_job。 例如:machine_id="widget-press-042"、plant_id="plant-eu-01"、temperature_c=52.7. 对contoso.com的调用会返回 HTTP 错误——这是预期的,因为占位符端点无法解析。 关键在于,UDF 已完成部署和注册,并触发了出站 HTTP 调用。图 2:
MaintenanceDispatcher用户数据功能 -file_repair_job将过热计算机的详细信息发送到维护系统。
备注
本教程使用 https://contoso.com/maintenance/fileRepairJob 作为真实维护系统端点的占位符。 将其替换为你自己的任意 HTTPS 端点。 对于经过身份验证的终结点,请通过 UDF 泛型连接从Azure 密钥保管库检索凭据。 有关详细信息,请参阅 Fabric 用户数据函数中的 Access 数据源。
编写 Activator 规则
在此步骤中,将创建激活器规则,用于监视事件流,并在计算机过热时调用 UDF。
为代理提供此提示:
Create an Activator rule in my workspace subscribed to the `WidgetMachineTelemetry` eventstream, that triggers my `file_repair_job` UDF when a machine's temperature stays above 50°C for 5 minutes. When you're done, give me a direct portal link to the rule so I can verify it.代理调用激活器创作技能并创建激活器项。 代理按
machine_id对规则进行分组,构建持续阈值检测,并配置操作,以使用machine_id、plant_id和当前温度调用您的 UDF。 然后,代理程序会返回一个指向该规则的可点击 URL。点击客服人员提供的链接,然后按照这份清单逐项检查:
- 数据正在流入该规则。 在 资源管理器 窗格中打开该规则的底层 Activator 对象,并确认最近的事件显示在实时表中,且
machine_id和temperature_c的值均非 null。 - 规则正在运行。 确认规则处于 “已启动 ”或 “正在运行 ”状态,激活器对象摘要将计算机显示为活动实例。
- 代理记录激活值。 当过热的机器温度连续 5 分钟高于 50°C 时,规则的 历史记录 选项卡中会出现条目;每个条目都会显示触发的
machine_id、触发时的温度,以及成功调用file_repair_job。
图 3:
OverheatingDispatch激活器规则——当机器温度持续高于 50°C 达 5 分钟时触发,并调用file_repair_job,传入该机器的标识、工厂和当前温度。- 数据正在流入该规则。 在 资源管理器 窗格中打开该规则的底层 Activator 对象,并确认最近的事件显示在实时表中,且
清理资源
完成后,请从工作区中删除事件流、用户数据函数和 Activator 项,并从 Azure 门户中删除 Event Hubs 命名空间,以停止计费。