更新时间:2022-12-05 GMT+08:00

创建组件实例

功能介绍

此API用来创建应用组件实例。

URI

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

表1 路径参数

参数

参数类型

必选

描述

project_id

String

租户项目ID

application_id

String

应用ID

component_id

String

组件ID

请求消息

表2 请求参数

参数

参数类型

必选

描述

name

String

应用组件实例名称。

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

environment_id

String

环境ID。

replica

Integer

实例副本数。

flavor_id

String

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

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

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

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

artifacts

Map<String, Object>

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

version

String

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

configuration

Object

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

description

String

描述。

最大长度为128个字符。

external_accesses

Array of objects

外网访问,参考表20

refer_resources

Array of objects

部署资源,参考表21

表3 configuration参数

参数

参数类型

必选

描述

env

Array of objects

环境变量,参考表4

storage

Array of objects

数据存储配置,参考表5

strategy

Object

升级策略,参考表6

lifecycle

Object

生命周期,参考表7

scheduler

Object

调度策略,参考表8

probes

Object

健康检查,参考表9

表4 environment参数

参数

参数类型

必选

描述

name

String

环境变量名。

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

value

String

环境变量值。

表5 storage参数

参数

参数类型

必选

描述

type

String

存储类型,取值为:

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

parameters

Object

存储的参数,参考表18

mounts

Array of objects

挂载到容器的目录,参考表17

表6 strategy参数

参数

参数类型

必选

描述

upgrade

String

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

表7 lifecycle参数

参数

参数类型

必选

描述

entrypoint

Object

启动命令,参考表15

post-start

Object

启动后处理,参考表15

pre-stop

Object

停止前处理,参考表15

表8 scheduler参数

参数

参数类型

必选

描述

affinity

Object

亲和性,参考表14

anti-affinity

Object

反亲和性,参考表14

表9 probes参数

参数

参数类型

必选

描述

livenessProbe

Object

组件存活探针,参考表10

readinessProbe

Object

组件业务探针,参考表10

表10 probes_object参数

参数

参数类型

必选

描述

type

String

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

parameters

Object

检查参数。

  • type为http,参考表11
  • type为tcp,参考表13
  • type为command,参考表12

delay

integer

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

timeout

integer

表示探测超时时间。

表11 probes_param_http参数

参数

参数类型

必选

描述

scheme

String

HTTP或者HTTPS。

host

String

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

port

integer

端口。

path

String

请求路径。

表12 probes_param_command参数

参数

参数类型

必选

描述

command

Array of String

命令列表

表13 probes_param_tcp参数

参数

参数类型

必选

描述

port

integer

端口

表14 scheduler_affinity参数

参数

参数类型

必选

描述

az

Array of String

az名称列表

node

Array of String

节点私有IP列表

application

Array of String

组件实例名列表

表15 lifecycle_entrypoint参数

参数

参数类型

必选

描述

command

Array of String

可执行的命令。

args

Array of String

运行参数。

表16 lifecycle_process参数

参数

参数类型

必选

描述

type

String

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

parameters

Object

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

表17 lifecycle_process_parameters参数

参数

参数类型

必选

描述

command

Array of String

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

host

String

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

port

integer

端口号。适用于http类型。

path

String

请求url。适用于http类型。

表18 storage_parameters参数

参数

参数类型

必选

描述

path

String

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

name

String

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

claimName

String

PVC的名字,适用于PersistentVolumeClaim的存储类型

表19 artifact参数

参数

参数类型

必选

描述

storage

String

存储方式,支持swr、obs。

type

String

类别,虚机部署为package,容器部署为image。

url

String

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

auth

String

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

version

String

版本号。

properties

Map<String, Object>

属性。

表20 external_accesses参数

参数

参数类型

必选

描述

protocol

String

协议,支持http、https。

address

String

访问地址。

forward_port

integer

端口号。

表21 refer_resources参数

参数

参数类型

必选

描述

id

String

资源ID。

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

type

String

基础资源:cce、ecs。

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

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"]}}。

响应消息

表22 响应参数说明

参数

参数类型

描述

job_id

String

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

instance_id

String

应用组件实例ID

示例

请求示例

{
    "name": "component-instance-name", 
    "environment_id": "6e763000-9128-4a9d-adea-34c42cc5344d", 
    "flavor_id": "MICRO-5G:0.5C:1G", 
    "replica": 1, 
    "artifacts": {
        "container-name": {
            "storage": "swr", 
            "type": "image", 
            "url": "{IP}:20202/xxxxxxxx/junit-platformstest:1.0", 
            "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"
}

状态码

表23 状态码说明

状态码

描述

200

操作成功

400

错误的请求

404

请求对象不存在

500

内部错误

错误码

错误码格式为:SVCSTG.00100.[Error_ID],例如:SVCSTG.00100400。错误码说明请参考应用管理API错误码