更新时间:2024-02-06 GMT+08:00

根据组件ID修改组件信息

功能介绍

此API通过组件ID修改组件信息。

URI

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

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

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

application_id

String

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

component_id

String

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

请求消息

表2 请求Header参数

参数

是否必选

参数类型

描述

Content-Type

String

消息体的类型(格式)。

X-Auth-Token

String

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

表3 请求Body参数

参数

是否必选

参数类型

描述

name

String

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

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

labels

Array of objects

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

runtime_stack

Object

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

description

String

描述。

最大长度为128个字符。

source

Object

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

build

Object

组件构建,请参考表32

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

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

replica

Integer

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

storages

Array of objects

存储,请参考表5

deploy_strategy

Object

组件部署,请参考表8

command

Object

启动命令,请参考表11

post_start

Object

启动后处理,请参考表12

pre_stop

Object

停止前处理,请参考表12

mesher

Object

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

timezone

String

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

jvm_opts

String

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

tomcat_opts

Object

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

logs

Array of objects

日志采集,请参考表20

custom_metric

Object

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

affinity

Object

亲和性,请参考表22

anti_affinity

Object

反亲和性,请参考表22

liveness_probe

Object

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

readiness_probe

Object

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

refer_resources

Array of objects

关联资源,请参考表26

external_accesses

Array of objects

外部访问,请参考表34

表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,单批升级。
  • RollingRelease,滚动部署升级。
  • GrayRelease,灰度发布升级。

rolling_release

Object

滚动部署参数,部署类型为RollingRelease时为必选,请参考表9

gray_release

Object

灰度发布升级,部署类型为GrayRelease时为必选,请参考表10

表9 rolling_release参数

参数

是否必选

参数类型

描述

batches

Integer

分批部署批次。

表10 gray_release参数

参数

是否必选

参数类型

描述

type

String

灰度策略:weight, 按灰度流量进行升级。

first_batch_weight

Integer

首批灰度流量比例。

first_batch_replica

Integer

首批灰度实例数量。

remaining_batch

Integer

剩余实例部署批次,首批灰度发布成功之后,剩余实例滚动升级分多少批次完成。

例如:剩余实例数是5,剩余部署批次是3,那么升级剩余实例会按照2:2:1个实例分批升级。

表11 command参数

参数

是否必选

参数类型

描述

command

Array of String

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

args

Array of String

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

表12 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类型时生效。

表13 mesher参数

参数

是否必选

参数类型

描述

port

Integer

进程监听端口。

表14 tomcat_opt参数

参数

是否必选

参数类型

描述

server_xml

String

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

参数

是否必选

参数类型

描述

ip

String

IP地址

hostname

Array of String

主机别名

表16 dns_config参数

参数

是否必选

参数类型

描述

nameservers

Array of String

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

searches

Array of String

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

options

Array of objects

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

表17 options参数

参数

是否必选

参数类型

描述

name

String

操作名称

value

String

操作值

表18 security_context参数

参数

是否必选

参数类型

描述

run_as_user

Integer

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

run_as_group

Integer

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

capabilities

Object

能力集,请参考表19

表19 capabilities参数

参数

是否必选

参数类型

描述

add

Array of String

为运行用户添加Linux权限。

drop

Array of String

移除运行用户Linux权限。

表20 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的名称和容器名称扩展主机路径。
表21 custom_metric参数

参数

是否必选

参数类型

描述

path

String

采集路径,例如:/metrics。

port

Integer

采集端口,例如:9090。

dimensions

String

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

表22 component_affinity参数

参数

是否必选

参数类型

描述

az

Array of String

可用区列表。

node

Array of String

节点列表。

component

Array of objects

组件列表,请参考表23

表23 affinity_component参数

参数

是否必选

参数类型

描述

displayName

String

工作负载名称

name

String

组件名称

表24 match_expressions参数

参数

是否必选

参数类型

描述

key

String

条件key值

value

String

条件value值

operation

String

操作

表25 component_probe参数

参数

是否必选

参数类型

描述

type

String

类型:http、tcp、command。

delay

Integer

启动后多久开始探测。

timeout

Integer

探测超时时间。

scheme

String

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

host

String

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

port

Integer

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

path

String

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

command

Array of String

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

表26 refer_resources参数

参数

是否必选

参数类型

描述

id

String

资源id。

type

String

资源类型。

  • vpc:虚拟私有云
  • eip:弹性公网IP
  • elb:弹性负载均衡
  • cce:云容器引擎
  • ecs:弹性云服务器
  • as: 弹性伸缩组
  • cse:微服务引擎
  • dcs:分布式缓存服务
  • rds:云数据库

parameters

Object

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

表27 refer_resource_parameter参数

参数

是否必选

参数类型

描述

namespace

String

命名空间

表28 env参数

参数

是否必选

参数类型

描述

name

String

变量名。

value

String

变量值。

value_from

Object

变量引用,请参考表29

表29 value_from参数

参数

是否必选

参数类型

描述

reference_type

String

引用类型。

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

name

String

配置项或密钥的名称。

key

String

配置项或密钥的键值。

optional

Boolean

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

表30 runtime_stack参数

参数

是否必选

参数类型

描述

name

String

技术栈名称。

type

String

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

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

version

String

技术栈版本。

deploy_mode

String

部署模式。

  • container,容器部署。
  • virtualmachine,虚机部署。
表31 source参数

参数

是否必选

参数类型

描述

kind

String

组件来源类型。

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

version

String

版本号。

url

String

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

storage

String

存储方式,支持镜像仓库swr、软件仓库swr、软件开发生产线codearts和对象存储obs,类型为package和image时需要添加。

auth

String

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

repo_auth

String

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

repo_namespace

String

代码仓库命名空间。

repo_ref

String

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

repo_type

String

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

web_url

String

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

repo_url

String

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

表32 build参数

参数

是否必选

参数类型

描述

parameters

Map<String, Object>

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

表33 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。

表34 external_accesses参数

参数

是否必选

参数类型

描述

protocol

String

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

address

String

外部访问地址。

forward_port

Integer

外部访问端口。

响应消息

表35 响应参数

参数

参数类型

描述

job_id

String

任务ID。

请求示例

修改名为mycomponet的组件,组件来源使用OBS上bucket0001桶里面的weather-1.0.0.jar包。

{
    "name": "mycomponet",
    "description": "",
    "labels": [
        {
            "key": "com-key",
            "value": "com-value"
        }
    ],
    "version": "2023.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"
        }
    ],
    "replica": 1,
    "external_accesses": []
}

响应示例

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

状态码

表36 状态码说明

HTTP状态码

描述

200

操作成功。

400

错误的请求。

404

请求对象不存在。

500

内部错误。

错误码

错误码格式为:SVCSTG.00100.[Error_ID],例如:SVCSTG.00100400。错误码说明请参考ServiceStage错误码