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

创建组件实例

功能介绍

此API用来创建组件实例。

调试

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

URI

POST /v2/{project_id}/cas/applications/{application_id}/components/{component_id}/instances

表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获取方式,请参考获取用户Token。

表3 请求Body参数

参数

是否必选

参数类型

描述

name

是

String

应用组件实例名称。

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

environment_id

是

String

环境ID。

replica

是

Integer

实例副本数。

flavor_id

是

String

资源规格,可查询获取所有支持的应用资源规格接口获取系统预定义好的资源规格。

如需自定义资源规格,格式为:CUSTOM-xxG:xxm-xxm:xxGi-xxGi。其中:

  • xxG表示给组件实例分配的存储的大小,为保留字段,当前未生效,可以指定为一个固定的数字。
  • xxm-xxm用于指定给组件实例分配的cpu最大核数和最小核数。
  • xxGi-xxGi用于指定给组件实例分配的最大内存和最小内存。

例如,CUSTOM-10G:0.5m-0.25m:1.6Gi-0.8Gi,表示给组件实例分配的CPU核数最大为0.5核,最小为0.25核,分配的最大内存为1.6Gi,最小为0.8Gi。

artifacts

是

Map<String, Object>

组件部署件。key为组件名,对于Docker多容器场景,key为容器名称。请参考表21。

当组件的source参数指定软件包来源时,该参数可以不选,默认继承组件的软件包来源。否则,该参数是必选项。

version

是

String

应用组件版本号,满足版本语义,如1.0.0。

configuration

否

Object

配置参数,如设置环境变量,部署配置,运维监控等, 默认为空。请参考表4。

description

否

String

描述。

最大长度为128个字符。

external_accesses

否

Array of objects

外网访问,请参考表22。

refer_resources

是

Array of objects

部署资源,请参考表23。

表4 configuration

参数

是否必选

参数类型

描述

env

否

Array of objects

环境变量,请参考表5。

storage

否

Array of objects

数据存储配置,请参考表6。

strategy

否

Object

升级策略,请参考表7。

lifecycle

否

Object

生命周期,请参考表8。

scheduler

否

Object

调度策略,请参考表9。

probes

否

Object

健康检查,请参考表10。

container_spec

否

Object

容器信息,请参考表24。

表5 environment

参数

是否必选

参数类型

描述

name

是

String

环境变量名。

由字母、数字、下划线、中划线或者点号组成,不能以数字开头,且长度为1~64个字符。

value

是

String

环境变量值。

表6 storage

参数

是否必选

参数类型

描述

type

是

String

存储类型,取值为:

  • HostPath:主机路径挂载
  • EmptyDir:临时路径挂载
  • ConfigMap:配置项挂载
  • Secret:密钥挂载
  • PersistentVolumeClaim:云存储挂载

parameters

是

Object

存储的参数,请参考表19。

mounts

是

Array of objects

挂载到容器的目录,请参考表20。

表7 strategy

参数

是否必选

参数类型

描述

upgrade

否

String

升级策略,默认为RollingUpdate。取值为Recreate和RollingUpdate,分别为替换升级和滚动升级。

表8 lifecycle

参数

是否必选

参数类型

描述

entrypoint

否

Object

启动命令,请参考表16。

post-start

否

Object

启动后处理,请参考表17。

pre-stop

否

Object

停止前处理,请参考表17。

表9 scheduler

参数

是否必选

参数类型

描述

affinity

否

Object

亲和性,请参考表15。

anti-affinity

否

Object

反亲和性,请参考表15。

表10 probes

参数

是否必选

参数类型

描述

livenessProbe

否

Object

组件存活探针,请参考表11。

readinessProbe

否

Object

组件业务探针,请参考表11。

表11 probes_object

参数

是否必选

参数类型

描述

type

是

String

取值可以为http、tcp或command。对应的检查方式分别为HTTP请求检查,TCP端口检查和执行命令检查。

parameters

是

Object

检查参数。

  • type为http,请参考表12。
  • type为tcp,请参考表14。
  • type为command,请参考表13。

delay

否

integer

表示启动后多久开始探测。

timeout

否

integer

表示探测超时时间。

表12 probes_param_http

参数

是否必选

参数类型

描述

scheme

否

String

HTTP或者HTTPS。

host

否

String

默认为POD的IP。可以指定自定义的IP。

port

否

integer

端口。

path

否

String

请求路径。

表13 probes_param_command

参数

是否必选

参数类型

描述

command

否

Array of strings

命令列表

表14 probes_param_tcp

参数

是否必选

参数类型

描述

port

否

integer

端口

表15 scheduler_affinity

参数

是否必选

参数类型

描述

az

否

Array of strings

az名称列表

node

否

Array of strings

节点私有IP列表

application

否

Array of strings

组件实例名列表

表16 lifecycle_entrypoint

参数

是否必选

参数类型

描述

command

否

Array of strings

可执行的命令。

args

否

Array of strings

运行参数。

表17 lifecycle_process

参数

是否必选

参数类型

描述

type

否

String

取值为command或者http。command为执行命令行,http为发送http请求。

parameters

否

Object

启动后处理或者停止前处理参数。请参考表18。

表18 lifecycle_process_parameters

参数

是否必选

参数类型

描述

command

否

Array of strings

命令参数,比如["sleep", "1"]。适用于command类型。

host

否

String

默认为POD实例的IP地址。也可以自己指定。适用于http类型。

port

否

integer

端口号。适用于http类型。

path

否

String

请求url。适用于http类型。

表19 storage_parameters

参数

是否必选

参数类型

描述

path

否

String

主机路径, 适用于HostPath的存储类型。

name

否

String

配置项或者密钥的名字, 适用于ConfigMap和Secret的存储类型。

defaultMode

否

Integer

挂载的权限,十进制格式,如384。

medium

否

String

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

表20 storage_mounts

参数

是否必选

参数类型

描述

path

是

String

挂载路径,记录挂载的磁盘路径。

subPath

否

String

记录挂载磁盘的子路径。

readOnly

是

boolean

挂载的磁盘权限为只读或者读写。

表21 artifact

参数

是否必选

参数类型

描述

storage

是

String

存储方式,支持软件仓库swr、镜像仓库swr、对象存储obs、软件发布库codearts。

type

是

String

类别。

  • 虚拟机部署支持软件包package。
  • 容器部署支持软件包package、镜像包image。

url

是

String

软件包/镜像地址。对于基于虚机部署的组件,值为软件包的地址。对于基于容器部署的组件,值为镜像的地址或者“组件名:v${index}”,后者表示使用组件来源中的源码或者软件包自动构建生成的镜像。

auth

是

String

认证方式,支持iam和none,默认为iam。

version

否

String

版本号。

properties

否

Map<String, Object>

属性。

表22 external_accesses

参数

是否必选

参数类型

描述

protocol

是

String

协议,支持http、https。

address

是

String

访问地址。

forward_port

是

integer

端口号。

表23 refer_resources

参数

是否必选

参数类型

描述

id

是

String

资源ID。

如果type为ecs的时候,该字段的值固定为“Default”。

type

是

String

基础资源:cce、ecs、as。

可选资源:rds、dcs、elb、cse等其他类型。

refer_alias

否

String

应用别名,dcs时才提供,支持“distributed_session”、“distributed_cache”、“distributed_session, distributed_cache”。默认值是“distributed_session, distributed_cache”。

parameters

否

Map<String, Object>

引用资源参数。

须知:
  • 当type是cce的时候,该参数必填,需要指定部署组件所在的集群的命名空间,比如{"namespace": "default"}
  • 当type为ecs的时候,该参数必填,需要指定组件部署在哪些主机上,比如{"hosts":["04d9f887-9860-4029-91d1-7d3102903a69", "04d9f887-9860-4029-91d1-7d3102903a70"]}}。
表24 container_spec

参数

是否必选

参数类型

描述

containers

否

Array of objects

容器信息,参考表25。

type

否

String

工作负载类型:

  • deployment,无状态工作负载。
  • statefulset,有状态工作负载。
表25 container

参数

是否必选

参数类型

描述

name

否

String

容器名称。

size

否

Object

资源规格,请参考表26。

env

否

Array of objects

环境变量,请参考表5。

storage

否

Array of objects

数据存储配置,请参考表6。

lifecycle

否

Object

生命周期,请参考表8。

probes

否

Object

健康检查,请参考表10。

表26 size

参数

是否必选

参数类型

描述

id

否

String

资源规格,可查询获取所有支持的应用资源规格接口获取系统预定义好的资源规格。

如需自定义资源规格,格式为:CUSTOM-xxG:xxm-xxm:xxGi-xxGi。其中:

  • xxG表示给组件实例分配的存储的大小,为保留字段,当前未生效,可以指定为一个固定的数字。
  • xxm-xxm用于指定给组件实例分配的cpu最大核数和最小核数。
  • xxGi-xxGi用于指定给组件实例分配的最大内存和最小内存。

例如,CUSTOM-10G:0.5m-0.25m:1.6Gi-0.8Gi,表示给组件实例分配的CPU核数最大为0.5核,最小为0.25核,分配的最大内存为1.6Gi,最小为0.8Gi。

响应消息

表27 响应参数

参数

参数类型

描述

job_id

String

Job ID,用于查询创建任务信息。

instance_id

String

应用组件实例ID。

请求示例

创建名称为component-instance-name的组件实例,组件实例运行环境选择ID为6e763000-9128-4a9d-adea-34c42cc5344d的环境,组件部署件选择存储在obs下myapp桶中的demo.jar包,部署资源选择id为b6862a62-d916-11e9-bdf1-0255ac101fd9的CCE和id为8c0a45cc-626f-4d65-8257-507ee059aa9a的ELB。

{
    "name": "component-instance-name", 
    "environment_id": "6e763000-9128-4a9d-adea-34c42cc5344d", 
    "flavor_id": "MICRO-5G:0.5m:1G", 
    "replica": 1, 
    "artifacts": {
        "container-name": {
            "storage": "obs", 
            "type": "package",            
            "url": "obs://myapp/demo.jar",
	    "properties": {
				"bucket": "myapp",
				"key": "demo.jar",
				"endpoint": "https://obs.region_id.external_domain_name.com"
			},
            "auth": "iam"
        }
    }, 
    "version": 1, 
    "description": "instance desc", 
    "configuration": {
        "env": [
            {
                "name": "log-level", 
                "value": "warn"
            }
        ]
    }, 
    "refer_resources": [
        {
            "id": "b6862a62-d916-11e9-bdf1-0255ac101fd9", 
            "type": "cce", 
            "parameters": {
                "namespace": "default"
            }
        }, 
        {
            "id": "8c0a45cc-626f-4d65-8257-507ee059aa9a", 
            "type": "elb"
        }
    ]
}

响应示例

{
    "instance_id": "89f5baf5-efe4-4f12-9c0d-734d2af5a184", 
    "job_id": "JOB66761060-f209-407c-a093-4df6f531b9dc"
}

状态码

状态码

描述

200

操作成功

400

错误的请求

404

请求对象不存在

500

内部错误

错误码

请参考ServiceStage错误码。

相关文档