
# 查询部署列表 - ListDeployments
#### 功能介绍
查询部署列表
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IEF/doc?api=ListDeployments)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ief/ief_02_1003.html)。
#### URI
GET /v3/{project_id}/edgemgr/deployments
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述   |
|:---|:---|:---|:---|
| project_id | 是    | String | 项目ID |
表2Query参数 
| 参数       | 是否必选 | 参数类型   | 描述                                                     |
|:---|:---|:---|:---|
| limit    | 否    | Long   | 每页显示的条目数量，最大100，默认值10                                  |
| offset   | 否    | Long   | 查询的起始位置，默认值0                                           |
| sort     | 否    | String | 查询结果排序，如按照创建时间降序排序为created_at:desc，升序排序为created_at:asc |
| name     | 否    | String | deployment名称（支持模糊匹配）                                   |
| node_id  | 否    | String | 节点ID，查询部署在该节点下的应用列表，和group_id不可同时请求                    |
| group_id | 否    | String | 节点组ID，查询部署在该节点组的应用列表，和node_id不可同时请求                    |
#### 请求参数
表3请求Header参数 
| 参数              | 是否必选 | 参数类型   | 描述                                                        |
|:---|:---|:---|:---|
| Content-Type    | 是    | String | 消息体的类型（格式），默认取值为"application/json"。                       |
| X-Auth-Token    | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
| ief-instance-id | 否    | String | 企业版实例ID，专业版实例为空值。                                         |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数          | 参数类型                                                                         | 描述     |
|:---|:---|:---|
| count       | Long                                                                         | 应用部署总数 |
| deployments | Array of [DeploymentResp] objects | 应用部署列表 |
   
 表5DeploymentResp 
| 参数             | 参数类型                                                                 | 描述                                                              |
|:---|:---|:---|
| id             | String                                                               | 应用部署uuid                                                        |
| name           | String                                                               | 应用部署名称，只允许英文小写字母、数字、中划线，最大长度32， 英文小写字母或数字开头和结尾                  |
| replicas       | Integer                                                              | 应用部署总副本数                                                        |
| ready_replicas | Integer                                                              | 应用部署正常副本数                                                       |
| description    | String                                                               | 应用部署描述，最大长度255，不允许\^ \~ # $ % \& \* \< \> ( ) \[ \] { } ' " \\  |
| group_id       | String                                                               | 应用部署到指定节点组，与node_ids二选一                                         |
| node_ids       | Array of strings                                                     | 应用部署到指定节点，当前只支持一个边缘节点                                           |
| tags           | Array of [Attributes] objects | 节点属性                                                            |
| api_version    | String                                                               | 应用部署版本                                                          |
| source         | String                                                               | 应用部署来源：边缘市场（iem）或自定义（userdefined）                               |
| project_id     | String                                                               | 项目ID                                                            |
| created_at     | String                                                               | 应用部署创建时间                                                        |
| updated_at     | String                                                               | 应用部署更新时间                                                        |
| template       | [PodRequest] object           | 应用部署模板                                                          |
| state          | String                                                               | 应用状态，仅包括冻结（FREEZE）、删除中（PENDING_DELETE）、删除失败（DELETE_FAILED），保留字段 |
| source_id      | String                                                               | 预留字段                                                            |
| annotations    | [Annotations] object         | 应用扩展功能配置选项                                                      |
   
 表6Attributes 
| 参数    | 参数类型   | 描述                                               |
|:---|:---|:---|
| key   | String | 节点属性的key值，长度取值范围为1\~128， 仅允许大小写英文字母、数字、下划线、中划线   |
| value | String | 节点属性的value值，长度取值范围为1\~256， 仅允许大小写英文字母、数字、下划线、中划线 |
   
 表7PodRequest 
| 参数              | 参数类型                                                                     | 描述               |
|:---|:---|:---|
| configs         | [PodConfigs] object               | 应用实例配置           |
| affinity        | [Affinity] object                   | 应用实例亲和性规则，仅企业版支持 |
| init_containers | Array of [ContainerDef] objects | 应用部署init业务容器     |
| containers      | Array of [ContainerDef] objects | 应用部署业务容器         |
   
 表8PodConfigs 
| 参数                 | 参数类型    | 描述                                                                                                                                                   |
|:---|:---|:---|
| host_network       | Boolean | 应用实例是否启用主机网络，不启用则使用端口映射，默认值false                                                                                                                     |
| host_pid           | Boolean | 应用实例是否与主机共PID命名空间，默认值false                                                                                                                           |
| migration          | Boolean | 应用实例故障是否迁移，指定节点组部署时必选，默认值false                                                                                                                       |
| restart_policy     | String  | 应用实例重启策略，可选值Always、OnFailure、Never                                                                                                                   |
| toleration_seconds | Integer | 应用实例故障容忍时间，容忍时间到达后迁移应用实例，只在指定节点组部署时生效                                                                                                                |
| dns_policy         | String  | 应用实例DNS策略，可选值Default、ClusterFirst、ClusterFirstWithHostNet，默认为Default。应用实例启用主机网络时只能选填Default、ClusterFirstWithHostNet，不启用主机网络时只能选填Default、ClusterFirst |
   
 表9Affinity 
| 参数              | 参数类型                                                                 | 描述       |
|:---|:---|:---|
| nodeAffinity    | [nodeAffinity] object       | 节点亲和规则   |
| podAffinity     | [podAffinity] object         | Pod亲和规则  |
| podAntiAffinity | [podAntiAffinity] object | Pod反亲和规则 |
   
 表10nodeAffinity 
| 参数                                              | 参数类型                                                                                           | 描述                                                              |
|:---|:---|:---|
| preferredDuringSchedulingIgnoredDuringExecution | Array of [PreferredSchedulingTerm] objects | 优先使用定义的规则调度，且不会影响已经在节点上运行的Pod。即优先选择调度到满足规则的节点，但也可能会调度到不满足规则的节点。 |
| requiredDuringSchedulingIgnoredDuringExecution  | [RequiredDuringScheduling] object         | 强制使用定义的规则调度，且不会影响已经在节点上运行的Pod。即强制选择调度到满足规则的节点，不会调度到不满足规则的节点。    |
   
 表11PreferredSchedulingTerm 
| 参数         | 参数类型                                                       | 描述              |
|:---|:---|:---|
| preference | [preference] object | 与相应权重关联的节点选择器项。 |
| weight     | Integer                                                    | 权重，范围为1-100     |
   
 表12preference 
| 参数               | 参数类型                                                                           | 描述      |
|:---|:---|:---|
| matchExpressions | Array of [MatchExpression] objects | 匹配规则表达式 |
   
 表13RequiredDuringScheduling 
| 参数                | 参数类型                                                                             | 描述     |
|:---|:---|:---|
| nodeSelectorTerms | Array of [MatchExpressions] objects | 节点选择规则 |
   
 表14MatchExpressions 
| 参数               | 参数类型                                                                           | 描述      |
|:---|:---|:---|
| matchExpressions | Array of [MatchExpression] objects | 匹配规则表达式 |
   
 表15podAffinity 
| 参数                                              | 参数类型                                                                                         | 描述                                                              |
|:---|:---|:---|
| preferredDuringSchedulingIgnoredDuringExecution | Array of [WeightPodAffinityTerms] objects | 优先使用定义的规则调度，且不会影响已经在节点上运行的Pod。即优先选择调度到满足规则的节点，但也可能会调度到不满足规则的节点。 |
| requiredDuringSchedulingIgnoredDuringExecution  | Array of [PodAffinityTerm] objects               | 强制使用定义的规则调度，且不会影响已经在节点上运行的Pod。即强制选择调度到满足规则的节点，不会调度到不满足规则的节点。    |
   
 表16podAntiAffinity 
| 参数                                              | 参数类型                                                                                         | 描述                                                              |
|:---|:---|:---|
| preferredDuringSchedulingIgnoredDuringExecution | Array of [WeightPodAffinityTerms] objects | 优先使用定义的规则调度，且不会影响已经在节点上运行的Pod。即优先选择调度到满足规则的节点，但也可能会调度到不满足规则的节点。 |
| requiredDuringSchedulingIgnoredDuringExecution  | Array of [PodAffinityTerm] objects               | 强制使用定义的规则调度，且不会影响已经在节点上运行的Pod。即强制选择调度到满足规则的节点，不会调度到不满足规则的节点。    |
   
 表17WeightPodAffinityTerms 
| 参数              | 参数类型                                                                 | 描述          |
|:---|:---|:---|
| podAffinityTerm | [podAffinityTerm] object | Pod亲和规则     |
| weight          | Integer                                                              | 权重，范围为1-100 |
   
 表18podAffinityTerm 
| 参数            | 参数类型                                                             | 描述                                                                               |
|:---|:---|:---|
| labelSelector | [LabelSelector] object | 标签选择器                                                                            |
| namespaces    | Array of strings                                                 | 命名空间                                                                             |
| topologyKey   | String                                                           | 拓扑标签。先圈定topologyKey指定的范围，然后再选择labelSelector定义的内容，即亲和调度只会在有topologyKey指定的标签节点上调度。 |
   
 表19LabelSelector 
| 参数               | 参数类型                                                                           | 描述                                                                                      |
|:---|:---|:---|
| matchExpressions | Array of [MatchExpression] objects | 匹配规则表达式                                                                                 |
| matchLabels      | Map\<String,String\>                                                           | 匹配的标签，格式为key:value键值对。 单个键值对相当于matchExpressions的一个元素，key字段为key，操作符为In，values数组中只有value。 |
   
 表20PodAffinityTerm 
| 参数            | 参数类型                                                             | 描述                                                                               |
|:---|:---|:---|
| labelSelector | [labelSelector] object | 标签选择器                                                                            |
| namespaces    | Array of strings                                                 | 命名空间                                                                             |
| topologyKey   | String                                                           | 拓扑标签。先圈定topologyKey指定的范围，然后再选择labelSelector定义的内容，即亲和调度只会在有topologyKey指定的标签节点上调度。 |
   
 表21labelSelector 
| 参数               | 参数类型                                                                           | 描述                                                                                      |
|:---|:---|:---|
| matchExpressions | Array of [MatchExpression] objects | 匹配规则表达式                                                                                 |
| matchLabels      | Map\<String,String\>                                                           | 匹配的标签，格式为key:value键值对。 单个键值对相当于matchExpressions的一个元素，key字段为key，操作符为In，values数组中只有value。 |
   
 表22MatchExpression 
| 参数       | 参数类型             | 描述                                                                                                                                     |
|:---|:---|:---|
| key      | String           | 规则的标签                                                                                                                                  |
| operator | String           | 操作符，取值如下： - In：标签值需要在values的列表中 - NotIn：标签的值不在某个列表中 - Exists：某个标签存在 - DoesNotExist：某个标签不存在 - Gt：标签的值大于某个值（字符串比较） - Lt：标签的值小于某个值（字符串比较） |
| values   | Array of strings | 一组标签值。 - 如果运算符为In或NotIn，则值数组必须非空。 - 如果运算符为Exists 或DoesNotExist，则值数组必须为空。 - 如果运算符是Gt或Lt，则值数组必须具有单个元素，该元素将被解释为整数。                        |
   
 表23ContainerDef 
| 参数              | 参数类型                                                                                             | 描述                                                                  |
|:---|:---|:---|
| name            | String                                                                                           | 容器名称，只允许英文小写字母、数字、中划线，最大长度32， 英文小写字母或数字开头和结尾                        |
| image_url       | String                                                                                           | 容器镜像URL                                                             |
| args            | Array of strings                                                                                 | 容器启动参数，字符总长度最大为65536                                                |
| command         | Array of strings                                                                                 | 容器启动命令，字符总长度最大为65536。 command支持使用数组定义多条命令，但在IEF控制台界面只会显示第一条命令。      |
| resources       | [DeploymentResources] object                     | 创建容器时使用的资源                                                          |
| envs            | Array of [Env] objects                                           | 环境变量                                                                |
| ports           | Array of [HostContainerPortMapping] objects | 容器端口映射值                                                             |
| privileged      | Boolean                                                                                          | 是否启用特权容器,默认值false                                                   |
| run_as_user     | Integer                                                                                          | 容器运行用户ID，输入范围为0\~65534的整数                                           |
| readiness_probe | [Probe] object                                                 | 探针配置                                                                |
| liveness_probe  | [Probe] object                                                 | 探针配置                                                                |
| version         | String                                                                                           | 容器镜像版本                                                              |
| volumes         | Array of [Volumes] objects                                   | 卷配置                                                                 |
| npu_type        | String                                                                                           | NPU类型，支持D310、D310B，支持填写： - D310：D310类型 - D310B：D310B类型 - 空值：D310类型。 |
   
 表24DeploymentResources 
| 参数       | 参数类型                 | 描述                                                                                                                                                      |
|:---|:---|:---|
| limits   | Map\<String,String\> | - 允许容器使用的最大资源，key值支持填写：cpu, memory, gpu, npu。 - 申请NPU资源时可填写指定的NPU芯片类型，支持填写：D310、D310B。注意：key值填写为npu时，默认使用npu_type字段指定的芯片类型。如果npu_type字段为空，默认使用D310芯片类型。 |
| requests | Map\<String,String\> | - 容器需要使用的最小资源，key值支持填写：cpu, memory, gpu, npu - 申请NPU资源时可填写指定的NPU芯片类型，支持填写：D310、D310B。注意：key值填写为npu时，默认使用npu_type字段指定的芯片类型。如果npu_type字段为空，默认使用D310芯片类型。  |
   
 表25Env 
| 参数         | 参数类型                                                     | 描述                                                          |
|:---|:---|:---|
| name       | String                                                   | 环境变量的key，由大小写字母或下划线开头，由数字、大小写字母、下划线组成，最大长度2048个字符，不允许重复     |
| value      | String                                                   | 环境变量的value，最大长度20480个字符。value、value_from和field_path必须三选一使用。 |
| value_from | [ValueFrom] object | 环境变量可使用配置项和密钥导入                                             |
| field_path | String                                                   | 该参数目前只支持赋值"status.hostIP"，即引用边缘节点的IP地址作为环境变量。               |
   
 表26ValueFrom 
| 参数        | 参数类型                                                       | 描述                                              |
|:---|:---|:---|
| secret    | [Secrets] object       | 环境变量引用密钥时使用。使用ValueFrom时，secret与configmap必须二选一。 |
| configmap | [ConfigsMap] object | 环境变量引用配置项时使用。                                   |
   
 表27Secrets 
| 参数   | 参数类型   | 描述     |
|:---|:---|:---|
| name | String | 密钥的名称  |
| key  | String | 密钥的属性名 |
   
 表28ConfigsMap 
| 参数   | 参数类型   | 描述      |
|:---|:---|:---|
| name | String | 配置项的名称  |
| key  | String | 配置项的属性名 |
   
 表29HostContainerPortMapping 
| 参数              | 参数类型                                                             | 描述                                         |
|:---|:---|:---|
| container_port  | Integer                                                          | 构成一对映射的容器端口                                |
| host_port       | Integer                                                          | 构成一对映射的物理机对应网卡端口                           |
| host_ip         | String                                                           | 对应网卡地址                                     |
| host_port_range | [HostPortRange] object | 主机端口范围，在范围内为应用实例自动分配主机端口；与主机端口参数二选一；仅企业版可用 |
   
 表30HostPortRange 
| 参数       | 参数类型    | 描述                                       |
|:---|:---|:---|
| min_port | Integer | 主机端口下限制，1到65535之间的整数                     |
| max_port | Integer | 主机端口上限值，1到65535之间的整数；max_port需大于min_port |
   
 表31Probe 
| 参数                    | 参数类型                                                             | 描述                                     |
|:---|:---|:---|
| exec                  | [Exec] object                   | 执行命令检查，与http_get二选一                    |
| http_get              | [HttpGetDetail] object | 执行http探测                               |
| initial_delay_seconds | Integer                                                          | 表示从工作负载启动后从多久开始探测，大于0且不大于3600的整数，默认为10 |
| timeout_seconds       | Integer                                                          | 表示探测超时时间，大于0且不大于3600的整数，默认为1           |
   
 表32Exec 
| 参数      | 参数类型   | 描述                  |
|:---|:---|:---|
| command | String | 探针执行命令，最大长度10240个字符 |
   
 表33HttpGetDetail 
| 参数     | 参数类型    | 描述                             |
|:---|:---|:---|
| path   | String  | 必须要以/开头，构造结果为：协议类型://主机地址:端口路径 |
| port   | Integer | 探测的http端口，1到65535之间的整数         |
| host   | String  | 请求的主机地址，默认为容器IP                |
| scheme | String  | 协议类型，HTTP或HTTPS，默认HTTP         |
   
 表34Volumes 
| 参数           | 参数类型    | 描述                                                                                                                        |
|:---|:---|:---|
| name         | String  | 卷名称，小写字母或数字，最长63个字符                                                                                                       |
| type         | String  | 卷的类型，支持configMap,secret,emptyDir,hostPath                                                                                 |
| source       | String  | 卷来源，type为hostPath时输入路径，要求以/开头，后面可包含中划线，反斜杠，下划线，点号，字母，数字； secret时输入secret名称，configMap时输入configMap名称，emptyDir时输入disk或memory |
| destination  | String  | 卷挂载路径，必须是合法的路径                                                                                                            |
| read_only    | Boolean | 读写权限，configMap和secret类型只支持读权限                                                                                             |
| default_mode | Integer | 挂载的文件权限，仅configMap和secret类型生效，填写值为十进制表示的linux文件权限，默认为420（对应权限644）                                                         |
   
 表35Annotations 
| 参数                     | 参数类型   | 描述                                       |
|:---|:---|:---|
| ring_controller        | String | 生成ranktablefile。该参数目前只支持赋值"ascend-1980"。 |
| autonomy_edge_selector | String | 离线自愈功能配置字段，须填写调度的节点组id                   |
   
**状态码：400**
表36响应Body参数 
| 参数         | 参数类型   | 描述     |
|:---|:---|:---|
| error_code | String | 错误码    |
| error_msg  | String | 错误描述信息 |
   
**状态码：500**
表37响应Body参数 
| 参数         | 参数类型   | 描述     |
|:---|:---|:---|
| error_code | String | 错误码    |
| error_msg  | String | 错误描述信息 |
   
#### 请求示例
无
#### 响应示例
**状态码：200**
ok
```
{
  "count" : 1,
  "deployments" : [ {
    "id" : "3e64d98a-37c5-43a6-9bfe-052b9083e362",
    "name" : "app-test",
    "replicas" : 1,
    "ready_replicas" : 1,
    "description" : "this is a test app",
    "group_id" : "",
    "node_ids" : [ "29d20c18-c20c-4a45-a087-42c766fc5d97" ],
    "tags" : [ {
      "key" : "app",
      "value" : "test"
    } ],
    "api_version" : "v3",
    "source" : "userdefine",
    "project_id" : "bcd83056c918480f8f190844bd425b23",
    "created_at" : "2019-10-10T02:20:40.630Z",
    "updated_at" : "2019-10-10T02:20:40.630Z",
    "template" : {
      "configs" : {
        "host_network" : true,
        "host_pid" : true,
        "migration" : true,
        "restart_policy" : "Always",
        "toleration_seconds" : 300
      },
      "init_containers" : [ ],
      "containers" : [ {
        "name" : "container-0",
        "image_url" : "nginx:latest",
        "args" : [ "-c", "sleep 1000" ],
        "command" : [ "/bin/bash" ],
        "resources" : {
          "limits" : {
            "cpu" : "0.25",
            "memory" : "500",
            "gpu" : "500"
          },
          "requests" : {
            "cpu" : "0.25",
            "memory" : "500",
            "gpu" : "500"
          }
        },
        "envs" : [ {
          "name" : "CERT_PATH",
          "value" : "/opt/cert"
        } ],
        "ports" : [ {
          "container_port" : 80,
          "host_port" : 80
        } ],
        "privileged" : true,
        "readiness_probe" : {
          "http_get" : {
            "path" : "/",
            "port" : 80,
            "scheme" : "http"
          },
          "initial_delay_seconds" : 10,
          "timeout_seconds" : 10
        },
        "liveness_probe" : {
          "http_get" : {
            "path" : "/",
            "port" : 80,
            "scheme" : "http"
          },
          "initial_delay_seconds" : 10,
          "timeout_seconds" : 10
        },
        "version" : "1.0",
        "npu_type" : "",
        "volumes" : [ {
          "name" : "log-volume",
          "type" : "hostPath",
          "read_only" : false,
          "source" : "/var/IEF",
          "destination" : "/var/IEF"
        } ]
      } ]
    }
  } ]
}
```
**状态码：400**
error
```
{
  "error_code" : "IEF.100001",
  "error_msg" : "PROJECT_ID not found"
}
```
**状态码：500**
error
```
{
  "error_code" : "IEF.100158",
  "error_msg" : "Fail to extract gpu infomation"
}
```
#### 状态码
| 状态码 | 描述    |
|:---|:---|
| 200 | ok    |
| 400 | error |
| 500 | error |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-ief/ErrorCode.html)。
