更新时间:2024-07-11 GMT+08:00
分享

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

背景信息

智能边缘平台(Intelligent EdgeFabric,简称IEF )满足客户对边缘计算资源的远程管控、数据处理、分析决策、智能化的诉求, 为企业提供边、云协同的一体化边缘计算解决方案。更多介绍,请参见智能边缘平台

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

前提条件

  • 已申请IEF服务,具体操作请参见智能边缘平台
  • 已获取AK(Access Key ID)、SK(Secret Access Key),即访问密钥对,具体操作请参见获取AK/SK

创建IEF连接器

  1. 参考创建连接器入口中操作,进入创建连接器页面。
  2. 在左侧列表中,选择“AI > 智能边缘平台”,单击“+”。

    图1 新建智能边缘平台连接器

  3. 设置IEF对接参数,单击“保存”。

    图2 创建智能边缘平台
    • 名称:连接器的名称。
    • 区域:IEF服务的区域。
    • 访问密钥ID:与私有访问密钥关联的唯一标识符,访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。配置为前提条件中“AK”的值。
    • 密钥:私有访问密钥。与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。配置为前提条件中“SK”的值。
    • 打包当前配置:默认为选中,对信息敏感的场景,建议不勾选。

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

  4. (可选)测试连接器。

    1. 在连接器详情页面,单击“测试”。
    2. 选择接口,设置入参后,单击“测试”。
      图3 配置测试页面
      • 选择接口:调用的IEF的接口名。
      • 入参:调用接口的入参,所有接口的入参合集如下:
        • project_id:项目ID。
        • node_id:边缘节点ID。
        • device_id:边缘设备ID。
        • topic:IEF上的消息路由中的“源端点资源”取值,去掉“/”。获取方法如下:
          1. 登录IEF服务控制台。
          2. 在左侧导航栏中,选择“边云消息 > 消息路由”。
          3. 获取所用的消息路由的“源端点资源”取值。

            “源端点资源”取值以“/”打头,去掉“/”,剩下部分即为该“topic”取值。

        • 发送的消息(json):发送的消息的json格式。

      提示如下信息,表示测试成功。

      图4 测试成功

在脚本中调用连接器

在脚本中,调用连接器实现调用IEF的接口。

  1. 参考开发一个简单脚本实例中操作,创建一个空白脚本。

    图5 新建空白脚本

  2. 在脚本编辑器中,输入如下代码。

    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”为连接器的名称。

  3. 单击脚本编辑器页面上方的,保存脚本。
  4. 保存成功后,单击,运行脚本。
  5. 在输入参数页签,输入请求参数的项目ID,单击测试窗口右上角的

    {
        "project_id":"XXXXXXXXXXX"
    }

    在输出参数页签,显示出边缘节点列表,表示执行脚本成功。

  6. 单击脚本编辑器页面上方的,启用脚本。

在服务编排中调用连接器

在服务编排中,调用连接器实现与IEF的对接。

  1. 参考如何开发服务编排中操作,创建一个空白服务编排。

    图6 添加服务编排

  2. 在服务编排设计页面,从左侧“连接器 > AI”中,拖拽“IEF”图元到画布中。

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

    图7 拖拽IEF图元到画布中

  3. 创建该服务编排的入参和出参变量。

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

    变量类型

    参数名

    参数类型

    Input/Output Type

    说明

    普通变量

    projectID

    文本

    Input Only

    项目ID。

    结构体变量

    result1

    私有结构体变量

    Output Only

    输出的查询结果。

    1. 单击服务编排设计页面的空白处,在编辑器页面右侧选择
    2. 在私有结构体中,单击“新增”。
      创建输出参数结构体类型变量“result1”前,需要先创建私有结构体类型。
      图8 添加私有结构体类型
    3. 设置私有结构体名称,成员不用定义。
      图9 配置私有结构体
    4. 在服务编排设计页面右侧,单击
    5. 在全局上下文页面,单击“对象变量”后的加号。
    6. 选择“私有结构体”,设置页面参数,单击“保存”
      图10 配置私有结构体变量
      • 名称:结构体变量的名称。
      • 私有结构体:选择已创建的结构体类型名称,如result。
      • 默认值:变量的默认取值。
      • 描述:变量的描述说明。
      • 是否为数组:是否为数组型变量,即集合变量。
    7. 在服务编排设计页面右侧,选择
    8. 在全局上下文页面,单击“变量”后的加号。
      图11 创建变量
    9. 双击变量名,修改为“projectID”。
      图12 设置变量

  4. 在服务编排设计页面,选中IEF图元后单击,设置基本信息。

    图13 设置基本信息
    • 标签:图元在页面展示的名称。
    • 名称:图元在系统中的唯一标识,不能和其他图元相同。
    • 连接器:该服务编排使用的连接器的名称。

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

    图14 设置动作参数
    • 动作:调用IEF的具体接口,本示例选择“查询边缘节点列表”。
    • 输入参数:调用接口的输入参数。在“目标”中选择“project_id”,在“源”中拖入全局上下文中的“projectID”。所有接口的输入参数合集如下:
      • project_id:项目ID。
      • node_id:边缘节点ID。
      • device_id:边缘设备ID。
      • topic:IEF上的消息路由中的“源端点资源”取值,去掉“/”。获取方法如下:
        1. 登录IEF服务控制台。
        2. 在左侧导航栏中,选择“边云消息 > 消息路由”。
        3. 获取所用的消息路由的“源端点资源”取值。

          “源端点资源”取值以“/”打头,去掉“/”,剩下部分即为该“topic”取值。

      • 发送的消息(json):发送的消息的json格式。

  6. 连接开始和IEF图元。

    图15 连接图元

  7. 单击页面上方的,保存服务编排。
  8. 保存成功后,单击,运行服务编排。
  9. 设置输入参数项目ID,单击“运行”。

    {
        "project_id":"XXXXXXXXXXX"
    }

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

  10. 单击页面上方的,启用服务编排。

相关文档