
# 创建部署工程
在专业版HiLens控制台新建技能后，可以将新建的技能部署到您的设备中，拓展设备的AI能力。
#### 前提条件
- "设备管理"中至少拥有一个设备，且设备状态为"运行中"，激活状态为"已激活"。
- 在创建部署工程前，已在专业版HiLens控制台[新建技能](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0039.html)。
  容器镜像文件请提前上传至容器镜像服务（SoftWare Repository for Container，简称SWR），具体操作请见[上传镜像](https://support.huaweicloud.com/usermanual-swr/swr_01_0012.html)。
  
 
#### 进入专业版控制台
在管理控制台单击左上角的"专业版"，进入专业版控制台。
图1前往专业版   
![](https://support.huaweicloud.com/usermanualpro-hilens/zh-cn_image_0000001258986305.png)
#### 部署技能
1. 在专业版管理控制台左侧菜单栏选择"技能开发 \> 技能管理"。 进入"技能管理"页面。
   
2. 选择技能，单击操作列的"部署"。 进入"部署"页面。
   
3. 填写部署的信息，然后单击右下角的"下一步"。
   表1部署基本信息 
   | 参数         | 说明                                                                                                                                                                                                                                                                                 |
   |:---|:---|
   | 部署名称       | 应用部署的名称，命名必须唯一。只允许英文小写字母、数字、中划线的字符，且长度范围在2\~32， 开头和结尾只允许英文小写字母或数字。                                                                                                                                                                                                                 |
   | 描述         | 应用部署的简要描述，字符最大长度255，不允许出现\^ \~ # $ % \& \* \< \> ( ) \[ \] { } ' " \\等特殊字符。                                                                                                                                                                                                        |
   | 标签         | 为待部署工程添加标签。单击![](https://support.huaweicloud.com/usermanualpro-hilens/zh-cn_image_0000001213786496.png "点击放大")添加标签，填写标签名称和标签值。 只允许大小写字母、数字、下划线和中划线，不允许为空。标签名不允许重复，最大长度为36个字符，标签值最大长度为43个字符。 如果删除标签，可单击"操作"列的"删除"。   |
   | 配置对象       | 可选择"设备列表"、"集群"。                                                                                                                                                                                                                                                                    |
   | 设备列表       | 如果部署工程的配置对象选择"设备列表"，单击"选择设备"，勾选待部署技能的设备，单击"确定"。 必须选择运行中且已激活的设备。                                                                                                                                                                                   |
   | 选择集群       | 如果部署工程的配置对象选择"集群"，单击"选择集群"，勾选运行中的集群，单击"确定"。                                                                                                                                                                                                                                        |
   | 技能来源       | 默认选择"技能管理"。如果需要切换技能，可选择"技能订单"或"自定义"。 - 技能订单：选择已购买的技能。  - 自定义：自定义技能。   |
   | 选择技能（技能订单） | "技能来源"选择"技能订单"时，单击"选择订单"，勾选已购买的技能，并选择技能列表中的"安装规格"和"版本号"。                                                                                                                                                                                                                           |
   | 选择技能（自定义）  | "技能来源"选择"自定义"时，按[表2]填写新创建的技能信息。                                                                                                                                                                                                              |
   | 选择技能（技能管理） | 默认显示步骤2中选择的技能。                                                                                                                                                                                                                                                                     |
      
    表2选择技能 
   | 参数         | 说明                                                                                                                                                                                                                                                                  |
   |:---|:---|
   | 技能名称       | 技能名称。 输入不能为空，输入2-32个字符，只允许大小写字母、数字、中划线，以英文小写字母或数字开头和结尾。                                                                                                                                                                           |
   | 技能格式       | 支持"技能包"和"容器镜像"两种格式，具体格式要求请见[技能包](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0025.html#hilens_07_0025__section55821301472)和[容器镜像](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0025.html#hilens_07_0025__section485218261274)。 |
   | 版本（技能包）    | 当技能格式选择"技能包"时，技能版本。支持0\~128字符，只允许英文小写字母、数字、中划线，开头和结尾只允许英文小写字母或数字。不允许输入特殊符号。                                                                                                                                                                                         |
   | 技能包路径（技能包） | 技能格式为"技能包"时，RPM技能包在OBS的存储路径。                                                                                                                                                                                                                                        |
   | 镜像类型（容器镜像） | 技能格式为"容器镜像"时，支持镜像类型为"ModelBox镜像"和"普通镜像"。                                                                                                                                                                                                                            |
   | 镜像路径（容器镜像） | 技能格式为"容器镜像"时，容器镜像在OBS的存储路径。                                                                                                                                                                                                                                         |
      
   
 
#### 配置启动参数
在"启动参数配置"页面填写配置信息，然后单击右下角的"下一步"。
![](https://support.huaweicloud.com/usermanualpro-hilens/public_sys-resources/note_3.0-zh-cn.png)
"启动命令"、"环境变量"、"网络配置"、"数据存储"、"消息变量"、"健康检查"均不是必填项，如需要配置，可勾选其对应的选项，然后填写配置信息。
- **实例数**
  应用部署的实例数量。应用部署可以有一个或多个实例，用户可以自定义设置具体实例个数，默认为1。
  每个实例都由相同的应用部署而成。为防止出现节点异常或实例异常，导致部署应用异常，建议使用多个实例，以保障部署技能的高可靠性。
  
- **重启策略**
  当前仅支持"总是重启"。
  
- **特权**
  特权开关，开启后，容器将可以访问主机上的所有设备。
  
- **计算资源**
  该部署可使用的计算资源，申请资源量是指预留给该部署的计算资源，限制部署是指该部署可使用的最大计算资源，超过限制时，技能将停止。
  
- **启动命令**
  设置容器启动时执行的命令。
  未填写则镜像启动运行默认命令，填写后可运行特定命令，需要用到以下设置：
  - 运行命令：控制镜像运行的实际命令。
  
  - 运行参数：传递给运行命令的参数。
   
- **环境变量**
  在容器中添加环境变量，用于设置技能运行时的变量，可通过修改部署配置来。
  在"环境变量"页签，单击"添加环境变量"，当前支持"手动添加"、"密钥导入"、"配置项导入"、"变量引入"。
  - 手动添加：输入变量名称、变量值。
    表3手动添加环境变量 
    | 参数   | 说明                                                                                           |
    |:---|:---|
    | 类型   | 手动添加。                                                                                        |
    | 变量名称 | 自定义填写变量名称，如demo。 不能为空，以字母或下划线开头，只允许输入字母、数字和下划线，且最大长度不超过2048。 |
    | 变量值  | 输入变量的值，如value。不允许输入#\^ $\| % \& \* \< \> ( ) 且不能超过20480个字符。                                  |
       
    
  
  - 密钥导入：输入变量名称，选择导入的密钥名称和数据。您需要提前创建密钥，具体请参见[创建密钥](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0063.html)。
    表4密钥导入环境变量 
    | 参数         | 说明                                                                                          |
    |:---|:---|
    | 类型         | 密钥导入。                                                                                       |
    | 变量名称       | 自定义填写变量名称，如demo。 不能为空，以字母或下划线开头，只允许输入字母、数字和下划线，且最大长度不超过2048。 |
    | 配置项名称/密钥名称 | 请选择对应的配置项名称/密钥名称。                                                                           |
    | 配置项键/密钥键   | 请选择对应的配置项键/密钥键。                                                                             |
       
    
  
  - 配置项导入：输入变量名称，选择导入的配置项名称和数据。您需要提前创建配置项，具体请参见[管理配置项](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0064.html)。
    表5配置项导入环境变量 
    | 参数         | 说明                                                                                          |
    |:---|:---|
    | 类型         | 配置项导入。                                                                                      |
    | 变量名称       | 自定义填写变量名称，如demo。 不能为空，以字母或下划线开头，只允许输入字母、数字和下划线，且最大长度不超过2048。 |
    | 配置项名称/密钥名称 | 配置项名称/密钥名称。                                                                                 |
    | 配置项键/密钥键   | 配置项键/密钥键。                                                                                   |
       
    
  
  - 变量引入：输入变量名称。
   
- **网络配置**
  创建一个网络配置参数表。容器镜像应用的访问支持使用主机网络或使用端口映射。
  - 端口映射：单击"添加端口映射"，填写容器端口和主机网卡地址，选择主机端口，参数说明请见[表6]。
     表6端口映射参数说明 
    | 参数     | 说明                                                                                                                                                                                                                                                                                                   |
    |:---|:---|
    | 容器端口   | 输入1\~65535之间的整数，不能为空。                                                                                                                                                                                                                                                                                |
    | 主机网卡地址 | 输入不能为空，输入有效的IP地址。                                                                                                                                                                                                                                                                                    |
    | 主机端口号  | - 指定：输入主机端口。不能为空，输入值为1\~65535之间的整数。  - 自动获取："下限"不能为空，输入值为1\~65535的整数，端口下限需小于端口上限；"上限"不能为空，输入值为1\~65535的整数。   单击操作列的"删除"，可删除端口映射。 |
       
    
  
  - 主机网络：单击主机网络即可。
   
- **数据存储**
  创建一个数据存储环境变量表。给容器挂载数据存储，支持本地磁盘和云存储，适用于需持久化存储、高磁盘IO等场景。
  单击"添加挂载卷"，按[表7]填写挂载卷信息。
   表7挂载卷参数说明 
  | 参数    | 说明                                                                                                                                                                                                                              |
  |:---|:---|
  | 挂载卷名称 | 不能为空，输入小写字母或数字且不超过63个字符。                                                                                                                                                                                                        |
  | 存储卷类型 | 仅支持"主机路径"和"临时路径"。                                                                                                                                                                                                               |
  | 磁盘源   | - 主机路径下，输入不能为空，以/开头，仅包含字母数字/- _.且长度不能超过255个字符。  - 临时路径下为默认。   |
  | 挂载路径  | 不能为空，以/开头，仅允许英文、数字\\_-且不超过1024个字符。                                                                                                                                                                                              |
  | 存储介质  | - 主机路径下为默认。  - 临时路径下可选择"内存"、"磁盘"。                            |
  | 权限    | 可选择"读写"和"只读"。 单击操作列的"删除"，可删除挂载卷。                                                                                                                                                               |
     
  
- **健康检查**
  用于判断和业务是否正常运行，华为HiLens提供了存活与业务两种探针。
  - 存活探针：检查容器是否正常，不正常则重启实例。如果容器的存活检查失败，集群会对该容器执行重启操作；如果容器的存活检查成功则不执行任何操作。
  
  - 业务探针：检查用户业务是否就绪，不就绪则不转发流量到当前实例。一些程序的启动时间可能很长，比如要加载磁盘数据或者要依赖外部的某个模块启动完成才能提供服务。这时候程序进程在，但是并不能对外提供服务。这种场景下该检查方式就非常有用。如果容器的就绪检查失败，集群会屏蔽请求访问该容器；如果检查成功，则会开放对该容器的访问。
  
  
  检查方式分为"HTTP请求检查"和"执行命令检查"。
  - HTTP请求检查 HTTP 请求方式针对的是提供HTTP/HTTPS服务的容器，集群周期性地对该容器发起HTTP/HTTPS GET请求，如果HTTP/HTTPS response返回码属于200\~399范围，则证明探测成功，否则探测失败。使用HTTP请求探测必须指定容器监听的端口和HTTP/HTTPS的请求路径。
    例如：提供HTTP服务的容器，HTTP检查路径为：/health-check；端口为：80；主机地址可不填，默认为容器实例IP，此处以172.16.0.186为例。那么集群会周期性地对容器发起如下请求：GET http://172.16.0.186:80/health-check。
    图2HTTP请求检查   
    ![](https://support.huaweicloud.com/usermanualpro-hilens/zh-cn_image_0000001214106458.png) 
  
  - 执行命令检查 命令检查是一种强大的检查方式，该方式要求用户指定一个容器内的可执行命令，集群会周期性地在容器内执行该命令，如果命令的返回结果是0则检查成功，否则检查失败。
    对于上面提到的HTTP请求检查，可以通过执行命令检查的方式来替代，我们可以写一个脚本来对容器进行wget。
    wget http://127.0.0.1:80/health-check
    并检查response 的返回码，如果返回码在200\~399 的范围，脚本返回0，否则返回-1。如下图：
    图3执行命令检查   
    ![](https://support.huaweicloud.com/usermanualpro-hilens/zh-cn_image_0000001214266416.png) 
   
 
#### 完成部署
填写部署信息和配置启动参数后，单击界面右下角"完成"，成功完成部署创建，进入"设备管理"页面。
选择相关设备，部署状态可在部署列表中查看，详情请见[查看部署信息](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0028.html)。
#### 后续操作
创建部署工程后，需要添加作业，运行技能。详情请见[添加作业](https://support.huaweicloud.com/usermanualpro-hilens/hilens_07_0027.html)。
