更新容器应用
命令功能
更新容器应用,按照指定容器应用ID,更新MEF Center中保存的容器应用信息,如果对应容器应用已部署,同时会更新对应已部署的容器应用。目前只支持修改对容器镜像名称和容器镜像版本的更新,对其他字段的变更不会被使用。
 MEF Center更新已部署的容器应用成功时是应用在K8s中的daemonset资源更新成功,MEF Edge运行容器实际更新需要通过查询应用实例进行确认。
命令格式
操作类型:PATCH
URL:https://{ip}:{port}/edgemanager/v1/app
请求头:
Content-Type: application/json
{
    "appID": AppId,
    "appName": AppName,
    "containers": [
       {
           "name": ContainerName,
           "cpuRequest": CpuRequest,
           "cpuLimit": CpuLimit,
           "memRequest": MemoryRequest,
           "memLimit": MemoryLimit,
           "image": ImageName,
           "imageVersion": ImageVersion,
           "env": [
               {
                   "name": EnvVarName,
                   "value": EnvVarValue
               }
           ],
           "userID": UserId,
           "groupID": GroupId,
           "command": [
               Command
           ],
           "args" : [
               Argument
           ],
           "containerPort" : [
               {
                   "name" : PortName,
                   "proto" : PortProto,
                   "containerPort" : ContainerPort,
                   "hostIP" : HostIP,
                   "hostPort" : HostPort
               }
           ]
        }
    ],
    "description": Description
}
请求参数
参数  | 
是否必选  | 
说明  | 
取值要求  | 
|---|---|---|---|
appID  | 
必选  | 
容器应用ID  | 
数字,取值最小为1,最大值为2^32-1的整数,必须是存在的应用ID。  | 
appName  | 
必选  | 
容器应用名称  | 
字符串,取值长度1~32个字符,小写字母、数字和“-”,开头结尾只能是字母数字。  | 
description  | 
必选  | 
容器应用描述信息  | 
字符串,取值长度0~512个字符。并且不支持除空格外的其他空白字符。  | 
containers  | 
必选  | 
容器配置数组  | 
对象数组,数组长度为1~10。  | 
参数  | 
是否必选  | 
说明  | 
取值要求  | 
|---|---|---|---|
name  | 
必选  | 
容器名称。  | 
字符串,取值长度为1~32个字符;支持小写字母、数字和其他字符(-),开头和结尾只能是字母或者数字;应用内容器名称不能重复。  | 
cpuRequest  | 
必选  | 
容器申请的CPU核个数。  | 
数字,取值范围为0.01~1000,精确到小数点后两位。  | 
cpuLimit  | 
可选  | 
容器最多使用的CPU核个数。  | 
数字,取值范围为0.01~1000,精确到小数点后两位,且取值大于或等于cpuRequest。  | 
memRequest  | 
必选  | 
容器申请的内存大小。  | 
数字,取值范围为4~1024000,只能取整数,单位为MB。  | 
memLimit  | 
可选  | 
容器最多使用的内存大小。  | 
数字,取值范围为4~1024000,只能取整数,单位为MB,且取值大于或等于memRequest。  | 
npu  | 
可选  | 
容器申请使用的NPU核个数。  | 
数字,取值范围为0~32,只能取整数。  | 
image  | 
必选  | 
使用的镜像名称,使用第三方镜像仓时,全称需要包含镜像仓服务器IP或域名、端口、项目和镜像名。例如fd.fusiondirector.huawei.com:443/library/ubuntu;如果用户不指定镜像的主机名称和端口,容器应用会使用Docker公共仓库。  | 
字符串,取值长度为1~256个字符;支持小写字母、大写字母、数字和其他字符(:-._/)。  | 
imageVersion  | 
必选  | 
镜像版本。  | 
字符串,取值长度1~32个字符,小写字母、大写字母、数字和其他字符(-._)。  | 
env  | 
可选  | 
容器内配置的环境变量。  | 
EnvVar对象数组,最大支持256组key~value。  | 
userID  | 
可选  | 
容器运行指定的用户ID。 不配置此项参数时,会以镜像制作的用户运行,如果镜像制作时的用户不为数字ID或者数字ID为0时,容器应用会在部署后运行失败。当运行推理容器时,需要使用驱动设备,因此不能配置用户ID。  | 
数字,取值范围为1~65535,不能配置为0,即不支持容器以root用户运行。 部署推理容器时,指定用户ID为HwHiAiUser的用户ID(通常为1000)。  | 
groupID  | 
可选  | 
容器运行指定的组ID。 不配置此项参数时,会以镜像制作的用户组运行,如果镜像制作时的用户不为数字组ID或者数字组ID为0时,容器应用会在部署后运行失败。当运行推理容器时,需要使用驱动设备,因此不能配置组ID。  | 
数字,取值范围为1~65535,不能配置为0,即容器不支持以root组用户运行。 部署推理容器时,指定组ID为HwHiAiUser的组ID(通常为1000)。  | 
command  | 
可选  | 
容器启动时的执行命令。  | 
字符串数组,命令列表最多只支持16个,每个命令长度为1~256个字符,支持小写字母、大小字母、数字、空格和其他字符(-/._),结尾只能是大小写字母或数字。  | 
args  | 
可选  | 
容器启动时执行的命令参数。  | 
字符串数组,参数列表最多只支持16个,每个命令长度为1~256个字符,支持小写字母、大小字母、数字、空格和其他字符(-/._=),结尾只能是大小写字母或数字。  | 
containerPort  | 
可选  | 
容器配置的主机端口和容器内端口映射。  | 
ContainerPort对象数组,最大支持16组端口。  | 
hostPathVolumes  | 
可选  | 
容器主机路径挂载配置。 创建推理容器应用时需配置挂载路径,否则可能导致运行失败。  | 
HostPathVolumes对象数组,最大支持256组。  | 
参数  | 
是否必选  | 
说明  | 
取值要求  | 
|---|---|---|---|
name  | 
必选  | 
端口映射名称  | 
字符串,取值长度为1~32个字符,支持小字母、数字、中划线(-);只能以小写字母、数字开头和结尾。  | 
proto  | 
必选  | 
端口映射指定的网络传输层协议  | 
字符串,取值为TCP、UDP。  | 
containerPort  | 
必选  | 
容器内端口  | 
数字,取值范围为1~65535,且只能取整数。  | 
hostIP  | 
必选  | 
端口映射绑定的主机IP地址  | 
字符串,合法主机IP地址即可,只支持IPV4,不能配置为全0或者全255。  | 
hostPort  | 
必选  | 
端口映射主机端口地址  | 
数字,取值范围为1024~65535,且只能取整数。  | 
参数  | 
是否必选  | 
说明  | 
取值要求  | 
|---|---|---|---|
name  | 
必选  | 
环境变量名  | 
字符串,取值为长度2~32个字符,支持大小写字母、数字和其他字符(-._);只能以大小写字母开头,以大小写字母和数字结尾。  | 
value  | 
必选  | 
环境变量值  | 
字符串,取值长度为1~512个字符,支持大小写字母、数字其他字符(-._/:)和空格。  | 
参数  | 
是否必选  | 
说明  | 
取值要求  | 
|---|---|---|---|
name  | 
必选  | 
挂载卷名称  | 
字符串,取值长度为1~32个字符;支持小写字母、数字和其他字符(-),开头和结尾只能是字母或者数字。 同一个容器内部挂载卷名称不能重复。  | 
hostPath  | 
必选  | 
容器挂载卷使用的主机路径。  说明:  
仅支持配置挂载右侧列出的文件或目录的主机路径。若用户参考制作推理镜像或《Atlas 200I A2 加速模块 昇腾软件安装指南》制作容器镜像,对应默认的镜像内挂载路径请参见制作容器镜像->启动容器步骤。  | 
仅支持配置挂载以下文件或目录的主机路径。 
  | 
mountPath  | 
必选  | 
容器内挂载路径  | 
以“/”开始的路径字符串,其后可以接大小写字母,数字和其他字符(_./-),不能包含“..”,路径总长度为2-512个字符,同一个容器内部容器挂载路径名称不能重复。  | 
使用样例
请求样例:
PATCH https://10.10.10.10:30035/edgemanager/v1/app
{
    "appID": 3,
    "appName": "mef-apptest1",
    "containers": [
        {
            "name": "container1",
            "cpuRequest": 1,
            "cpuLimit": 1,
            "memRequest": 200,
            "memLimit": 200,
            "image": "ubuntu",
            "imageVersion": "18.04",
            "env": [
                {
                    "name": "lib",
                    "value": "/test"
                }
            ],
            "userId": 1001,
            "groupId": 1001,
            "command": [
                "/bin/bash","-c"
            ],
            "args" : [
                "sleep 30000"
            ],
            "containerPort" : [
                {
                    "name" : "test-port",
                    "proto" : "TCP",
                    "containerPort" : 1234,
                    "hostIP" : "xx.xx.xx.xx",
                    "hostPort" : 30023
                }
            ],
           "hostPathVolumes":[
           ]
        }
    ],
    "description": "a test case for app-manager"
}
{
    "status":"00000000",
    "msg":"success"
}
响应状态码:200
输出说明
参数  | 
类型  | 
参数说明  | 
|---|---|---|
status  | 
字符串  | 
错误码  | 
msg  | 
字符串  | 
描述信息  |