
# 对接IEF管理边缘节点
智能边缘平台（Intelligent EdgeFabric，简称IEF ）满足客户对边缘计算资源的远程管控、数据处理、分析决策、智能化的诉求， 为企业提供边、云协同的一体化边缘计算解决方案。
在华为云Astro轻应用中，通过应用与华为IEF（Intelligent EdgeFabric）对接，实现在5G智慧加油站解决方案中，通过华为云IEF服务来纳管边缘节点，并通过IEF云边通信能力来向边缘节点发送业务命令。
 #### 前提条件
- 已申请IEF服务，具体操作请参见[智能边缘平台](https://support.huaweicloud.com/ief/index.html)。
- 已获取AK（Access Key ID）、SK（Secret Access Key），即访问密钥对，具体操作请参见[获取AK/SK](https://support.huaweicloud.com/devg-apisign/api-sign-provide-aksk.html)。
 
#### 费用说明
应用对接IEF连接器后，IEF服务需要单独付费，具体收费标准请参见[华为云定价](https://www.huaweicloud.com/pricing/index.html)。**应用停用后，IEF服务仍将按照既定的计费规则继续计费。如果不再使用该服务，请及时退订实例，避免产生额外的费用。**
 #### 创建IEF连接器
1. 参考[登录华为云Astro轻应用应用设计器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9004.html)中操作，进入应用设计器。
2. 在左侧导航栏中，选择"集成"。
3. 单击"连接器"中的" 连接器实例"，进入连接器实例页面。
4. 在左侧导航栏中，选择"AI \> 智能边缘平台"。
5. 在右侧页面单击"+"，设置IEF对接信息。 
   图1创建IEF连接器   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001969041168.png "点击放大")
   表1创建IEF连接器参数说明 
   | 参数     | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   |:---|:---|
   | 名称     | 新建连接器的名称。命名要求如下： - 长度不能超过64个字符，包括前缀命名空间的长度。 名称前的内容为命名空间，在华为云Astro轻应用中为了避免不同租户间数据的重名，租户在首次创建应用时需要先定义一个命名空间。一个租户只能创建一个命名空间，创建后不支持修改。   - 必须以英文字母开头，只能由英文字母、数字或单下划线组成，且不能以下划线结尾。   |
   | 区域     | IEF服务的区域。                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
   | 访问密钥ID | 与私有访问密钥关联的唯一标识符，访问密钥ID和私有访问密钥一起使用，对请求进行加密签名。配置为[前提条件]中"AK"的值。                                                                                                                                                                                                                                                                                                                                      |
   | 访问密钥   | 私有访问密钥。与访问密钥ID结合使用的密钥，对请求进行加密签名，可标识发送方，并防止请求被修改。配置为[前提条件]中"SK"的值。                                                                                                                                                                                                                                                                                                                                  |
   | 打包当前配置 | 选中该选项后，应用打包时会将当前配置的连接器信息一并打包。例如，如果应用包发布到运行环境，当前配置默认会被同步到运行环境中。如果不勾选，则内容不会打包发布到运行环境，此时需要您参考[管理应用中的连接器](https://support.huaweicloud.com/usermanual-astrozero/astrozero_06_2020.html)中操作，创建对应的连接器。 默认为选中，对信息敏感的场景，建议不勾选。                                                                                                                                                                                                             |
      
   
   
6. （可选）测试连接器。 
   1. 在连接器详情页面，单击"测试"。
   
   2. 选择接口，设置入参后，单击"测试"。
      图2配置测试页面   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301920.png "点击放大")
      - 选择接口：调用的IEF的接口名。
      
      - 入参：调用接口的入参，所有接口的入参合集如下：
        - project_id：项目ID。
        
        - node_id：边缘节点ID。
        
        - device_id：边缘设备ID。
        
        - topic：IEF上的消息路由中的"源端点资源"取值，去掉"/"，剩下部分即为该"topic"取值。获取方法如下：
          1. 在IEF服务控制台的左侧导航栏中，选择"边云消息 \> 消息路由"。
          
          2. 获取所用的消息路由的"源端点资源"取值。
           
        
        - 发送的消息(json)：发送的消息的json格式。
         
      
      
      提示如下信息，表示测试成功。
      图3测试成功   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894142024.png) 
   
   
   
   
 
#### 在脚本中调用连接器
在脚本中，调用连接器实现调用IEF的接口。
1. 参考[创建空白华为云Astro轻应用脚本](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9162.html)中操作，创建一个空白脚本。
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. 单击脚本编辑器页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141944.png)，保存脚本。
4. 保存成功后，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101505.png)，运行脚本。
5. 在输入参数页签，输入请求参数的项目ID，单击测试窗口右上角的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101537.png)。
   
   ```
   {
       "project_id":"XXXXXXXXXXX"
   }
   ```
   在输出参数页签，显示出边缘节点列表，表示执行事件成功。
   
   
6. 单击脚本编辑器页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141988.png)，启用脚本。
 
#### 在服务编排中调用连接器
在服务编排中，调用连接器实现与IEF的对接。
1. 参考[创建空白华为云Astro轻应用服务编排](https://support.huaweicloud.com/usermanual-astrozero/astrozero_05_9131.html)中操作，创建一个空白服务编排。
2. 在服务编排设计页面，从左侧"连接器 \> AI"中，拖拽"IEF"图元到画布中。 
   IEF是系统预置的，与IEF对接的接口。
   图4拖拽IEF图元到画布中   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301824.png "点击放大")
   
   
3. 创建该服务编排的入参和出参变量。 
   由于该服务编排调用的是IEF的查询边缘节点列表接口，需要定义该服务编排的入参和出参，与接口的入参和出参类型保持一致。
   表2服务编排变量 
   | 变量类型  | 参数名       | 参数类型    | Input/Output Type | 说明       |
   |:---|:---|:---|:---|:---|
   | 普通变量  | projectID | 文本      | Input Only        | 项目ID。    |
   | 结构体变量 | result1   | 私有结构体变量 | Output Only       | 输出的查询结果。 |
      
   1. 单击服务编排设计页面的空白处，在编辑器页面右侧选择![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101501.png)。
   
   2. 在"私有结构体 \> 结构体"中，单击"新增"。
      创建输出参数结构体类型变量"result1"前，需要先创建私有结构体类型。
      图5添加私有结构体类型   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936382580.png "点击放大") 
   
   3. 设置私有结构体名称，成员不用定义。
      图6配置私有结构体   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000002134608793.png "点击放大") 
   
   4. 在服务编排设计页面右侧，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301948.png)。
   
   5. 在全局上下文页面，单击"对象变量"后的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000002004972497.png)。
      图7单击对象变量后的加号   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001968415234.png) 
   
   6. 选择"私有结构体"，设置页面参数，单击"保存"。
      图8配置私有结构体变量   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894141916.png "点击放大")
      - 名称：结构体变量的名称。
      
      - 私有结构体：选择已创建的结构体类型名称，如result。
      
      - 默认值：变量的默认取值。
      
      - 描述：变量的描述说明。
      
      - 是否为数组：是否为数组型变量，即集合变量。
      
      - 外部使用：若勾选该选项，表示该变量为外部使用变量，编译时不校验其是否被使用。
       
   
   7. 在全局上下文页面，单击"变量"后的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001968251728.png)。
      图9创建变量   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301868.png "点击放大") 
   
   8. 双击变量名，修改为"projectID"。
      图10设置变量   
      ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101509.png "点击放大") 
   
   
   
   
4. 在服务编排设计页面，选中IEF图元后单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101525.png)，设置基本信息。
   
   图11设置基本信息   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301940.png "点击放大")
   表3IEF图元基本信息参数说明 
   | 参数  | 说明                                                                                                                                                                                                                                                                                                                     |
   |:---|:---|
   | 标签  | 图元在页面显示的名称。                                                                                                                                                                                                                                                                                                            |
   | 名称  | 图元在系统中的唯一标识，不能和其他图元相同。命名要求如下： - 长度不能超过80个字符。  - 必须以英文字母开头，只能由英文字母，数字或下划线组成，且不能以下划线结尾。   |
   | 描述  | 根据实际需求，输入连接器的描述信息。                                                                                                                                                                                                                                                                                                     |
   | 连接器 | 在下拉框中，选择连接器的名称，即[创建IEF连接器]中创建连接器的名称。                                                                                                                                                                                                                                           |
      
   
   
5. 单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301896.png)，设置动作参数。
   
   图12设置动作参数   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936390648.png "点击放大")
   - 动作：调用IEF的具体接口，本示例选择"查询边缘节点列表"。
   
   - 输入参数：调用接口的输入参数。在"目标"中选择"project_id"，在"源"中拖入全局上下文中的"projectID"。所有接口的输入参数合集如下：
     - project_id：项目ID。
     
     - node_id：边缘节点ID。
     
     - device_id：边缘设备ID。
     
     - topic：IEF上的消息路由中的"源端点资源"取值，去掉"/"，剩下部分即为该"topic"取值。获取"源端点资源"取值的方法如下：
       1. 在IEF服务控制台的在左侧导航栏中，选择"边云消息 \> 消息路由"。
       
       2. 获取所用的消息路由的"源端点资源"取值。
        
     
     - msg：发送的消息的json格式。
      
   
   
   
   
6. 连接开始和IEF图元。 
   图13连接图元   
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301852.png)
   
   
7. 单击页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894301832.png)，保存服务编排。
8. 保存成功后，单击![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101569.png)，运行服务编排。
9. 设置输入参数项目ID，单击"运行"。 
   ```
   {
       "project_id":"XXXXXXXXXXX"
   }
   ```
   若输出边缘节点列表，表示成功调用连接器。
   ![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001936101553.png "点击放大")
   
   
10. 单击页面上方的![](https://support.huaweicloud.com/usermanual-astrozero/zh-cn_image_0000001894142016.png)，启用服务编排。
 
