系统订阅
操作场景
IEF提供系统订阅,您可以订阅IEF资源的变更事件,当资源创建、更新、删除时,IEF会发送消息到您指定的APIG端点,以便您及时感知资源的变化。
系统订阅是边云消息的一种特定实现,IEF发送特定资源的事件消息到指定Topic,并调用APIG的API,用户可通过API调用感知资源的变化。
支持订阅的事件
当前支持订阅如下事件。
系统事件 |
Topic |
资源类型 |
操作 |
---|---|---|---|
实例创建 |
$hw/events/instance/+/created |
应用实例(instance) |
created |
实例更新 |
$hw/events/instance/+/updated |
应用实例(instance) |
updated |
实例删除 |
$hw/events/instance/+/deleted |
应用实例(instance) |
deleted |
应用删除 |
$hw/events/deployment/+/deleted |
容器应用(deployment) |
deleted |
应用创建 |
$hw/events/deployment/+/created |
容器应用(deployment) |
created |
应用更新 |
$hw/events/deployment/+/updated |
容器应用(deployment) |
updated |
节点创建 |
$hw/events/edgeNode/+/created |
边缘节点(edgeNode) |
created |
节点更新 |
$hw/events/edgeNode/+/updated |
边缘节点(edgeNode) |
updated |
节点删除 |
$hw/events/edgeNode/+/deleted |
边缘节点(edgeNode) |
deleted |
节点上线 |
$hw/events/edgeNode/+/online |
边缘节点(edgeNode) |
online |
节点离线 |
$hw/events/edgeNode/+/offline |
边缘节点(edgeNode) |
offline |
设备创建 |
$hw/events/device/+/created |
终端设备(device) |
created |
设备更新 |
$hw/events/device/+/updated |
终端设备(device) |
updated |
设备删除 |
$hw/events/device/+/deleted |
终端设备(device) |
deleted |
系统订阅流程
系统订阅流程如下:
- 在APIG创建供IEF调用的API。
- 在IEF中创建APIG端点。
- 在IEF中创建系统订阅。
创建APIG端点
- 登录IEF管理控制台,在“总览”页面切换实例为铂金版。
- 选择左侧导航栏“边云消息 > 消息端点”。
- 单击页面右上角“创建消息端点”,填写相关参数。
图1 创建消息端点
- 消息端点类型:选择APIG。
- 消息端点名称:输入消息端点名称。
- 单击“确定”,即创建消息端点成功,返回到消息端点列表页面。
订阅后说明
创建系统订阅后,当有系统事件发生,在IEF控制台系统订阅列表中,会记录消息转发的次数。
同时IEF会调用APIG中注册的API,请求消息体如下所示。请求消息体采用标准的CloudEvents格式,CloudEvents详细信息请参见这里。
{ "data": { "event_type": "instance", "operation": "created", "timestamp": 134567677, "topic": "$hw/events/deployment/+/created", "name": "xxxx", "attributes": {"ID":"x"} }, "datacontenttype": "application/json", "source": "sysevents", "id": "xxxx", "time": "2020-11-5 xxx" }
- data:系统事件的数据。
- event_type:资源类型,String类型。
- operation:资源的操作类型,String类型。
- topic:消息发送的Topic,String类型。
- timestamp:事件产生的时间戳,Uint64类型。
- name:资源名称,String类型。
- attributes:资源的属性,删除资源时消息中无此参数,Object类型。
- datacontenttype:系统事件数据内容的格式,String类型。
- source:系统事件的来源,String类型。
- id:系统事件ID,String类型。
- time:系统事件产生时间,String类型。
当前支持的资源类型、操作和Topic如下表所示。
系统事件 |
Topic |
资源类型 |
操作 |
---|---|---|---|
实例创建 |
$hw/events/instance/+/created |
应用实例(instance) |
created |
实例更新 |
$hw/events/instance/+/updated |
应用实例(instance) |
updated |
实例删除 |
$hw/events/instance/+/deleted |
应用实例(instance) |
deleted |
应用删除 |
$hw/events/deployment/+/deleted |
容器应用(deployment) |
deleted |
应用创建 |
$hw/events/deployment/+/created |
容器应用(deployment) |
created |
应用更新 |
$hw/events/deployment/+/updated |
容器应用(deployment) |
updated |
节点创建 |
$hw/events/edgeNode/+/created |
边缘节点(edgeNode) |
created |
节点更新 |
$hw/events/edgeNode/+/updated |
边缘节点(edgeNode) |
updated |
节点删除 |
$hw/events/edgeNode/+/deleted |
边缘节点(edgeNode) |
deleted |
节点上线 |
$hw/events/edgeNode/+/online |
边缘节点(edgeNode) |
online |
节点离线 |
$hw/events/edgeNode/+/offline |
边缘节点(edgeNode) |
offline |
设备创建 |
$hw/events/device/+/created |
终端设备(device) |
created |
设备更新 |
$hw/events/device/+/updated |
终端设备(device) |
updated |
设备删除 |
$hw/events/device/+/deleted |
终端设备(device) |
deleted |