更新时间:2022-04-26 GMT+08:00
分享

对接IEF实现边缘节点管理功能

通过应用与华为IEF(Intelligent EdgeFabric)对接,实现在5G智慧加油站解决方案中,通过华为云IEF服务来纳管边缘节点,并通过IEF云边通信能力来向边缘节点发送业务命令。

背景信息

智能边缘平台(Intelligent EdgeFabric通过纳管您的边缘节点,提供将云上应用延伸到边缘的能力,联动边缘和云端的数据,满足客户对边缘计算资源的远程管控、数据处理、分析决策、智能化的诉求,同时,在云端提供统一的设备/应用监控、日志采集等运维能力,为企业提供完整的边缘和云协同的一体化服务的边缘计算解决方案。

前提条件

  1. 已申请IEF服务。
    1. 单击此处,根据页面提示,登录华为云,单击右上角的“控制台”,进入“管理控制台”界面。
    2. 单击管理控制台左上角的,选择区域和项目。
    3. 单击管理控制台左上角的,选择“边缘云服务 > 智能边缘平台”,进入“服务授权”界面。
    4. 在“服务授权”界面单击“同意授权”。
  2. 参考获取AK/SK获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对

配置连接器

  1. 在App开发界面左侧列表单击,选择“AI > 智能边缘平台”。
  2. 单击“+”,在页面中输入与IEF对接的参数,单击“保存”。

    表1 新建连接器页面参数说明

    参数

    说明

    名称

    连接器的名称。

    区域

    IEF服务的区域。

    该业务目前只用在5G智慧加油站解决方案中,因此区域目前只支持“华北-北京一”。

    访问密钥ID

    访问密钥ID。与私有访问密钥关联的唯一标识符,访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。

    请与前提条件中的“AK”取值保持一致。

    密钥

    私有访问密钥。与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。

    请与前提条件中的“SK”取值保持一致。

    打包当前配置

    默认为选中,对信息敏感的场景,建议不勾选。

    选中该选项后,应用打包时会将当前配置的连接器信息一并打出。例如,如果应用包发布到运行环境,当前配置默认为被同步到运行环境中。

  3. (可选)创建连接器后,您可进行简单的测试。

    1. 在该连接器详情页面单击“Test”。
    2. 在“Test”页面输入参数,单击“测试”。
      图1 配置“Test”页面
      表2 “Test”页面参数说明

      参数

      说明

      选择接口

      调用的IEF的接口名,支持调用以下几种:

      • 查询边缘节点列表
      • 查询边缘节点详情
      • 查询边缘设备列表
      • 查询边缘设备详情
      • 向边缘节点发送消息

      入参

      调用接口的入参,所有接口的入参合集如下:

      • project_id:项目ID,获取方法为:登录华为云的管理控制台,在用户名的下拉列表中,单击“我的凭证”,在“API凭证”页签中项目列表区域查看项目ID。
      • node_id:边缘节点ID
      • device_id:边缘设备ID
      • topic:IEF上的消息路由中的“源端点资源”取值,去掉“/”。获取方法:登录华为云的管理控制台,单击管理控制台左上角的,选择区域和项目。单击管理控制台左上角的,选择“边缘云服务 > 智能边缘平台”,然后选择左侧导航栏“边云消息 > 消息路由”,查看所用的消息路由的“源端点资源”取值,“源端点资源”取值以“/”打头,去掉“/”,剩下部分即为该“topic”取值。
      • 发送的消息(json):发送的消息,json格式。

      若弹出如下弹框,表示测试成功。

      图2 测试成功

脚本中调用连接器

您可以在脚本中调用连接器实现调用IEF的接口,脚本样例如下:

export interface IEFClient {
    /*
    
    @param projectID
     */
    getProjectNode(projectID: string): IdentifierInfo

    /*
    
    @param projectID
     */
    getProjectDevice(projectID: string): IdentifierInfo

    /*
    
    @param projectID
     @param nodeID
     */
    getNode(projectID: string, nodeID: string): IdentifierInfo

    /*
    
    @param projectID
     @param deviceID
     */
    getNodeDevice(projectID: string, deviceID: string): IdentifierInfo

    /*
    
    @param nodeID
     @param topic
     @param msg
     */
    getMSG(nodeID: string, topic: string, msg: string): IdentifierInfo
}

这里以新建一个脚本实现查询边缘节点列表为例进行举例说明。

  1. 鼠标放在App下的Logic文件夹旁会出现加号,单击加号,选择“脚本”。
  2. 选择“创建一个新脚本”,输入基本信息,单击“保存”。
  3. 编辑代码如下:

    import { Decimal } from 'decimal';
    import { Error } from 'error';
    import * as ief from 'ief';
    
    export class Input {
    
        @action.param({ type: "String", required: true, description: "type" })
        project_id: string;
    
        //   @action.param({ type: "String", required: true, description: "the operation value 2" })
        //  node_id: string;
    }
    
    export class Output {
        @action.param({ type: "Object", required: true })
        result: Object;
    }
    
    export class Calculator {
        @action.method({ input: "Input", output: "Output", description: "do a operation" })
        run(input: Input): Output {
            let output = new Output();
            let cli = ief.newClient("ief_test");
            output.result = cli.getProjectNode(input.project_id);
            //console.log(output.result);
            return output;
        }
    
    }

    其中ief.newClient("ief_test")中“ief_test”为连接器的名称。

  4. 单击代码编辑页面上方保存图标,保存脚本。
  5. 运行测试脚本。

    1. 单击编辑器上方执行图标。
    2. 在页面底部“输入参数”页签输入请求参数项目ID,单击测试窗口右上角图标。
      {
          "project_id":"XXXXXXXXXXX"
      }
    3. 检查输出,显示出边缘节点列表,表示执行脚本成功。

  6. 单击代码编辑页面上方图标,启用脚本。

服务编排中调用连接器

您可以在业务服务编排Flow中调用连接器实现与IEF的对接,这里以新建一个服务编排实现查询边缘节点列表为例进行举例说明。

  1. 鼠标放在App下的Logic文件夹旁会出现加号,单击加号,选择“服务编排”。
  2. 系统弹出“添加服务编排”的对话框,选择“创建一个新的服务编排”,填入服务编排名称等信息,单击“添加”。
  3. 在服务编排编辑器页面左侧选择“连接器 > AI > IEF”,拖拽“ IEF”图标至画布中。

    “ IEF”是系统预置的与IEF对接的接口。

  4. 创建该服务编排的入参和出参变量。由于该服务编排调用的是IEF的查询边缘节点列表接口,则需要定义该服务编排的入参和出参,与接口的入参和出参类型保持一致。

    此步骤需要创建如下变量。
    表3 服务编排变量

    变量类型

    参数名

    参数类型

    Input/Output Type

    说明

    普通变量

    projectID

    文本

    Input Only

    项目ID。

    结构体变量

    result1

    私有结构体变量

    Output Only

    输出的查询结果。

    1. 单击服务编排编辑器页面设计区域空白处,在编辑器页面右侧选择。在私有结构体页面单击“新增”。
      创建输出参数结构体类型变量“result1”前,首先需要创建私有结构体类型。
      图3 添加私有结构体类型
    2. 设置私有结构体名称,成员不用定义。
      图4 配置私有结构体
    3. 在服务编排编辑器页面右侧选择。在全局上下文页面单击“对象变量”后的加号。
    4. 选择“私有结构体”,设置页面参数。
      图5 配置私有结构体变量
      表4 私有结构体变量参数说明

      参数名称

      解释说明

      名称

      该结构体变量名称。

      私有结构体

      选择刚创建的结构体类型名称“result”。

      默认值

      变量的默认取值。

      描述

      该变量的描述说明。

      是否为数组

      是否为数组型变量即集合变量。

    5. 在服务编排编辑器页面右侧选择。在全局上下文页面单击“变量”后的加号。
      图6 创建变量
    6. 双击变量名,修改为“projectID”。
      图7 设置变量

  5. 在服务编排编辑器页面选择IEF图元,在右侧单击,在“基本信息”页面进行配置。

    参数说明如下。

    • 标签:该图元的展示名。
    • 名称:该图元的唯一标识,不能和其他图元相同。
    • 连接器:该服务编排使用的连接器的名称。选择刚创建的“ief_test”。

  6. 单击,设置动作参数。

    参数

    说明

    动作

    调用的IEF的具体接口。

    • Message to node:向边缘节点发送消息。
    • Project Device:查询边缘设备详情
    • Node Information:查询边缘节点详情
    • Project Node:查询边缘节点列表
    • Device Information:查询边缘设备详情

    选择“Project Node”。

    输入参数

    调用接口的入参。在“目标”从下拉框选择为“project_id”,在“源”中拖入全局上下文中的“projectID”。

    所有接口的入参合集如下:

    • project_id:项目ID,获取方法为:登录华为云的管理控制台,在用户名的下拉列表中,单击“我的凭证”,在“API凭证”页签中项目列表区域查看项目ID。
    • node_id:边缘节点ID
    • device_id:边缘设备ID
    • topic:IEF上的消息路由中的“源端点资源”取值,去掉“/”。获取方法:登录华为云的管理控制台,单击管理控制台左上角的,选择区域和项目。单击管理控制台左上角的,选择“边缘云服务 > 智能边缘平台”,然后选择左侧导航栏“边云消息 > 消息路由”,查看所用的消息路由的“源端点资源”取值,“源端点资源”取值以“/”打头,去掉“/”,剩下部分即为该“topic”取值。
    • 发送的消息(json):发送的消息,json格式。

    输出参数

    输出参数。

    “源”从下拉框选择为“result”,“目标”中拖入全局上下文中的“result1”。用于接收调用成功时的调用结果

  7. 连接开始和IEF图元。
  8. 单击保存图标,保存服务编排。
  9. 单击,运行服务编排。输入入参。

    {
        "project_id":"XXXXXXXXXXX"
    }

    若输出边缘节点列表,表示成功调用连接器。

分享:

    相关文档

    相关产品

close