
# 查询应用实例列表
#### 功能介绍
获取用户实例列表。
#### URI
GET /v3/{project_id}/ai-mgr/pods
表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平台的相关数据               |
| deployment_id | 否    | String  | 应用部署ID                                                         |
| workspace_id  | 否    | String  | 工作空间ID，默认为注册账号/子账号的default工作空间。主账号默认ID为0，子账号默认空间id为该子账号user_id |
| offset        | 否    | Integer | 查询的起始位置，取值范围为非负整数，默认为0                                         |
| limit         | 否    | Integer | 每页显示的条目数量，取值范围1\~100，默认为100                                    |
   
#### 请求参数
表3请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                 |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。获取方法请参见[获取Token](https://support.huaweicloud.com/api-iam/iam_30_0001.html) |
   
#### 响应参数
**状态码： 200**
表4响应Body参数 
| 参数    | 参数类型                                                                                                                          | 描述     |
|:---|:---|:---|
| count | Integer                                                                                                                       | pod总个数 |
| pods  | Array of [Pod] objects | pod 列表 |
   
 表5Pod 
| 参数            | 参数类型                                                                                                                                | 描述                                                                                                   |
|:---|:---|:---|
| configs       | [PodConfig] object     | 应用实例配置                                                                                               |
| reason        | String                                                                                                                              | 部署失败的原因                                                                                              |
| host_ip       | String                                                                                                                              | 对应网卡地址                                                                                               |
| created_at    | String                                                                                                                              | 创建时间                                                                                                 |
| cluster_id    | String                                                                                                                              | 集群ID                                                                                                 |
| updated_at    | String                                                                                                                              | 更新时间                                                                                                 |
| project_id    | String                                                                                                                              | 项目ID                                                                                                 |
| name          | String                                                                                                                              | 实例名字                                                                                                 |
| id            | String                                                                                                                              | 实例ID                                                                                                 |
| deployment_id | String                                                                                                                              | 部署ID                                                                                                 |
| affinity      | [PodAffinity] object | 亲和规则                                                                                                 |
| apps          | Array of [AppDef] objects | 应用部署信息                                                                                               |
| node_id       | String                                                                                                                              | 节点ID                                                                                                 |
| status        | String                                                                                                                              | 状态，状态包括，Pending，表示挂起，Running表示pod已经被调到到某节点，Succeeded表示Pod已经被成功终止，Failed表示左右容器都已终止，Unkonwn表示无法取得Pod状态 |
   
 表6PodConfig 
| 参数                 | 参数类型    | 描述                                    |
|:---|:---|:---|
| host_network       | Boolean | 应用实例是否启用主机网络，不启用则使用端口映射,默认值false      |
| host_pid           | Boolean | 应用实例是否与主机共PID命名空间,默认值false            |
| migration          | Boolean | 应用实例故障是否迁移,指定节点组部署时必选，默认值false        |
| restart_policy     | String  | 应用实例重启策略,可选值Always、OnFailure、Never    |
| toleration_seconds | Integer | 应用实例故障容忍时间,容忍时间到达后迁移应用实例，只在指定节点组部署时生效 |
   
 表7PodAffinity 
| 参数            | 参数类型                                                                                                                                                  | 描述      |
|:---|:---|:---|
| node_affinity | Array of [MatchExpression] objects | 节点亲和规则  |
| pod_affinity  | Array of [MatchExpression] objects | Pod亲和规则 |
   
 表8MatchExpression 
| 参数       | 参数类型             | 描述                                                                                                                         |
|:---|:---|:---|
| key      | String           | 规则的标签                                                                                                                      |
| operator | String           | 操作符，取值如下： In：标签值需要在values的列表中 NotIn：标签的值不在某个列表中 Exists：某个标签存在 DoesNotExist：某个标签不存在 Gt：标签的值大于某个值（字符串比较） Lt：标签的值小于某个值（字符串比较） |
| values   | Array of strings | 一组标签值。 如果运算符为In或NotIn，则值数组必须非空。 如果运算符为Exists 或DoesNotExist，则值数组必须为空。 如果运算符是Gt或Lt，则值数组必须具有单个元素，该元素将被解释为整数                   |
   
 表9AppDef 
| 参数                  | 参数类型                                                                                                                                                                    | 描述                                                                                                                                                                   |
|:---|:---|:---|
| 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                                                                                                                                   |
   
 表10Env 
| 参数         | 参数类型                                                                                                                            | 描述                                                                              |
|:---|:---|:---|
| 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必须三选一使用 |
   
 表11ValueFrom 
| 参数        | 参数类型                                                                                                                                            | 描述                                              |
|:---|:---|:---|
| configmap | [ConfigsMap] object               | 环境变量引用配置项时使用。使用ValueFrom时，secret与configmap必须二选一 |
| secret    | [DeploymentSecrets] object | 环境变量引用密钥时使用。使用ValueFrom时，secret与configmap必须二选一  |
   
 表12ConfigsMap 
| 参数   | 参数类型   | 描述                                                          |
|:---|:---|:---|
| key  | String | 配置项的名称，以英文字母或中划线开头，由英文字母、数字、点号、中划线和下划线组成，长度1到63个字符。         |
| name | String | 配置项的属性名，以英文小写字母开头，由中文字符，英文字母，数字，下划线和中划线组成，不能以中划线结尾，长度4-64位。 |
   
 表13DeploymentSecrets 
| 参数   | 参数类型   | 描述                                                       |
|:---|:---|:---|
| name | String | 密钥的名称，以英文小写字母开头，由中文字符，英文字母，数字，下划线和中划线组成，不能以中划线结尾，长度4-64位 |
| key  | String | 密钥的属性名，以英文字母和中划线开头，由英文字母、数字、点号、中划线和下划线组成，长度1-63位         |
   
 表14HostContainerPortMapping 
| 参数              | 参数类型                                                                                                                                    | 描述                                  |
|:---|:---|:---|
| container_port  | Long                                                                                                                                    | 容器端口,1到65535之间的整数                   |
| host_ip         | String                                                                                                                                  | 对应主机网卡地址，形如192.168.0.1              |
| host_port       | Long                                                                                                                                    | 主机端口,1到65535之间的整数，与主机端口范围二选一        |
| host_port_range | [HostPortRange] object | 主机端口范围，在范围内为应用实例自动分配主机端口；与主机端口参数二选一 |
   
 表15HostPortRange 
| 参数       | 参数类型 | 描述                                       |
|:---|:---|:---|
| max_port | Long | 主机端口上限值,1到65535之间的整数；max_port需大于min_port |
| min_port | Long | 主机端口下限制,1到65535之间的整数                     |
   
 表16Probe 
| 参数                    | 参数类型                                                                                                                        | 描述                                     |
|:---|:---|:---|
| exec                  | [Exec] object       | 执行命令检查，与http_get二选一                    |
| http_get              | [HttpGet] object | 执行http探测                               |
| initial_delay_seconds | Long                                                                                                                        | 表示从工作负载启动后从多久开始探测，大于0且不大于3600的整数，默认为10 |
| timeout_seconds       | Long                                                                                                                        | 表示探测超时时间，大于0且不大于3600的整数，默认为1           |
   
 表17Exec 
| 参数      | 参数类型   | 描述                                                         |
|:---|:---|:---|
| command | String | 探针执行命令，最大长度10240个字符。不允许\^#\~\^$\|%\&\*\<\>()'"\[\]{}这些特殊字符 |
   
 表18HttpGet 
| 参数     | 参数类型    | 描述                             |
|:---|:---|:---|
| host   | String  | 请求的主机地址，默认为容器IP                |
| path   | String  | 必须要以/开头，构造结果为：协议类型://主机地址:端口路径 |
| port   | Integer | 探测的http端口，1到65535之间的整数         |
| scheme | String  | 协议类型，HTTP或HTTPS，默认HTTP         |
   
 表19Volume 
| 参数          | 参数类型    | 描述                                                                                                                        |
|:---|:---|:---|
| 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                                                                                 |
   
 表20ResQuest 
| 参数       | 参数类型                                                                                                                | 描述          |
|:---|:---|:---|
| limits   | [Res] object | 允许容器使用的最大资源 |
| requests | [Res] object | 容器需要使用的最小资源 |
   
 表21Res 
| 参数     | 参数类型   | 描述                                              |
|:---|:---|:---|
| cpu    | String | cpu数量，字符串所对应的数值在0.01到1000之间                     |
| gpu    | String | gpu数量，值在0到1000                                  |
| memory | String | 内存数量，如果是资源限制，其值范围在4到1024000之间，否则在0.01到1024000之间 |
| npu    | String | npu数量，字符串所对应的数值在0.到1000之间                       |
   
#### 请求示例
获取用户实例列表
```
GET https://{endpoint}/v3/{project_id}/ai-mgr/pods
Request Header:  Content-Type: application/jsonX-Auth-Token: MIINRwYJKoZIhvcNAQcCoIINODCCDTQCAQExDTALBglghkgBZQMEAgEwgguVBgkqhkiG...
```
#### 响应示例
**状态码： 200**
请求成功
```
{
  "count" : 1,
  "pods" : [ {
    "configs" : {
      "migration" : false,
      "host_network" : false,
      "host_pid" : false,
      "restart_policy" : "Always",
      "toleration_seconds" : 0
    },
    "reason" : "open /home/hilens/apps/test-rpm-hilens-41f6382c44b94d8abaea5129a54121b0/packages/base64_decoder.toml: no such file or directory",
    "host_ip" : "192.168.2.111",
    "created_at" : "2021-12-08 19:09:27 GMT+08:00",
    "cluster_id" : null,
    "updated_at" : "2021-12-08 20:26:20 GMT+08:00",
    "project_id" : "fff47e1722f94c4e98531bae56821372",
    "name" : "12312312313_test-rpm_0",
    "id" : "hilens-12312312313_test-rpm_0",
    "deployment_id" : "hilens-413a558214814d249d43988cc1f788b6",
    "affinity" : null,
    "apps" : [ {
      "name" : "test-rpm",
      "args" : [ ],
      "command" : [ ],
      "resources" : {
        "limits" : {
          "cpu" : "0.25",
          "memory" : "128"
        },
        "requests" : { }
      },
      "envs" : [ ],
      "msgs" : [ ],
      "ports" : [ ],
      "privileged" : false,
      "version" : "1.0.0",
      "volumes" : [ ],
      "app_url" : "xxx",
      "app_order_id" : "702786922fc74954818e549383306d30",
      "is_modelbox" : false
    } ],
    "node_id" : "hilens-8977fd2811464c1bb19eeb1939142841",
    "status" : "Failed"
  } ]
}
```
#### 状态码
| 状态码 | 描述       |
|:---|:---|
| 200 | 请求成功     |
| 401 | 认证不通过    |
| 403 | 拒绝执行请求   |
| 404 | 请求的资源不存在 |
| 500 | 服务器内部错误  |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-hilens/ErrorCode.html)。
