更新应用部署
功能介绍
更新应用部署相关信息。
URI
PUT /v3/{project_id}/ai-mgr/deployments/{deployment_id}
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
deployment_id | 是 | String | 部署ID |
project_id | 是 | String | 项目ID,获取方法请参见获取项目ID |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
provider | 否 | String | 平台提供者,分别为hilens及ief。当为hilens时,请求部署在hilens平台的相关数据。 |
请求参数
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
X-Auth-Token | 是 | String | 用户Token。获取方法请参见获取Token |
X-Expired-Time | 否 | Integer | 离线场景超期时间,单位分钟,范围在1-86400 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
deployment | 否 | DeploymentRequest object | 应用部署全量替换修改,应用更新时调用 |
description | 否 | String | 应用部署描述修改,只修改描述不需要传deployment参数。最大长度255,不允许^ ~ # $ % & * < > ( ) [ ] { } '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' " \ |
tags | 否 | Array of DeploymentTag objects | 部署标签 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
affinity | 否 | PodAffinity object | 应用部署亲和性规则 |
apps | 是 | Array of AppDef objects | 应用部署业务容器或RPM程序包 |
configs | 是 | PodConfig object | 应用实例配置 |
init_containers | 否 | Array of AppDef objects | 应用部署初始化业务容器,容器部署有效。预留,暂不支持 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
node_affinity | 否 | Array of MatchExpression objects | 节点亲和规则 |
pod_affinity | 否 | Array of MatchExpression objects | Pod亲和规则 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
key | 否 | String | 规则的标签 |
operator | 否 | String | 操作符,取值如下: In:标签值需要在values的列表中 NotIn:标签的值不在某个列表中 Exists:某个标签存在 DoesNotExist:某个标签不存在 Gt:标签的值大于某个值(字符串比较) Lt:标签的值小于某个值(字符串比较) |
values | 否 | Array of strings | 一组标签值。 如果运算符为In或NotIn,则值数组必须非空。 如果运算符为Exists 或DoesNotExist,则值数组必须为空。 如果运算符是Gt或Lt,则值数组必须具有单个元素,该元素将被解释为整数 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
host_network | 是 | Boolean | 应用实例是否启用主机网络,不启用则使用端口映射,默认值false |
host_pid | 否 | Boolean | 应用实例是否与主机共PID命名空间,默认值false |
migration | 否 | Boolean | 应用实例故障是否迁移,指定节点组部署时必选,默认值false |
restart_policy | 是 | String | 应用实例重启策略,可选值Always、OnFailure、Never |
toleration_seconds | 否 | Integer | 应用实例故障容忍时间,容忍时间到达后迁移应用实例,只在指定节点组部署时生效 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
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 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
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必须三选一使用 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
configmap | 否 | ConfigsMap object | 环境变量引用配置项时使用。使用ValueFrom时,secret与configmap必须二选一 |
secret | 否 | DeploymentSecrets object | 环境变量引用密钥时使用。使用ValueFrom时,secret与configmap必须二选一 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
key | 是 | String | 配置项的名称,以英文字母或中划线开头,由英文字母、数字、点号、中划线和下划线组成,长度1到63个字符。 |
name | 是 | String | 配置项的属性名,以英文小写字母开头,由中文字符,英文字母,数字,下划线和中划线组成,不能以中划线结尾,长度4-64位。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 否 | String | 密钥的名称,以英文小写字母开头,由中文字符,英文字母,数字,下划线和中划线组成,不能以中划线结尾,长度4-64位 |
key | 否 | String | 密钥的属性名,以英文字母和中划线开头,由英文字母、数字、点号、中划线和下划线组成,长度1-63位 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
container_port | 是 | Long | 容器端口,1到65535之间的整数 |
host_ip | 否 | String | 对应主机网卡地址,形如192.168.0.1 |
host_port | 否 | Long | 主机端口,1到65535之间的整数,与主机端口范围二选一 |
host_port_range | 否 | HostPortRange object | 主机端口范围,在范围内为应用实例自动分配主机端口;与主机端口参数二选一 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
max_port | 是 | Long | 主机端口上限值,1到65535之间的整数;max_port需大于min_port |
min_port | 是 | Long | 主机端口下限制,1到65535之间的整数 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
exec | 否 | Exec object | 执行命令检查,与http_get二选一 |
http_get | 否 | HttpGet object | 执行http探测 |
initial_delay_seconds | 否 | Long | 表示从工作负载启动后从多久开始探测,大于0且不大于3600的整数,默认为10 |
timeout_seconds | 否 | Long | 表示探测超时时间,大于0且不大于3600的整数,默认为1 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
host | 否 | String | 请求的主机地址,默认为容器IP |
path | 是 | String | 必须要以/开头,构造结果为:协议类型://主机地址:端口路径 |
port | 是 | Integer | 探测的http端口,1到65535之间的整数 |
scheme | 否 | String | 协议类型,HTTP或HTTPS,默认HTTP |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
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 |
响应参数
状态码: 200
参数 | 参数类型 | 描述 |
|---|---|---|
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 | 每个节点的部署结果 |
参数 | 参数类型 | 描述 |
|---|---|---|
host_network | Boolean | 应用实例是否启用主机网络,不启用则使用端口映射,默认值false |
host_pid | Boolean | 应用实例是否与主机共PID命名空间,默认值false |
migration | Boolean | 应用实例故障是否迁移,指定节点组部署时必选,默认值false |
restart_policy | String | 应用实例重启策略,可选值Always、OnFailure、Never |
toleration_seconds | Integer | 应用实例故障容忍时间,容忍时间到达后迁移应用实例,只在指定节点组部署时生效 |
参数 | 参数类型 | 描述 |
|---|---|---|
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 |
参数 | 参数类型 | 描述 |
|---|---|---|
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必须三选一使用 |
参数 | 参数类型 | 描述 |
|---|---|---|
configmap | ConfigsMap object | 环境变量引用配置项时使用。使用ValueFrom时,secret与configmap必须二选一 |
secret | DeploymentSecrets object | 环境变量引用密钥时使用。使用ValueFrom时,secret与configmap必须二选一 |
参数 | 参数类型 | 描述 |
|---|---|---|
key | String | 配置项的名称,以英文字母或中划线开头,由英文字母、数字、点号、中划线和下划线组成,长度1到63个字符。 |
name | String | 配置项的属性名,以英文小写字母开头,由中文字符,英文字母,数字,下划线和中划线组成,不能以中划线结尾,长度4-64位。 |
参数 | 参数类型 | 描述 |
|---|---|---|
name | String | 密钥的名称,以英文小写字母开头,由中文字符,英文字母,数字,下划线和中划线组成,不能以中划线结尾,长度4-64位 |
key | String | 密钥的属性名,以英文字母和中划线开头,由英文字母、数字、点号、中划线和下划线组成,长度1-63位 |
参数 | 参数类型 | 描述 |
|---|---|---|
container_port | Long | 容器端口,1到65535之间的整数 |
host_ip | String | 对应主机网卡地址,形如192.168.0.1 |
host_port | Long | 主机端口,1到65535之间的整数,与主机端口范围二选一 |
host_port_range | HostPortRange object | 主机端口范围,在范围内为应用实例自动分配主机端口;与主机端口参数二选一 |
参数 | 参数类型 | 描述 |
|---|---|---|
max_port | Long | 主机端口上限值,1到65535之间的整数;max_port需大于min_port |
min_port | Long | 主机端口下限制,1到65535之间的整数 |
参数 | 参数类型 | 描述 |
|---|---|---|
exec | Exec object | 执行命令检查,与http_get二选一 |
http_get | HttpGet object | 执行http探测 |
initial_delay_seconds | Long | 表示从工作负载启动后从多久开始探测,大于0且不大于3600的整数,默认为10 |
timeout_seconds | Long | 表示探测超时时间,大于0且不大于3600的整数,默认为1 |
参数 | 参数类型 | 描述 |
|---|---|---|
host | String | 请求的主机地址,默认为容器IP |
path | String | 必须要以/开头,构造结果为:协议类型://主机地址:端口路径 |
port | Integer | 探测的http端口,1到65535之间的整数 |
scheme | String | 协议类型,HTTP或HTTPS,默认HTTP |
参数 | 参数类型 | 描述 |
|---|---|---|
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 |
参数 | 参数类型 | 描述 |
|---|---|---|
cpu | String | cpu数量,字符串所对应的数值在0.01到1000之间 |
gpu | String | gpu数量,值在0到1000 |
memory | String | 内存数量,如果是资源限制,其值范围在4到1024000之间,否则在0.01到1024000之间 |
npu | String | npu数量,字符串所对应的数值在0.到1000之间 |
参数 | 参数类型 | 描述 |
|---|---|---|
node_id | String | 部署的节点ID |
error_message | String | 部署到该节点失败时,返回的错误信息 |
error_code | String | 部署到该节点失败时,返回的错误码 |
状态码: 401
参数 | 参数类型 | 描述 |
|---|---|---|
request_id | String | 请求ID |
error_code | String | 错误码 |
error_message | String | 错误信息 |
状态码: 403
参数 | 参数类型 | 描述 |
|---|---|---|
request_id | String | 请求ID |
error_code | String | 错误码 |
error_message | String | 错误信息 |
状态码: 404
参数 | 参数类型 | 描述 |
|---|---|---|
request_id | String | 请求ID |
error_code | String | 错误码 |
error_message | String | 错误信息 |
状态码: 500
参数 | 参数类型 | 描述 |
|---|---|---|
request_id | String | 请求ID |
error_code | String | 错误码 |
error_message | String | 错误信息 |
请求示例
更新自定义技能
https://{endpoint}/v3/8c79e1e7ff39437680a67783feb0e815/ai-mgr/deployments/8c79e1e7ff39437680a67783feb0e811
{
"deployment" : {
"replicas" : 1,
"template" : {
"configs" : {
"restart_policy" : "Always",
"host_network" : false
},
"apps" : [ {
"privileged" : false,
"resources" : {
"limits" : {
"cpu" : "0.25",
"memory" : "128"
},
"requests" : { }
},
"name" : "image",
"app_url" : "xxx"
} ]
}
}
} 响应示例
状态码: 200
请求成功,当批量更新部署节点个数小于20个的时候,返回结果result字段非空,当大于20个的时候,result字段为空,此时可通过回调机制获取部署结果。
{
"template" : {
"configs" : {
"migration" : false,
"host_network" : false,
"host_pid" : false,
"restart_policy" : "Always",
"toleration_seconds" : 0
},
"apps" : [ {
"name" : "example1-skill-name",
"args" : [ ],
"command" : [ "--log_dir=/train --learning_rate=0.01 --batch_size=150" ],
"resources" : {
"limits" : {
"cpu" : "0.25",
"memory" : "128"
},
"requests" : { }
},
"envs" : [ {
"name" : "IVA_SVC_CONFIG",
"value" : "{\"algorithm\":{\"multiTask\":\"no\",\"algType\":\"hilens\"},\"cloud\":{\"disEndpoint\":\"https://dis.cn-north-7.myhuaweicloud.com\",\"region\":\"cn-north-7\"},\"svcInstanceId\":\"modelbox-instance-xxxx\"}"
} ],
"msgs" : [ ],
"ports" : [ {
"container_port" : 10,
"host_port" : 23,
"host_ip" : "10.10.10.10"
} ],
"privileged" : false,
"volumes" : [ {
"name" : "tmp",
"type" : "emptyDir",
"source" : "memory",
"destination" : "/tmp",
"read_only" : false
}, {
"name" : "run",
"type" : "emptyDir",
"source" : "memory",
"destination" : "/run",
"read_only" : false
}, {
"name" : "cgroup",
"type" : "hostPath",
"source" : "/sys/fs/cgroup",
"destination" : "/sys/fs/cgroup",
"read_only" : true
} ],
"app_url" : "xxx",
"is_modelbox" : true
} ]
},
"reason" : null,
"ready_replicas" : 0,
"replicas" : 1,
"description" : "",
"created_at" : "2022-01-25 15:57:07 GMT+08:00",
"source" : "userdefined",
"api_version" : null,
"node_ids" : [ "hilens-e17b497c3a00406f89f605e5c16b40d7" ],
"result" : [ {
"node_id" : "hilens-e17b497c3a00406f89f605e5c16b40d7"
} ],
"cluster_id" : "",
"updated_at" : "2022-01-25 15:57:07 GMT+08:00",
"project_id" : "fff47e1722f94c4e98531bae56821372",
"name" : "example1",
"id" : "hilens-9eebd2c03a2e48a6a47949fcb4f3f66f",
"state" : "CREATING"
} 状态码
状态码 | 描述 |
|---|---|
200 | 请求成功,当批量更新部署节点个数小于20个的时候,返回结果result字段非空,当大于20个的时候,result字段为空,此时可通过回调机制获取部署结果。 |
401 | 认证不通过 |
403 | 拒绝执行请求 |
404 | 请求的资源不存在 |
500 | 服务器内部错误 |
错误码
请参见错误码。

