更新时间:2025-08-07 GMT+08:00
分享

重新部署普通任务组件

功能介绍

此API用于重新部署状态为执行完成或者失败的普通任务组件。

调试

您可以在API Explorer中调试该接口。

URI

PUT /v3/{project_id}/cas/applications/{application_id}/components/{component_id}/redeployment

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

租户项目ID。获取方法,请参考获取项目ID

application_id

String

应用ID。获取方法,请参考获取所有应用

component_id

String

组件ID。获取方法,请参考获取应用所有组件

请求消息

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

消息体的类型(格式),默认取值为“application/json;charset=utf8”。

X-Auth-Token

String

调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考认证鉴权

表3 请求Body参数

参数

是否必选

参数类型

描述

name

String

应用组件名称。不可修改。

由英文字母、数字、中划线(-)、下划线(_)组成,并以英文字母开头,英文字母或者数字结尾,长度为2~64个字符。

labels

Array of objects

标签。容器部署可通过标签查询对应工作负载,虚机部署可配置对应的微服务名称的标签来使用优雅上下线功能,请参考表4

runtime_stack

Object

运行时,不可修改,请参考表28,可通过查询查询技术栈接口返回的信息获取。

description

String

描述。

最大长度为128个字符。

source

Object

代码/软件包来源,请参考表29

build

Object

组件构建,请参考表30

limit_cpu

Number

最大CPU限制,单位为Core。

limit_memory

Number

最大内存限制,单位为GiB。

request_cpu

Number

申请CPU资源,单位为Core。

request_memory

Number

申请内存资源,单位为GiB。

version

String

组件版本号,最大长度32个字符,规则为:

^([0-9]+)(.[0-9]+){2,3}$

envs

Array of objects

环境变量列表,请参考表26

replica

Integer

实例数,仅在使用扩缩容功能时支持进行修改。

storages

Array of objects

存储,请参考表5

deploy_strategy

Object

组件部署,请参考表8

command

Object

启动命令,请参考表10

post_start

Object

启动后处理,请参考表11

pre_stop

Object

停止前处理,请参考表11

mesher

Object

多语言接入服务网格,当技术栈选择Nodejs且绑定微服务引擎CSE时为必选,请参考表12

timezone

String

指定组件运行的时区,比如Asia/Shanghai。

jvm_opts

String

jvm参数,例如-Xms256m -Xmx1024m,多个参数以空格间隔,不填则使用默认值。

tomcat_opts

Object

tomcat参数,技术栈选择tomcat时生效,请参考表13

host_aliases

Array of objects

主机别名,请参考表14

dns_policy

String

DNS策略。

  • Default,继承pod所在节点域名解析配置。
  • ClusterFirst,追加域名解析配置。
  • ClusterFirstWithHostNet,仅对以hostNetWork方式运行的pod生效。
  • None,替换域名解析策略。

dns_config

Object

DNS配置,请参考表15

workload_kind

String

工作负载类型,固定为job,表示普通任务。

security_context

Object

安全策略,请参考表17

logs

Array of objects

日志采集,请参考表19

custom_metric

Object

自定义指标监控,请参考表20

affinity

Array of objects

亲和性,请参考表21

anti_affinity

Array of objects

反亲和性,请参考表21

liveness_probe

Object

组件存活探针,请参考表23

readiness_probe

Object

组件业务探针,请参考表23

startup_probe

Object

组件启动探针,请参考表23

refer_resources

Array of objects

关联资源,请参考表24

external_accesses

Array of objects

外部访问,请参考表32

container_name

String

容器名称。

multi_containers

Array of Objects

多容器配置,请参考表34

workload_content

String

工作负载内容。

configs

Array of Objects

组件统一配置,请参考表35

config_mode

String

工作负载配置模式。固定为ui,表示基于UI页面配置部署。

enable_sermant_injection

Boolean

是否开启Sermant。

enable_sermant_spring_register

Boolean

Spring Cloud Huawei框架的微服务是否需要Sermant帮助注册到注册中心。

enable_sermant_dubbo_register

Boolean

Dubbo框架的微服务是否需要Sermant帮助注册到注册中心。

enable_sermant_config

Boolean

是否开启Sermant动态配置插件能力。

cell_id

String

部署单元ID。

swimlane_id

String

泳道ID。

sermantAgentInjectActionFlag

Boolean

JDK17以及JDK21是否自动添加以下JVM环境变量。

JDK17:

--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.net=ALL-UNNAMED
--add-opens java.base/java.math=ALL-UNNAMED
--add-opens java.base/sun.net.www=ALL-UNNAMED
--add-opens java.base/sun.net.www.protocol.http=ALL-UNNAMED

JDK21:

--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.net=ALL-UNNAMED
--add-opens java.base/java.math=ALL-UNNAMED
--add-opens java.base/sun.net.www=ALL-UNNAMED
--add-opens java.base/sun.net.www.protocol.http=ALL-UNNAMED
-Dnet.bytebuddy.experimental=true

sys_config

Map<String, String>

使用压缩包在虚拟机环境下部署组件配置项。

image_pull_secrets

Array of String

镜像拉取密钥列表。

template_source

Object

组件模板包来源,请参考表36

input_values

Map<String, String>

模板包输入信息。

auto_lts_config

Object

LTS自动配置,请参考表33

task_setting

Object

job类型工作负载的任务设置,请参考表39

vmapp_config_mode

String

虚拟机部署方式部署组件的目录类型。

  • system:内置系统级配置。
  • custom_system:自定义系统级配置。

vmapp_config

Object

虚拟机部署方式部署组件的目录配置,请参考表40

表4 labels

参数

是否必选

参数类型

描述

key

String

标签名称。

value

String

标签值。

表5 storages

参数

是否必选

参数类型

描述

type

String

数据存储类型。

  • HostPath,本地磁盘主机路径挂载。
  • EmptyDir,本地磁盘临时路径挂载。
  • ConfigMap,本地磁盘配置项挂载。
  • Secret,本地磁盘密钥挂载。
  • PersistentVolumeClaim,云存储挂载。

name

String

存储盘名称。

parameters

Object

对应各种数据存储类型的信息参数,请参考表6

mounts

Array of objects

数据存储挂载路径,请参考表7

表6 component_storage_parameters

参数

是否必选

参数类型

描述

path

String

主机路径, 适用于HostPath的存储类型。当数据存储类型为HostPath为必选参数。

name

String

配置项、密钥或者PVC的名字, 适用于ConfigMap、Secret和PersistentVolumeClaim的存储类型。当数据存储类型为ConfigMap、Secret和PersistentVolumeClaim为必选参数。

default_mode

Integer

挂载的权限,十进制格式,例如:384。适用于ConfigMap和Secret的存储类型。

medium

String

适用于EmptyDir类型的存储。不传参数为默认的磁盘介质,传参为memory则开启内存存储。

表7 mounts

参数

是否必选

参数类型

描述

path

String

挂载路径

sub_path

String

挂载路径的子路径

read_only

Boolean

是否只读

表8 deploy_strategy

参数

是否必选

参数类型

描述

type

String

部署类型。

  • OneBatchRelease,单批部署。
表9 rolling_release

参数

是否必选

参数类型

描述

batches

Integer

分批部署批次。

表10 command

参数

是否必选

参数类型

描述

command

Array of String

运行命令,控制容器运行的输入命令。

args

Array of String

运行参数,控制容器运行命令的输入参数。例如:-port=8080,多条参数以换行分隔。

表11 component_lifecycle

参数

是否必选

参数类型

描述

type

String

处理方式。

  • http,http请求方式。
  • command,命令行方式。

scheme

String

http请求类型参数:HTTP、HTTPS,type为http类型时生效。

host

String

默认为POD的IP,可以指定自定义的IP。type为http类型时生效。

port

Integer

端口,type为http类型时生效。

path

String

请求路径,type为http类型时生效。

command

Array of String

命令列表,type为command类型时生效。

表12 mesher

参数

是否必选

参数类型

描述

port

Integer

进程监听端口。

表13 tomcat_opt

参数

是否必选

参数类型

描述

server_xml

String

  1. 监听端口以server.xml配置的为准,如果之前在公网访问配置了监听端口,请保持一致。
  2. 自定义的Tomcat配置可能存在端口冲突,请检查自定义的端口是否被占用。
表14 host_aliases

参数

是否必选

参数类型

描述

ip

String

IP地址

hostnames

Array of String

主机别名

表15 dns_config

参数

是否必选

参数类型

描述

nameservers

Array of String

Pod的DNS服务器的IP地址列表。

searches

Array of String

可选,用于在Pod中查找主机名的DNS搜索域的列表。

options

Array of objects

可选的对象列表,其中每个对象可能具有name属性(必需)和value属性(可选)。 此属性中的内容将合并到从指定的DNS策略生成的选项。 重复的条目将被删除。请参考表16

表16 options

参数

是否必选

参数类型

描述

name

String

操作名称

value

String

操作值

表17 security_context

参数

是否必选

参数类型

描述

run_as_user

Integer

运行用户,容器以当前用户权限运行,如以root权限运行则填写root用户ID 0。

run_as_group

Integer

运行属组,指定所有容器中的进程都以属组运行。

capabilities

Object

能力集,请参考表18

表18 capabilities

参数

是否必选

参数类型

描述

add

Array of String

为运行用户添加Linux权限。

drop

Array of String

移除运行用户Linux权限。

表19 logs

参数

是否必选

参数类型

描述

log_path

String

容器中日志路径。

rotate

String

日志转储周期。

host_path

String

挂载的主机路径。

host_extend_path

String

主机扩展路径,通过扩展主机路径,实现同一个主机路径下区分来自不同容器的挂载:

  • None,不使用扩展路径。
  • PodUID,通过POD的ID扩展主机路径。
  • PodName,通过POD的名称扩展主机路径。
  • PodUID/ContainerName,通过POD的ID和容器名称扩展主机路径。
  • PodName/ContainerName,通过POD的名称和容器名称扩展主机路径。
表20 custom_metric

参数

是否必选

参数类型

描述

path

String

采集路径,例如:/metrics。

port

Integer

采集端口,例如:9090。

dimensions

String

监控维度,例如:"cpu_usage,mem_usage"。

表21 component_affinity

参数

是否必选

参数类型

描述

kind

String

对象类型。

  • node:节点。
  • pod:工作负载。

condition

String

策略满足类型。

  • required:必须满足。
  • preferred:尽量满足。

match_expressions

Array of objects

调度策略规则,请参考表22

weight

String

权重。

  • “condition”选择“required”时,固定为100。
  • “condition”选择“preferred”时,可输入1到100之间的整数。

topology_key

String

拓扑域。

表22 match_expressions

参数

是否必选

参数类型

描述

key

String

匹配标签key值。

operation

String

匹配条件。

value

String

匹配标签value值。

表23 component_probe

参数

是否必选

参数类型

描述

type

String

类型:http、tcp、command。

delay

Integer

启动后多久开始探测。

timeout

Integer

探测超时时间。

scheme

String

请求类型:HTTP、HTTPS,type为http类型时生效。

host

String

默认为POD的IP,可以指定自定义的IP。type为http类型时生效。

port

Integer

端口号,type为http和tcp类型时生效

path

String

请求路径,type为http类型时生效。

command

Array of String

命令列表,type为command类型时生效。

表24 refer_resources

参数

是否必选

参数类型

描述

id

String

资源id。

type

String

资源类型。

  • vpc:虚拟私有云
  • eip:弹性IP
  • elb:弹性负载均衡
  • cce:云容器引擎
  • ecs:弹性云服务器
  • as: 弹性伸缩组
  • cse:ServiceComb引擎
  • nacos:注册配置中心
  • dcs:分布式缓存服务
  • rds:云数据库
  • gaussdb:云数据库GaussDB
  • dms_rocketmq:分布式消息服务RocketMQ
  • css_es:云搜索服务Elasticsearch
  • custom_k8s:自定义kubernetes集群

parameters

Object

资源参数,当资源类型为cce时必选,请参考表25

表25 refer_resource_parameter

参数

是否必选

参数类型

描述

namespace

String

命名空间

name

String

资源名。

capacity

Integer

存储容量,单位GB。

type

String

存储卷声明类型。

  • efs,极速文件存储。
  • obs,对象存储。
  • sfs,文件存储。
  • evs,云硬盘。

class

String

存储卷声明子类型。

  • csi-sfsturbo,type为efs时固定指定。
  • csi-obs,type为obs时固定指定。
  • csi-nas,type为sfs时固定指定。
  • csi-disk,type为evs时固定指定。

obs_volume_type

String

OBS存储卷类型,默认为STANDARD标准存储类型。

access_mode

String

存储卷访问模式。

  • ReadWriteOnce:卷可以被一个节点以读写方式挂载。
  • ReadWriteMany:卷可以被多个节点以读写方式挂载。

availableZone

String

可用区。

volume_type

String

存储卷类型。

表26 envs

参数

是否必选

参数类型

描述

name

String

变量名。

value

String

变量值。

value_from

Object

变量引用,请参考表27

表27 value_from

参数

是否必选

参数类型

描述

reference_type

String

引用类型。

  • configMapKey,配置项导入。
  • secretKey,密钥导入。

name

String

配置项或密钥的名称。

key

String

配置项或密钥的键值。

optional

Boolean

配置项或密钥的key是否必须存在:true、false。

表28 runtime_stack

参数

是否必选

参数类型

描述

name

String

技术栈名称。

type

String

技术栈类型,支持Java、Tomcat、Nodejs、Php、Docker、Python。

当部署模式为虚机部署时,仅支持Java、Tomcat、Nodejs;容器部署上述类型都支持。

version

String

技术栈版本。

deploy_mode

String

部署模式。

  • container,容器部署。
  • virtualmachine,虚机部署。
表29 source

参数

是否必选

参数类型

描述

kind

String

组件来源类型。

  • code,源码。
  • package,软件包。
  • image,镜像包。

version

String

版本号。

url

String

包地址,类型为package和image时需要添加。

storage

String

存储方式。

  • devcloud:CodeArts软件发布库。
  • obs:OBS对象存储。
  • http:自定义文件地址。
  • swr:镜像仓库。

组件来源包类型为package和image时需要添加。

auth

String

认证方式,支持iam、none,默认是iam。

repo_auth

String

授权名称,在授权列表获取。

repo_namespace

String

代码仓库命名空间。

repo_ref

String

代码分支或者Tag,默认是master。

repo_type

String

代码仓类型,支持CodeArts、Gitee、GitHub、BitBucket、GitLab。

web_url

String

码跳转链接,例如:https://github.com/example/demo.git。

repo_url

String

代码仓url,例如:https://github.com/example/demo.git。

commit_id

String

代码仓库中,commit id是每次提交的唯一标识符,用于识别和引用特定的提交。

长度为8到40个字符,以小写字母或数字开头。

http_username

String

“storage”“http”时需要填写,支持用户名、密码认证,这里填写用户名。

http_password

String

“storage”“http”时需要填写,支持用户名、密码认证,这里填写密码。

http_command

String

“storage”“http”时需要填写,这里是用户定义软件包的地址。

http_headers

Map<String, String>

“storage”“http”时需要填写,支持用户自定义请求头,支持填写一个key,value,例如{"key":"xx","value":"xx""},其中的key和value关键字固定。

表30 build

参数

是否必选

参数类型

描述

parameters

Map<String, Object>

只在没有ID,新创建构建时提供。请参考表31

表31 parameters

参数

是否必选

参数类型

描述

build_cmd

String

编译命令。默认:

  1. 根目录存在build.sh:./build.sh
  2. 根据运行系统,示例如下:
    • Java和Tomcat:mvn clean package
    • Nodejs: npm build

dockerfile_path

String

dockerfile地址。默认是根目录./。

artifact_namespace

String

构建归档组织,默认为cas_{project_id}。

cluster_id

String

指定构建集群的id。

node_label_selector

Map<String, String>

key是标签的键,value是标签的值。

environment_id

String

环境ID。

表32 external_accesses

参数

是否必选

参数类型

描述

protocol

String

外部访问类型,取值范围为:http、https。

address

String

外部访问地址。

forward_port

Integer

外部访问端口。

表33 auto_lts_config

参数

是否必选

参数类型

描述

enable

Boolean

是否开启LTS自动配置。

lts_log_path

Array of String

接入配置日志路径。

表34 multi_containers

参数

是否必选

参数类型

描述

container_name

String

容器名称。

source

Object

代码/软件包来源,请参考表29,多容器模式下仅支持镜像。

limit_cpu

Number

最大CPU限制,单位为Core。

limit_memory

Number

最大内存限制,单位为GiB。

request_cpu

Number

申请CPU资源,单位为Core。

request_memory

Number

申请内存资源,单位为GiB。

envs

Array of objects

环境变量列表,请参考表26

liveness_probe

Object

容器存活探针,请参考表23

readiness_probe

Object

容器业务探针,请参考表23

startup_probe

Object

容器启动探针,请参考表23

command

Object

启动命令,请参考表10

post_start

Object

启动后处理,请参考表11

pre_stop

Object

停止前处理,请参考表11

logs

Array of objects

日志采集,请参考表19

storages

Array of objects

存储,请参考表5

security_context

Object

安全策略,请参考表17

表35 configs

参数

是否必须

参数类型

描述

conifg_id

String

统一配置ID。

mount_path

String

挂载路径。

表36 template_source

参数

是否必选

参数类型

描述

storage

String

组件模板包存储方式。

  • devcloud,CodeArts软件发布库。
  • obs,OBS对象存储。
  • http,自定义文件地址。
  • devcloud_repository,CodeArts私有依赖库。

url

String

组件模板包地址。

组件模板包存储方式为自定义文件地址时有效。

http_username

String

用户名。

组件模板包存储方式为自定义文件地址且安全认证方式为用户名密码认证时有效。

http_password

String

密码。

组件模板包存储方式为自定义文件地址且安全认证方式为用户名密码认证时有效。

http_headers

Array of objects

请求头,请参考表37

组件模板包存储方式为自定义文件地址且安全认证方式为自定义Header认证时有效。

表37 http_headers

参数

是否必选

参数类型

描述

key

String

请求key。

value

String

请求value。

表38 config_encryption

参数

是否必选

参数类型

描述

key_id

String

DEW服务中用户密钥ID。

表39 task_setting

参数

是否必选

参数类型

描述

parallelism

Integer

并行数。

active_deadline_seconds

Integer

超时时间(秒)。

completion_mode

String

完成模式

  • NonIndexed,非索引模式。
  • Indexed,索引模式。

suspend

Boolean

是否挂起任务。

默认任务创建后被立即执行。

选择挂起任务后,任务创建后处于挂起状态;将其关闭后,任务继续执行。

表40 vmapp_config

参数

是否必选

参数类型

描述

run_as_user

String

运行用户。

app_home

Object

部署目录配置,请参考表41

log_home

Object

日志目录配置,请参考表41

表41 log_config

参数

是否必选

参数类型

描述

path

String

目录配置路径。

user

String

目录配置路径所属用户。

group

String

目录配置路径所属用户组。

mode

String

目录配置路径权限。

响应消息

表42 响应参数

参数

参数类型

描述

job_id

String

任务ID。

请求示例

重新部署名为mycomponet的普通任务类型组件,修改组件任务设置。

{
    "name": "mycomponet",
    "description": "",
    "labels": [
        {
            "key": "com-key",
            "value": "com-value"
        }
    ],
    "version": "2025.0323.15181",
    "runtime_stack": {
        "name": "OpenJDK8",
        "version": "1.1.1",
        "type": "Java",
        "deploy_mode": "virtualmachine"
    },
    "source": {
        "kind": "package",
        "url": "obs://bucket0001/weather-1.0.0.jar",
        "version": "",
        "storage": "obs"
    },
    "tomcat_opts": {
        "server_xml": ""
    },
    "refer_resources": [
        {
            "id": "67835bb3-1235-4cc9-be71-becbb2b4ca0d",
            "type": "ecs"
        }
    ],
    "task_setting": {
        "parallelism": 1,
        "active_deadline_seconds": null,
        "completion_mode": "Indexed",
        "suspend": false
    }
    "replica": 1,
    "external_accesses": []
}

响应示例

{
    "job_id": "JOB1c8e20ec-1b30-4ee4-9a36-35a18b5e8b7e"
}

状态码

状态码

描述

200

操作成功。

400

错误的请求。

404

请求对象不存在。

500

内部错误。

错误码

错误码说明请参考ServiceStage错误码

相关文档