
# 查询应用部署列表
#### 功能介绍
获取部署列表。
#### URI
GET /v3/{project_id}/ai-mgr/deployments
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                   |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID，获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-hilens/hilens_07_0020.html) |
   
表2Query参数 
| 参数         | 是否必选 | 参数类型    | 描述                                                     |
|:---|:---|:---|:---|
| cluster_id | 否    | String  | 集群ID，查询部署在该节点组的应用列表，和node_id不可同时请求                     |
| node_id    | 否    | String  | 节点ID，查询部署在该节点下的应用列表，和cluster_id不可同时请求                  |
| provider   | 否    | String  | 平台提供者，分别为hilens及ief。当为hilens时，请求部署在hilens平台的相关数据       |
| name       | 否    | String  | 部署名称(支持模糊匹配)                                           |
| sort       | 否    | String  | 查询结果排序，如按照创建时间降序排序为created_at:desc，升序排序为created_at:asc |
| limit      | 否    | Integer | 每页显示的条目数量, 最大 100，默认值 10                               |
| offset     | 否    | Integer | 查询的起始位置, 默认值 0                                         |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                 |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。获取方法请参见[获取Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html) |
   
#### 响应参数
**状态码： 200**
表4响应Body参数 
| 参数          | 参数类型                                                                                                                                     | 描述      |
|:---|:---|:---|
| count       | Integer                                                                                                                                  | 部署的全部数量 |
| deployments | Array of [Deployment] objects | 部署列表信息  |
   
 表5Deployment 
| 参数             | 参数类型                                                                                                                                     | 描述                                                                                                                                                                                  |
|:---|:---|:---|
| template       | [template] object               | 部署模板信息                                                                                                                                                                              |
| reason         | String                                                                                                                                   | 部署成功失败的理由                                                                                                                                                                           |
| ready_replicas | Integer                                                                                                                                  | 已经就绪的实例节点数                                                                                                                                                                          |
| replicas       | Integer                                                                                                                                  | 实例节点节点数                                                                                                                                                                             |
| description    | String                                                                                                                                   | 应用部署描述，最大长度255，不允许\^ \~ # $ % \& \* \< \> ( ) \[ \] { } ' " \\                                                                                                                      |
| created_at     | String                                                                                                                                   | 创建时间                                                                                                                                                                                |
| source         | String                                                                                                                                   | 应用部署来源: HiLens市场(hlm) or aigallery(aig) or 自定义(userdefined)                                                                                                                         |
| api_version    | String                                                                                                                                   | 应用部署版本                                                                                                                                                                              |
| node_ids       | Array of strings                                                                                                                         | 应用部署的指定节点，与cluster_id二选一                                                                                                                                                            |
| cluster_id     | String                                                                                                                                   | 应用部署的集群ID，与node_id二选一                                                                                                                                                               |
| updated_at     | String                                                                                                                                   | 更新时间                                                                                                                                                                                |
| project_id     | String                                                                                                                                   | 项目ID                                                                                                                                                                                |
| name           | String                                                                                                                                   | 部署名称                                                                                                                                                                                |
| id             | String                                                                                                                                   | 部署ID                                                                                                                                                                                |
| state          | String                                                                                                                                   | RUNNING：运行， FREEZE：冻结， UNFREEZE: 解冻， CREATING：创建中， CREATE_FAILED：创建失败， STARTING：启动中， START_FAILED：启动失败， STOPPING：停止中 STOP_FAILED：停止失败 DELETING：删除中 DELETE_FAILED：删除失败 HIBERNATED：休眠 |
| node_num       | Integer                                                                                                                                  | 部署的节点数，最小为1，集群部署也为1                                                                                                                                                                 |
| result         | Array of [NodeResult] objects | 每个节点的部署结果                                                                                                                                                                           |
   
 表6template 
| 参数      | 参数类型                                                                                                                             | 描述     |
|:---|:---|:---|
| configs | [PodConfig] object     | 应用实例配置 |
| apps    | Array of [AppDef] objects | 部署应用列表 |
   
 表7PodConfig 
| 参数                 | 参数类型    | 描述                                    |
|:---|:---|:---|
| host_network       | Boolean | 应用实例是否启用主机网络，不启用则使用端口映射,默认值false      |
| host_pid           | Boolean | 应用实例是否与主机共PID命名空间,默认值false            |
| migration          | Boolean | 应用实例故障是否迁移,指定节点组部署时必选，默认值false        |
| restart_policy     | String  | 应用实例重启策略,可选值Always、OnFailure、Never    |
| toleration_seconds | Integer | 应用实例故障容忍时间,容忍时间到达后迁移应用实例，只在指定节点组部署时生效 |
   
 表8AppDef 
| 参数                  | 参数类型                                                                                                                                                                 | 描述                                                                                                                                                                 |
|:---|:---|:---|
| app_order_id        | String                                                                                                                                                               | app应用的订单ID，技能来源是市场时，如果不填，则自动选择默认订单。                                                                                                                                |
| app_url             | String                                                                                                                                                               | app应用的地址，可以是镜像地址或者OBS地址                                                                                                                                            |
| channel_limit       | Integer                                                                                                                                                              | 路数限制，添加作业的时候，摄像头和VCN的最大路数不超过该值，范围是0到1000                                                                                                                           |
| channel_upper_limit | Integer                                                                                                                                                              | 用户可以指定的路数限制上限，范围是0到1000                                                                                                                                            |
| args                | Array of strings                                                                                                                                                     | 容器启动参数，字符总长度最大为65536，不允许\^#\~\^$\|%\&\*\<\>()'"\[\]{}\]等特殊字符                                                                                                       |
| command             | Array of strings                                                                                                                                                     | 容器启动命令，字符总长度最大为65536。 command支持使用数组定义多条命令，但在IEF控制台界面只会显示第一条命令。不允许\^#\~\^$\|%\&\*\<\>()'"\[\]{}\]等特殊字符                                                              |
| envs                | Array of [Env] objects                                           | 环境变量                                                                                                                                                               |
| is_modelbox         | Boolean                                                                                                                                                              | 是否是modelbox镜像                                                                                                                                                      |
| liveness_probe      | [Probe] object                                                 | 探针配置                                                                                                                                                               |
| msgs                | Array of [Env] objects                                           | 消息变量                                                                                                                                                               |
| name                | String                                                                                                                                                               | 应用名字，只允许英文小写字母、数字、中划线，最大长度32, 英文小写字母或数字开头和结尾。该名称同时对应技能名称，当不传订单id的时候，默认通过该名称和版本号version字段，选择指定技能版本，进行部署，并选择可用的订单（默认订单优先）扣除份额。                                       |
| npu_type            | String                                                                                                                                                               | npu类型，支持D310类型和D910类型。D310表示D310类型。 D910表示D910类型。不填表示为D310类型 |
| ports               | Array of [HostContainerPortMapping] objects | 容器端口映射值                                                                                                                                                            |
| privileged          | Boolean                                                                                                                                                              | 是否启用特权容器,默认值false                                                                                                                                                  |
| readiness_probe     | [Probe] object                                                 | 探针配置                                                                                                                                                               |
| resources           | [ResQuest] object                                           | 创建应用时使用的资源                                                                                                                                                         |
| version             | String                                                                                                                                                               | 版本号，长度不超过128，支持大小写数字，下划线，点，中划线                                                                                                                                     |
| volumes             | Array of [Volume] objects                                     | 卷配置                                                                                                                                                                |
| start_resources     | [ResQuest] object                                           | 创建部署所需要的起始资源                                                                                                                                                       |
| channel_resources   | [ResQuest] object                                           | 每增加一路所需要资源                                                                                                                                                         |
| skill_project_id    | String                                                                                                                                                               | 技能管理ID，技能来源source是skill的时候，需要传入该ID                                                                                                                                 |
   
 表9Env 
| 参数         | 参数类型                                                                                                                         | 描述                                                                              |
|:---|:---|:---|
| name       | String                                                                                                                       | 环境变量的key，由大小写字母或下划线开头，由数字、大小写字母、下划线组成，最大长度2048个字符，不允许重复                         |
| value      | String                                                                                                                       | 环境变量的value，最大长度20480个字符。value、value_from和field_path必须三选一使用                      |
| value_from | [ValueFrom] object | 环境变量可使用配置项和密钥导入。value、value_from和field_path必须三选一使用                              |
| field_path | String                                                                                                                       | 该参数目前只支持赋值"status.hostIP"，即引用边缘节点的IP地址作为环境变量。value、value_from和field_path必须三选一使用 |
   
 表10ValueFrom 
| 参数        | 参数类型                                                                                                                                         | 描述                                              |
|:---|:---|:---|
| configmap | [ConfigsMap] object               | 环境变量引用配置项时使用。使用ValueFrom时，secret与configmap必须二选一 |
| secret    | [DeploymentSecrets] object | 环境变量引用密钥时使用。使用ValueFrom时，secret与configmap必须二选一  |
   
 表11ConfigsMap 
| 参数   | 参数类型   | 描述                                                          |
|:---|:---|:---|
| key  | String | 配置项的名称，以英文字母或中划线开头，由英文字母、数字、点号、中划线和下划线组成，长度1到63个字符。         |
| name | String | 配置项的属性名，以英文小写字母开头，由中文字符，英文字母，数字，下划线和中划线组成，不能以中划线结尾，长度4-64位。 |
   
 表12DeploymentSecrets 
| 参数   | 参数类型   | 描述                                                       |
|:---|:---|:---|
| name | String | 密钥的名称，以英文小写字母开头，由中文字符，英文字母，数字，下划线和中划线组成，不能以中划线结尾，长度4-64位 |
| key  | String | 密钥的属性名，以英文字母和中划线开头，由英文字母、数字、点号、中划线和下划线组成，长度1-63位         |
   
 表13HostContainerPortMapping 
| 参数              | 参数类型                                                                                                                                 | 描述                                  |
|:---|:---|:---|
| container_port  | Long                                                                                                                                 | 容器端口,1到65535之间的整数                   |
| host_ip         | String                                                                                                                               | 对应主机网卡地址，形如192.168.0.1              |
| host_port       | Long                                                                                                                                 | 主机端口,1到65535之间的整数，与主机端口范围二选一        |
| host_port_range | [HostPortRange] object | 主机端口范围，在范围内为应用实例自动分配主机端口；与主机端口参数二选一 |
   
 表14HostPortRange 
| 参数       | 参数类型 | 描述                                       |
|:---|:---|:---|
| max_port | Long | 主机端口上限值,1到65535之间的整数；max_port需大于min_port |
| min_port | Long | 主机端口下限制,1到65535之间的整数                     |
   
 表15Probe 
| 参数                    | 参数类型                                                                                                                     | 描述                                     |
|:---|:---|:---|
| exec                  | [Exec] object       | 执行命令检查，与http_get二选一                    |
| http_get              | [HttpGet] object | 执行http探测                               |
| initial_delay_seconds | Long                                                                                                                     | 表示从工作负载启动后从多久开始探测，大于0且不大于3600的整数，默认为10 |
| timeout_seconds       | Long                                                                                                                     | 表示探测超时时间，大于0且不大于3600的整数，默认为1           |
   
 表16Exec 
| 参数      | 参数类型   | 描述                                                         |
|:---|:---|:---|
| command | String | 探针执行命令，最大长度10240个字符。不允许\^#\~\^$\|%\&\*\<\>()'"\[\]{}这些特殊字符 |
   
 表17HttpGet 
| 参数     | 参数类型    | 描述                             |
|:---|:---|:---|
| host   | String  | 请求的主机地址，默认为容器IP                |
| path   | String  | 必须要以/开头，构造结果为：协议类型://主机地址:端口路径 |
| port   | Integer | 探测的http端口，1到65535之间的整数         |
| scheme | String  | 协议类型，HTTP或HTTPS，默认HTTP         |
   
 表18Volume 
| 参数          | 参数类型    | 描述                                                                                                                        |
|:---|:---|:---|
| destination | String  | 卷挂载路径，必须是合法的路径                                                                                                            |
| key         | String  | 卷的类型，支持configMap,secret,emptyDir,hostPath                                                                                 |
| name        | String  | 卷名称，小写字母或数字，最长63个字符                                                                                                       |
| read_only   | Boolean | 读写权限，configMap和secret类型只支持读权限                                                                                             |
| source      | String  | 卷来源，type为hostPath时输入路径，要求以/开头，后面可包含中划线，反斜杠，下划线，点号，字母，数字； secret时输入secret名称，configMap时输入configMap名称，emptyDir时输入disk或memory |
| type        | String  | 卷的类型，支持configMap,secret,emptyDir,hostPath                                                                                 |
   
 表19ResQuest 
| 参数       | 参数类型                                                                                                             | 描述          |
|:---|:---|:---|
| limits   | [Res] object | 允许容器使用的最大资源 |
| requests | [Res] object | 容器需要使用的最小资源 |
   
 表20Res 
| 参数     | 参数类型   | 描述                                              |
|:---|:---|:---|
| cpu    | String | cpu数量，字符串所对应的数值在0.01到1000之间                     |
| gpu    | String | gpu数量，值在0到1000                                  |
| memory | String | 内存数量，如果是资源限制，其值范围在4到1024000之间，否则在0.01到1024000之间 |
| npu    | String | npu数量，字符串所对应的数值在0.到1000之间                       |
   
 表21NodeResult 
| 参数            | 参数类型   | 描述                |
|:---|:---|:---|
| node_id       | String | 部署的节点ID           |
| error_message | String | 部署到该节点失败时，返回的错误信息 |
| error_code    | String | 部署到该节点失败时，返回的错误码  |
   
**状态码： 401**
表22响应Body参数 
| 参数            | 参数类型   | 描述   |
|:---|:---|:---|
| request_id    | String | 请求ID |
| error_code    | String | 错误码  |
| error_message | String | 错误信息 |
   
**状态码： 403**
表23响应Body参数 
| 参数            | 参数类型   | 描述   |
|:---|:---|:---|
| request_id    | String | 请求ID |
| error_code    | String | 错误码  |
| error_message | String | 错误信息 |
   
**状态码： 404**
表24响应Body参数 
| 参数            | 参数类型   | 描述   |
|:---|:---|:---|
| request_id    | String | 请求ID |
| error_code    | String | 错误码  |
| error_message | String | 错误信息 |
   
**状态码： 500**
表25响应Body参数 
| 参数            | 参数类型   | 描述   |
|:---|:---|:---|
| request_id    | String | 请求ID |
| error_code    | String | 错误码  |
| error_message | String | 错误信息 |
   
#### 请求示例
获取部署列表
```
GET https://{endpoint}/v3/{project_id}/ai-mgr/deployments
Request Header:  Content-Type: application/jsonX-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
```
#### 响应示例
**状态码： 200**
请求成功
```
{
  "count" : 1,
  "deployments" : [ {
    "template" : {
      "configs" : {
        "migration" : false,
        "host_network" : false,
        "host_pid" : false,
        "restart_policy" : "Always",
        "toleration_seconds" : 0
      },
      "apps" : [ {
        "name" : "food-detection-skill",
        "args" : [ ],
        "command" : [ ],
        "resources" : {
          "limits" : {
            "cpu" : "0.25",
            "memory" : "128"
          },
          "requests" : { }
        },
        "envs" : [ ],
        "msgs" : [ ],
        "ports" : [ ],
        "privileged" : false,
        "version" : "1.0.5",
        "volumes" : [ ],
        "app_url" : "xxx",
        "is_modelbox" : false
      } ]
    },
    "reason" : null,
    "ready_replicas" : 0,
    "replicas" : 1,
    "description" : null,
    "created_at" : "2022-01-13 16:56:27 GMT+08:00",
    "source" : "userdefined",
    "api_version" : null,
    "node_ids" : [ "hilens-ddafe05724364df7bcd1f5e1f9971793" ],
    "cluster_id" : null,
    "updated_at" : "2022-01-13 16:56:27 GMT+08:00",
    "project_id" : "fff47e1722f94c4e98531bae56821372",
    "name" : "food-detection",
    "id" : "hilens-849c8575bc2a401c8cd7a979d999c8ef",
    "state" : "RUNNING"
  } ]
}
```
#### 状态码
| 状态码 | 描述       |
|:---|:---|
| 200 | 请求成功     |
| 401 | 认证不通过    |
| 403 | 拒绝执行请求   |
| 404 | 请求的资源不存在 |
| 500 | 服务器内部错误  |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-hilens/ErrorCode.html)。
