
# 导入自定义业务应用配置模板
#### 添加业务应用配置模板
业务应用配置模板是描述业务应用自定义配置项的元数据，应用配置包括基本配置项元数据、默认数据。当用户添加自定义应用时，可通过添加自定义应用配置模板完成元数据的定义。
#### 应用数据源模板导入
数据源模板描述了数据源配置项的元数据，用户在配置数据源之前，需要先导入数据源模板。IoT边缘服务当前已经预置通用数据源模板，可直接使用，系统也支持用户自定义导入模板。以下为用户添加自定义模板的详细流程及关键配置信息解释。
1. 访问[IoT边缘](https://www.huaweicloud.com/product/iotedge.html)，单击"管理控制台"进入IoT边缘控制台。
2. 在左侧导航栏选择"边缘节点 \> 应用管理"进入页面，
3. 选择" 业务应用 \> 业务模板管理 \> 添加业务模板"。' 
   图1添加业务模板   
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001533355216.png "点击放大")
   
   
4. 添加文件，单击"确认"。 
   图2添加业务模板文件   
   ![](https://support.huaweicloud.com/bestpractice-iotedge/figure/zh-cn_image_0000001532598610.png "点击放大")
   - 本地准备一份业务模板文件，文件内容合规。
   
   - IoT边缘云平台当前已经1个系统应用的配置模板，如果需要对对应的应用进行配置需要导入通用模板后使用。
   
   - 支持用户自定义导入模板，导入模板后缀.json，满足json格式规范，样例及字段解释如下： 示例
     ```
     {
         "tpl_id": "app_general_tpl",
         "name": "应用模板",
         "description": "应用模板",
         "config_tabs": [{
             "key": "connect_info",
             "name": "连接信息",
             "description": "连接信息",
             "type": "object",
             "config_items": [{
                 "key": "endpoint",
                 "name": "服务端点",
                 "description": "服务完整URL",
                 "data_type": "string",
                 "required": true,
                 "crypted": false,
                 "max_length": 128,
                 "example": "127.0.0.1:502"
             }]
         },
         {
             "key": "channels",
             "name": "通道配置信息",
             "description": "通道配置信息",
             "type": "array",
             "quantity": 20,
             "config_items": [{
                 "key": "device_id",
                 "name": "设备id",
                 "description": "和Edge网关交互的鸿蒙设备id",
                 "data_type": "string",
                 "required": true,
                 "crypted": false,
                 "max_length": 200,
                 "example": "e08a4c6953dc193405c2c5a2e8bf2c4"
             },
             {
                 "key": "name",
                 "name": "name",
                 "description": "通道名称",
                 "data_type": "string",
                 "required": true,
                 "crypted": false,
                 "max_length": 200,
                 "example": "test_name"
             }]
         }],
         "default_values": {
             "app_name": "user_app"
         }
     }
     ```
     表1业务应用配置模板 
     | **key**        | **类型**                | **描述**                                                                                                                                                                                                                                                                |
     |:---|:---|:---|
     | tpl_id         | String                | 数采模板标识，租户下唯一 pattern: '\^\[a-zA-Z0-9_-\]\*$' 1-64 |
     | name           | String                | 模板名称，支持中英文 1-64                                                                                                                                             |
     | description    | String                | 模板描述，支持中英文，0-128                                                                                                                                                                                                                                                      |
     | config_tabs    | List\<config_tab\>    | 配置项元数据                                                                                                                                                                                                                                                                |
     | default_values | Map\<String, Object\> | 默认值,用于承载一些不需要动态配置的数据                                                                                                                                                                                                                                                  |
        
     表2config_tab 
     | **key**      | **类型**              | **描述**                                                    |
     |:---|:---|:---|
     | key          | String              | 配置表格键值                                                    |
     | name         | String              | 配置表格名称，1-64                                               |
     | description  | String              | 描述，0-255                                                  |
     | config_items | List\<config_item\> | 配置项列表                                                     |
     | type         | String              | 配置表类型，可为"object"或"array"，默认为"object"。为"array"时可传输多组配置项列表。 |
     | quantity     | Int                 | 配置项列表组数量，当配置表类型为"array时有效"。                               |
        
     表3config_item 
     | **key**         | **类型**  | **描述**                                                                                                                           |
     |:---|:---|:---|
     | key             | String  | 配置项key，1-32                                                                                                                      |
     | name            | String  | 默认项名称,1-64                                                                                                                       |
     | description     | String  | 配置项描述，0-128                                                                                                                      |
     | data_type       | String  | 配置项类型，支持short\|ushort\|int\|int64\|uint\|long\|ulong\|float\|double\|bool                                                        |
     | required        | Boolean | 配置项是否必传项                                                                                                                         |
     | crypted         | Boolean | 配置项是否加密                                                                                                                          |
     | max_length      | Integer | 当data_type= string时配置有效，校验输入的字符串最大长度，如果配置项需要加密，请注意字段长度max_length应当满足加密后字段的长度要求，因为实际加密后会将加密后的字段返回给前端展示，如果按照加密前的最大长度进行判定会出现展示异常问题。 |
     | example         | String  | 配置项举例，值在界面输入框作为示例灰色显示，0-256                                                                                                      |
     | enum_value（非必填） | String  | 配置项枚举量，可生成下拉框，减少手工输入错误。                                                                                                          |
        
     表4default_values 
     | **key**  | **类型** | **描述**                          |
     |:---|:---|:---|
     | app_name | String | 用于配置一些默认值，不需要进行动态配置的数据。(此项仅为示例) |
        
     
    
   
   
 
