更新时间:2026-02-28 GMT+08:00
分享

应用中创建组件 - CreateApplicationComponent

功能介绍

此API用于在应用中创建组件。

调试

您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限。

  • 如果使用角色与策略授权,具体权限要求请参见权限和授权项
  • 如果使用身份策略授权,需具备如下身份策略权限。

    授权项

    访问级别

    资源类型(*为必须)

    条件键

    别名

    依赖的授权项

    servicestage:app:createComponent

    write

    app *

    servicestage:app:create

    • aom:discoveryRule:list
    • aom:discoveryRule:set
    • as:scalingConfig:create
    • as:scalingConfig:get
    • as:scalingConfig:list
    • as:scalingPolicy:create
    • as:scalingPolicy:get
    • as:scalingPolicy:list
    • cce:cluster:get
    • dcs:instance:get
    • dns:recordset:create
    • dns:recordset:get
    • ecs:cloudServers:get
    • elb:l7policies:create
    • elb:l7policies:get
    • elb:l7policies:list
    • elb:listeners:create
    • elb:listeners:get
    • elb:listeners:list
    • elb:members:create
    • elb:members:get
    • elb:members:list
    • ims:dataImages:create
    • ims:images:create
    • ims:images:get
    • ims:images:list
    • ims:wholeImages:create
    • rds:instance:get
    • servicestage:assembling:create
    • servicestage:assembling:getInfo
    • vpc:addressGroups:get
    • vpc:networks:get
    • vpc:routeTables:get
    • vpc:securityGroupRules:get
    • vpc:securityGroups:get
    • vpc:subnets:get
    • vpc:subnets:get
    • vpc:vpcs:get

URI

POST /v3/{project_id}/cas/applications/{application_id}/components

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:

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

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

application_id

String

参数解释:

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

约束限制:

不涉及

取值范围:

不涉及

默认取值:

不涉及

请求消息

表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个字符。

默认取值:

不涉及

workload_name

String

参数解释:

工作负载名称。

取值范围:

不涉及

默认取值:

不涉及

labels

Array of objects

参数解释:

标签。

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

create_mode

String

参数解释:

组件创建方式。

取值范围:

  • 默认不传此参数表示创建并部署组件。
  • 传此参数且其值为“drafts”表示创建“草稿”态组件。

默认取值:

不涉及

runtime_stack

Object

参数解释:

运行时,请参考表30,可通过查询查询技术栈 - QueryTechnologyStack接口返回的信息获取。

environment_id

String

参数解释:

环境ID,可通过获取所有环境 - ObtainAllEnvironments接口返回的信息获取。

取值范围:

不涉及

默认取值:

不涉及

description

String

参数解释:

组件描述。

取值范围:

最大长度为128个字符。

默认取值:

不涉及

source

Object

参数解释:

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

“create_mode”“drafts”,本参数非必选。

build

Object

参数解释:

组件构建,容器部署并没有使用镜像时必传,请参考表32

limit_cpu

Number

参数解释:

最大CPU限制,单位为Core。

取值范围:

不涉及

默认取值:

不涉及

limit_memory

Number

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

request_cpu

Number

参数解释:

申请CPU资源,单位为Core。

取值范围:

不涉及

默认取值:

不涉及

request_memory

Number

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

version

String

参数解释:

组件版本号。

“create_mode”“drafts”,本参数非必选。

取值范围:

最大长度32,规则为:

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

默认取值:

不涉及

envs

Array of objects

参数解释:

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

replica

Integer

参数解释:

实例数。

“create_mode”“drafts”,本参数非必选。

取值范围:

不涉及

默认取值:

不涉及

storages

Array of objects

参数解释:

存储,请参考表5

deploy_strategy

Object

参数解释:

组件部署,请参考表8

command

Object

参数解释:

启动命令,请参考表12

post_start

Object

参数解释:

启动后处理,请参考表13

pre_stop

Object

参数解释:

停止前处理,请参考表13

mesher

Object

参数解释:

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

timezone

String

参数解释:

指定组件运行的时区。

取值范围:

不涉及

默认取值:

不涉及

jvm_opts

String

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

tomcat_opts

Object

参数解释:

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

host_aliases

Array of objects

参数解释:

主机别名,请参考表16

dns_policy

String

参数解释:

DNS策略。

取值范围:

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

默认取值:

不涉及

dns_config

Object

参数解释:

DNS配置,请参考表17

workload_kind

String

参数解释:

工作负载类型。

取值范围:

  • deployment:无状态工作负载。
  • statefulset:有状态工作负载。
  • daemonset:守护进程集。
  • job:普通任务。

默认取值:

不涉及

security_context

Object

参数解释:

安全策略,请参考表19

logs

Array of objects

参数解释:

日志采集,请参考表21

custom_metric

Object

参数解释:

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

affinity

Array of objects

参数解释:

亲和性,请参考表23

anti_affinity

Array of objects

参数解释:

反亲和性,请参考表23

liveness_probe

Object

参数解释:

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

readiness_probe

Object

参数解释:

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

refer_resources

Array of objects

参数解释:

关联资源,请参考表26

external_accesses

Array of objects

参数解释:

外部访问,请参考表34

tolerations

Array of objects

参数解释:

容忍度策略,请参考表35

container_name

String

参数解释:

容器名称。

取值范围:

不涉及

默认取值:

不涉及

update_strategy

Object

参数解释:

组件升级策略,请参考表38

multi_containers

Array of objects

参数解释:

多容器配置,请参考表36

service_name

String

参数解释:

有状态负载的实例间发现服务配置Service名称。

取值范围:

不涉及

默认取值:

不涉及

ports

Array of objects

参数解释:

有状态负载的实例间发现服务配置端口配置,请参考表37

workload_content

String

参数解释:

工作负载内容。

取值范围:

不涉及

默认取值:

不涉及

configs

Array of objects

参数解释:

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

config_mode

String

参数解释:

工作负载配置模式。

取值范围:

  • ui:基于ui页面配置选项部署。
  • yaml:基于yaml文件部署。
  • template:基于组件模板创建。

默认取值:

不涉及

enable_sermant_injection

Boolean

参数解释:

是否开启Sermant。

取值范围:

  • true:开启
  • false:不开启

默认取值:

不涉及

enable_sermant_spring_register

Boolean

参数解释:

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

取值范围:

  • true:注册
  • false:不注册

默认取值:

不涉及

enable_sermant_dubbo_register

Boolean

参数解释:

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

取值范围:

  • true:注册
  • false:不注册

默认取值:

不涉及

enable_sermant_config

Boolean

参数解释:

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

取值范围:

  • true:开启
  • false:不开启

默认取值:

不涉及

enable_sermant_mq_gray

Boolean

参数解释:

是否开启Sermant消息灰度能力。

取值范围:

  • true:开启
  • false:不开启

默认取值:

不涉及

cell_id

String

参数解释:

部署单元ID。

取值范围:

不涉及

默认取值:

不涉及

swimlane_id

String

参数解释:

泳道ID。

取值范围:

不涉及

默认取值:

不涉及

base_lane_instance_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 strings

参数解释:

镜像拉取密钥列表。

取值范围:

不涉及

默认取值:

不涉及

auto_lts_config

Object

参数解释:

LTS自动配置,请参考表40

config_encryption

Object

参数解释:

单容器组件配置加密密钥时需设置,请参考表41

task_setting

Object

参数解释:

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

vmapp_config_mode

String

参数解释:

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

取值范围:

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

默认取值:

不涉及

vmapp_config

Object

参数解释:

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

表4 labels

参数

是否必选

参数类型

描述

key

String

参数解释:

标签名称。

取值范围:

1到36个字符,只能包含数字、英文字母、下划线(_)、中划线(-)或中文。

说明:

Key的取值不能是系统内置的app、casid或version,否则会导致创建并部署组件时报错。

默认取值:

不涉及

value

String

参数解释:

标签值。

取值范围:

0到43个字符,只能包含数字、英文字母、下划线(_)、点(.)、中划线(-)或中文。

默认取值:

不涉及

表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

参数解释:

挂载路径,数据存储挂载到应用上的路径。例如,/tmp。

取值范围:

不涉及

默认取值:

不涉及

sub_path

String

参数解释:

挂载路径的子路径。

取值范围:

不涉及

默认取值:

不涉及

read_only

Boolean

参数解释:

是否只读。

取值范围:

  • true:只读,只能读应用路径中的数据存储。
  • false:读写,可修改应用路径中的数据存储,应用迁移时新写入的数据不会随之迁移,会造成数据丢失。

默认取值:

不涉及

表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:按灰度流量进行升级。
  • CONTENT:按内容进行灰度。

默认取值:

不涉及

first_batch_weight

Integer

参数解释:

首批灰度流量比例,灰度策略为WEIGHT时为必选。

取值范围:

不涉及

默认取值:

不涉及

first_batch_replica

Integer

参数解释:

首批灰度实例数量,灰度策略为WEIGHT时为必选。

取值范围:

不涉及

默认取值:

不涉及

remaining_batch

Integer

参数解释:

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

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

灰度类型为WEIGHT时为必选。

取值范围:

不涉及

默认取值:

不涉及

deployment_mode

Integer

参数解释:

部署模型。

取值范围:

  • 1:上游是微服务网关。
  • 3:上游是微服务。
  • 4:上游是ELB。

默认取值:

不涉及

replica_surge_mode

String

参数解释:

灰度实例新增模式,灰度策略为CONTENT时为必选。

取值范围:

  • MIRROR:蓝绿。
  • EXTRA:金丝雀(先增后减)。
  • NOSURGE:金丝雀(先减后增)。

默认取值:

不涉及

rule_match_mode

String

参数解释:

灰度规则生效方式,灰度策略为CONTENT时为必选。

取值范围:

  • ALL:满足所有条件。
  • ANY:满足任一条件。

默认取值:

不涉及

rules

Object

参数解释:

灰度规则,参数表11,灰度策略为CONTENT时为必选。

表11 gray_rules

参数

是否必选

参数类型

描述

type

String

参数解释:

匹配类型。

取值范围:

HEADER:请求头

默认取值:

不涉及

key

String

参数解释:

参数名称。

取值范围:

不涉及

默认取值:

不涉及

value

String

参数解释:

条件值。

取值范围:

不涉及

默认取值:

不涉及

condition

String

参数解释:

条件类型。

取值范围:

  • EQUAL:相等。
  • MATCH:匹配。
  • IN:枚举。

默认取值:

不涉及

表12 command

参数

是否必选

参数类型

描述

command

Array of strings

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

args

Array of strings

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

表13 component_lifecycle

参数

是否必选

参数类型

描述

type

String

参数解释:

处理方式。

取值范围:

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

默认取值:

不涉及

scheme

String

参数解释:

http请求类型。

type为http类型时生效。

取值范围:

  • HTTP
  • HTTPS

默认取值:

不涉及

host

String

参数解释:

指定自定义的IP。

type为http类型时生效。

取值范围:

不涉及

默认取值:

默认为POD的IP。

port

Integer

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

path

String

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

command

Array of strings

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

表14 mesher

参数

是否必选

参数类型

描述

port

Integer

参数解释:

进程监听端口。

取值范围:

不涉及

默认取值:

不涉及

表15 tomcat_opt

参数

是否必选

参数类型

描述

server_xml

String

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

表16 host_aliases

参数

是否必选

参数类型

描述

ip

String

参数解释:

IP地址。

取值范围:

不涉及

默认取值:

不涉及

hostnames

Array of strings

参数解释:

主机别名。

取值范围:

不涉及

默认取值:

不涉及

表17 dns_config

参数

是否必选

参数类型

描述

nameservers

Array of strings

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

searches

Array of strings

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

options

Array of objects

参数解释:

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

表18 options

参数

是否必选

参数类型

描述

name

String

参数解释:

操作名称。

取值范围:

不涉及

默认取值:

不涉及

value

String

参数解释:

操作值。

取值范围:

不涉及

默认取值:

不涉及

表19 security_context

参数

是否必选

参数类型

描述

run_as_user

Integer

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

run_as_group

Integer

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

capabilities

Object

参数解释:

能力集,请参考表20

表20 capabilities

参数

是否必选

参数类型

描述

add

Array of strings

参数解释:

为运行用户添加Linux权限。

取值范围:

不涉及

默认取值:

不涉及

drop

Array of strings

参数解释:

移除运行用户Linux权限。

取值范围:

不涉及

默认取值:

不涉及

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

默认取值:

不涉及

表22 custom_metric

参数

是否必选

参数类型

描述

path

String

参数解释:

采集路径,例如:/metrics。

取值范围:

不涉及

默认取值:

不涉及

port

Integer

参数解释:

采集端口,例如:9090。

取值范围:

不涉及

默认取值:

不涉及

dimensions

String

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

表23 component_affinity

参数

是否必选

参数类型

描述

kind

String

参数解释:

对象类型。

取值范围:

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

默认取值:

不涉及

condition

String

参数解释:

策略满足类型。

取值范围:

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

默认取值:

不涉及

match_expressions

Array of objects

参数解释:

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

weight

String

参数解释:

权重。

取值范围:

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

默认取值:

不涉及

topology_key

String

参数解释:

拓扑域。

取值范围:

不涉及

默认取值:

不涉及

表24 match_expressions

参数

是否必选

参数类型

描述

key

String

参数解释:

匹配标签key值。

取值范围:

不涉及

默认取值:

不涉及

operation

String

参数解释:

匹配条件。

取值范围:

不涉及

默认取值:

不涉及

value

String

参数解释:

匹配标签value值。

取值范围:

不涉及

默认取值:

不涉及

表25 component_probe

参数

是否必选

参数类型

描述

type

String

参数解释:

类型。

取值范围:

  • http:HTTP请求检查
  • tcp:TCP端口检查
  • command:执行命令检查

默认取值:

不涉及

delay

Integer

参数解释:

启动后多久开始探测。

取值范围:

不涉及

默认取值:

不涉及

timeout

Integer

参数解释:

探测超时时间。

取值范围:

不涉及

默认取值:

不涉及

scheme

String

参数解释:

请求类型。type为http类型时生效。

取值范围:

  • HTTP
  • HTTPS

默认取值:

不涉及

host

String

参数解释:

指定自定义的IP。type为http类型时生效。

取值范围:

不涉及

默认取值:

默认为POD的IP。

port

Integer

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

path

String

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

command

Array of strings

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

表26 refer_resources

参数

是否必选

参数类型

描述

id

String

参数解释:

资源ID。

取值范围:

不涉及

默认取值:

不涉及

type

String

参数解释:

资源类型。

取值范围:

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

默认取值:

不涉及

parameters

Object

参数解释:

资源参数,请参考表27

表27 refer_resource_parameter

参数

是否必选

参数类型

描述

namespace

String

参数解释:

命名空间。

取值范围:

不涉及

默认取值:

不涉及

name

String

参数解释:

资源名。

取值范围:

不涉及

默认取值:

不涉及

capacity

Integer

参数解释:

存储容量,单位GiB。

取值范围:

不涉及

默认取值:

不涉及

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:标准存储,拥有低访问时延和较高的吞吐量,适用于有大量热点对象(平均一个月多次)或小对象(<1MB),且需要频繁访问数据的业务场景。
  • WARM:低频访问存储,适用于不频繁访问(平均一年少于12次)但在需要时也要求能够快速访问数据的业务场景。
  • COLD:归档存储,适用于很少访问(平均一年访问一次)数据的业务场景。

默认取值:

默认为STANDARD标准存储类型。

access_mode

String

参数解释:

存储卷访问模式。

取值范围:

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

默认取值:

不涉及

availableZone

String

参数解释:

可用区。

取值范围:

不涉及

默认取值:

不涉及

volume_type

String

参数解释:

存储卷类型。

取值范围:

  • SATA:普通IO,是指由SATA存储提供资源的磁盘类型。
  • SAS:高IO,是指由SAS存储提供资源的磁盘类型。
  • SSD:超高IO,是指由SSD存储提供资源的磁盘类型。

默认取值:

不涉及

表28 envs

参数

是否必选

参数类型

描述

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。
  • 部署模式为容器部署时,支持Java、Tomcat、Nodejs、Php、Docker、Python。

默认取值:

不涉及

version

String

参数解释:

技术栈版本。

取值范围:

不涉及

默认取值:

不涉及

deploy_mode

String

参数解释:

部署模式。

取值范围:

  • container:容器部署。
  • virtualmachine:虚机部署。

默认取值:

不涉及

表31 source

参数

是否必选

参数类型

描述

kind

String

参数解释:

组件来源类型。

取值范围:

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

默认取值:

不涉及

version

String

参数解释:

版本号。

取值范围:

不涉及

默认取值:

不涉及

url

String

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

storage

String

参数解释:

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

取值范围:

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

默认取值:

不涉及

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关键字固定。

auth

String

参数解释:

认证方式。

取值范围:

  • iam:IAM认证
  • none:无认证

默认取值:

iam

repo_auth

String

参数解释:

授权名称,在授权列表获取,请参考获取仓库授权列表 - ObtainGitRepositoryAuthorizationList

取值范围:

不涉及

默认取值:

不涉及

repo_namespace

String

参数解释:

代码仓库命名空间。

取值范围:

不涉及

默认取值:

不涉及

repo_ref

String

参数解释:

代码分支或者Tag。

取值范围:

不涉及

默认取值:

默认是master

repo_type

String

参数解释:

代码仓类型。

取值范围:

  • DevCloud:codearts制品仓。
  • Gitee:开源中国推出代码托管平台。
  • GitHub:开源代码仓。
  • GitLab:开源代码仓。
  • Bitbucket:源代码托管网站。

默认取值:

不涉及

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个字符,以小写字母或数字开头。

默认取值:

不涉及

表32 build

参数

是否必选

参数类型

描述

parameters

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。获取方法,请参考获取所有环境 - ObtainAllEnvironments

取值范围:

不涉及

默认取值:

不涉及

表34 external_accesses

参数

是否必选

参数类型

描述

protocol

String

参数解释:

外部访问类型。

取值范围:

  • http:超文本传输协议
  • https:超文本传输安全协议

默认取值:

不涉及

address

String

参数解释:

外部访问地址。

取值范围:

不涉及

默认取值:

不涉及

forward_port

Integer

参数解释:

外部访问端口。

取值范围:

不涉及

默认取值:

不涉及

表35 tolerations

参数

是否必选

参数类型

描述

key

String

参数解释:

污点键。

取值范围:

不涉及

默认取值:

不涉及

operator

String

参数解释:

操作符。

取值范围:

  • Equal:设置此操作符表示准确匹配指定污点键(必填)和污点值的节点。如果不填写污点值,则表示可以与所有污点键相同的污点匹配。
  • Exists:设置此操作符表示匹配存在指定污点键的节点,此时容忍度不能指定污点值。若不填写污点键则可以容忍全部污点。

默认取值:

不涉及

value

String

参数解释:

污点值。“operator”“Equal”时,需要填写污点值。

取值范围:

不涉及

默认取值:

不涉及

effect

String

参数解释:

污点策略。

取值范围:

  • NoScheduler:表示匹配污点效果为NoSchedule的污点。
  • PreferNoSchedule:表示匹配污点效果为PreferNoSchedule的污点。
  • NoExecute:表示匹配污点效果为NoExecute的污点。
  • 不设置该参数:表示匹配所有污点效果。

默认取值:

不涉及

toleration_seconds

Integer

参数解释:

容忍时间窗。

“effect”“NoExecute”时支持配置。在容忍时间窗内,Pod还会在拥有污点的节点上运行,超出时间后会被驱逐。

取值范围:

不涉及

默认取值:

不涉及

表36 multi_containers

参数

是否必选

参数类型

描述

container_name

String

参数解释:

容器名称。

取值范围:

不涉及

默认取值:

不涉及

source

Object

参数解释:

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

约束限制:

多容器模式下仅支持镜像。

limit_cpu

Number

参数解释:

最大CPU限制,单位为Core。

取值范围:

不涉及

默认取值:

不涉及

limit_memory

Number

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

request_cpu

Number

参数解释:

申请CPU资源,单位为Core。

取值范围:

不涉及

默认取值:

不涉及

request_memory

Number

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

envs

Array of objects

参数解释:

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

liveness_probe

Object

参数解释:

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

readiness_probe

Object

参数解释:

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

startup_probe

Object

参数解释:

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

command

Object

参数解释:

启动命令,请参考表12

post_start

Object

参数解释:

启动后处理,请参考表13

pre_stop

Object

参数解释:

停止前处理,请参考表13

logs

Array of objects

参数解释:

日志采集,请参考表21

storages

Array of objects

参数解释:

存储,请参考表5

security_context

Object

参数解释:

安全策略,请参考表19

config_encryption

Object

参数解释:

加密配置,多容器组件配置加密密钥时需设置,请参考表41

表37 ports

参数

是否必选

参数类型

描述

name

String

参数解释:

端口名称。

取值范围:

不涉及

默认取值:

不涉及

port

String

参数解释:

访问端口。

取值范围:

不涉及

默认取值:

不涉及

target_port

String

参数解释:

容器端口。

取值范围:

不涉及

默认取值:

不涉及

表38 update_strategy

参数

是否必选

参数类型

描述

type

String

参数解释:

组件升级类型。

取值范围:

  • RollingUpdate:滚动升级,即逐步创建新实例再删除旧实例。
  • Recreate:替换升级,即先把当前实例删掉再重新创建实例。

默认取值:

RollingUpdate

max_unavailable

  • String
  • Integer

参数解释:

最大无效实例数。与replica相比,可以有多少个实例失效,也就是删除的比例。

  • 若下发百分比则为String类型,即与实例数相比无效实例数在实例数中的最大百分比。
  • 若下发整数则为Integer类型,即与实例数相比最多可以有多少个无效实例数。

约束限制:

仅workload_kind为deployment时支持设置。

取值范围:

不涉及

默认取值:

默认值是25%

max_surge

  • String
  • Integer

参数解释:

最大浪涌。与replica相比,可以有多少个实例存在。

  • 若下发百分比则为String类型。
  • 若下发整数则为Integer类型。

约束限制:

仅workload_kind为deployment时支持设置。

取值范围:

不涉及

默认取值:

默认值是25%

termination_period_seconds

Integer

参数解释:

缩容时间窗。工作负载停止前命令的执行时间窗。

取值范围:

不涉及

默认取值:

默认值为30秒。

min_ready_seconds

Integer

参数解释:

实例可用最短时间。指定新创建的实例在没有任意容器崩溃情况下的最小就绪时间,只有超出这个时间实例才被视为可用。

取值范围:

不涉及

默认取值:

默认值为0。

progress_deadline_seconds

Integer

参数解释:

升级最大时长。指定系统在报告组件升级失败之前等待组件取得进展的秒数。

约束限制:

如果指定,则此字段值需要大于min_ready_seconds取值。

取值范围:

不涉及

默认取值:

不涉及

revision_history_limit

Integer

参数解释:

最大保留版本数。用来设定出于回滚目的所要保留的旧实例数量。

取值范围:

不涉及

默认取值:

默认情况下,系统保留10个旧实例。

表39 configs

参数

是否必选

参数类型

描述

config_id

String

参数解释:

统一配置ID。

取值范围:

不涉及

默认取值:

不涉及

mount_path

String

参数解释:

挂载路径。

取值范围:

不涉及

默认取值:

不涉及

表40 auto_lts_config

参数

是否必选

参数类型

描述

enable

Boolean

参数解释:

是否开启LTS自动配置。

取值范围:

  • true:开启
  • false:不开启

默认取值:

不涉及

lts_log_path

Array of strings

参数解释:

接入配置日志路径。

取值范围:

不涉及

默认取值:

不涉及

表41 config_encryption

参数

是否必选

参数类型

描述

key_id

String

参数解释:

DEW服务中用户密钥ID。

取值范围:

不涉及

默认取值:

不涉及

表42 task_setting

参数

是否必选

参数类型

描述

parallelism

Integer

参数解释:

并行数。

取值范围:

不涉及

默认取值:

不涉及

active_deadline_seconds

Integer

参数解释:

超时时间(秒)。

取值范围:

不涉及

默认取值:

不涉及

completion_mode

String

参数解释:

完成模式。

取值范围:

  • NonIndexed:非索引模式
  • Indexed:索引模式

默认取值:

不涉及

suspend

Boolean

参数解释:

是否挂起任务。

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

取值范围:

  • true:挂起任务
  • false:不挂起任务

默认取值:

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

表43 vmapp_config

参数

是否必选

参数类型

描述

run_as_user

String

参数解释:

运行用户。

取值范围:

不涉及

默认取值:

不涉及

app_home

Object

参数解释:

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

log_home

Object

参数解释:

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

表44 log_config

参数

是否必选

参数类型

描述

path

String

参数解释:

目录配置路径。

取值范围:

不涉及

默认取值:

不涉及

user

String

参数解释:

目录配置路径所属用户。

取值范围:

不涉及

默认取值:

不涉及

group

String

参数解释:

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

取值范围:

不涉及

默认取值:

不涉及

mode

String

参数解释:

目录配置路径权限。

取值范围:

不涉及

默认取值:

不涉及

响应消息

表45 响应参数

参数

参数类型

描述

job_id

String

参数解释:

任务ID。

取值范围:

不涉及

component_id

String

参数解释:

应用组件ID。

取值范围:

不涉及

请求示例

  • 场景一:CCE容器环境下创建组件
    创建名为mycomponent的组件。组件部署使用1.2.0版本的Java技术栈,组件来源选择存储在OBS下bucket00001桶里的weather-1.0.0.jar包,部署使用的资源为id为fd92bfab-73b3-11ee-90f0-0255ac1001b3的云容器引擎。
    {
        "name": "mycomponent",
        "description": "",
        "labels": [
            {
                "key": "com-key",
                "value": "com-value"
            }
        ],
        "version": "2023.1102.17105",
        "environment_id": "b489f7b4-2539-45a1-ba71-4728961434ca",
        "runtime_stack": {
            "name": "OpenJDK8",
            "version": "1.2.0",
            "type": "Java",
            "deploy_mode": "container"
        },
        "source": {
            "kind": "package",
            "url": "obs://bucket0001/weather-1.0.0.jar",
            "version": "",
            "storage": "obs"
        },
        "tomcat_opts": {
            "server_xml": ""
        },
        "refer_resources": [
            {
                "id": "fd92bfab-73b3-11ee-90f0-0255ac1001b3",
                "type": "cce",
            }
        ],
        "replica": 1,
        "limit_cpu": 0.25,
        "limit_memory": 0.5,
        "request_cpu": 0.25,
        "request_memory": 0.5
    }
  • 场景二:ECS虚拟机环境下创建组件

    创建名为mycomponent的组件。组件部署使用1.2.0版本的Java技术栈,组件来源选择存储在OBS下bucket00001桶里的weather-1.0.0.jar包,部署使用的资源为id为67835bb3-1235-4cc9-be71-becbb2b4ca0d的弹性云服务器。

    {
        "name": "mycomponent",
        "description": "",
        "labels": [
            {
                "key": "com-key",
                "value": "com-value"
            }
        ],
        "version": "2023.1102.17540",
        "environment_id": "9a075df5-104f-4e21-9dbf-ffc3572effdf",
        "runtime_stack": {
            "name": "OpenJDK8",
            "version": "1.2.0",
            "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": "23598aa9-7a6b-43c7-a53a-39ca5e7290fb",
                "type": "ecs"
            }
        ],
        "replica": 1,
        "external_accesses": [
            {
                "protocol": "http",
                "address": "192.168.0.169",
                "forward_port": 80
            }
        ]
    }

响应示例

{
    "job_id": "JOB8be53b2a-af9a-4e2b-8505-096688a52237",
    "component_id": "b8702b0f-94d3-4822-98a1-56815632a0a0"
}

状态码

状态码

描述

200

操作成功

400

错误的请求

404

请求对象不存在

500

内部错误

错误码

请参考ServiceStage错误码

相关文档