应用中创建组件
功能介绍
应用组件是组成应用的某个业务特性实现,以代码或者软件包为载体,可独立部署运行。
此API用来在应用中创建组件。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
POST /v2/{project_id}/cas/applications/{application_id}/components
请求消息
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
Content-Type | 是 | String | 消息体的类型(格式),默认取值为“application/json;charset=utf8”。 |
X-Auth-Token | 是 | String | 调用接口的认证方式分为Token和AK/SK两种,如果您使用的Token方式,此参数为必填,请填写Token的值。Token获取方式,请参考获取用户Token。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 是 | String | 应用组件名称。 由英文字母、数字、中划线(-)、下划线(_)组成,并以英文字母开头,英文字母或者数字结尾,不区分英文字母大小写,长度为2~64个字符。 |
runtime | 是 | String | 运行时,可查询获取所有支持的应用组件运行时类型接口返回的type_name获取。 |
category | 是 | String | 应用组件类型如:Webapp、MicroService、Common。 |
sub_category | 否 | String | 应用组件子类型。 Webapp的子类型有Web。 MicroService的子类型有Java Chassis、Spring Cloud。 Common的子类型可以为空。 |
description | 否 | String | 描述。 最大长度为128个字符。 |
source | 否 | Object | 代码/软件包来源,请参考表4。 |
build | 否 | Object | 组件构建,请参考表8。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
repo_type | 否 | String | 参数解释: 代码仓类型。 取值范围:
默认取值: 不涉及 |
repo_url | 否 | String | 代码仓url,如:https://github.com/example/demo.git。 |
repo_ref | 否 | String | 代码分支或者Tag,默认是master。 |
repo_auth | 否 | String | 授权名称,在授权列表获取。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
storage | 否 | String | 存储方式,支持软件仓库swr、镜像仓库swr、对象存储obs、软件发布库codearts。 |
type | 否 | String | 类别。
|
url | 否 | String | 软件包/源码地址。 |
auth | 否 | String | 认证方式,支持iam,none,默认是iam。 |
properties | 否 | Object | 软件包的其他属性,只有在选择对象存储obs的时候才需要添加。请参考表7。 |
webUrl | 否 | String | 软件仓库地址。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
endpoint | 否 | String | obs的终端地址,如:https://obs.region_id.external_domain_name.com。 |
bucket | 否 | String | 软件包在obs的桶名。 |
key | 否 | String | obs桶中的对象,一般是软件包名,有文件夹的话要加上文件夹的路径。比如test.jar或者demo/test.jar。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
build_cmd | 否 | String | 编译命令。默认:
|
dockerfile_path | 否 | String | dockerfile地址。默认是根目录./。 |
artifact_namespace | 否 | String | 构建归档组织,默认cas_{project_id}。 |
cluster_id | 否 | String | 指定构建集群的id。 |
node_label_selector | 否 | Map<String, String> | key是标签的键,value是标签的值。 |
响应消息
参数 | 参数类型 | 描述 |
|---|---|---|
id | String | 应用组件ID。 |
name | String | 应用组件名称。 |
status | Integer | 取值0或1。 0:表示正常状态。 1:表示正在删除。 |
runtime | String | 运行时。 |
category | String | 应用组件类型如:Webapp、MicroService、Common。 |
sub_category | String | 应用组件子类型。 Webapp的子类型有Web。 MicroService的子类型有Java Chassis、Spring Cloud。 Common的子类型可以为空。 |
description | String | 描述。 |
project_id | String | 项目ID。 |
application_id | String | 应用ID。 |
source | Object | 代码/软件包来源,请参考表11。 |
build | Object | 构建工程,请参考表15。 |
create_time | Integer | 创建时间。 |
update_time | Integer | 修改时间。 |
creator | String | 创建者。 |
参数 | 参数类型 | 描述 |
|---|---|---|
repo_type | String | 代码仓类型。
|
repo_url | String | 代码仓url,如:https://github.com/example/demo.git。 |
repo_ref | String | 代码分支或者Tag,默认是master。 |
repo_auth | String | 授权名称,在授权列表获取。 |
参数 | 参数类型 | 描述 |
|---|---|---|
storage | String | 存储方式。 |
type | String | 类别。 |
url | String | 软件包/源码地址。 |
auth | String | 认证方式。 |
properties | Object | 软件包的其他属性,只有在选择对象存储obs的时候才需要添加。请参考表14。 |
请求示例
创建软件包部署的应用微服务组件,运行时设置为Java8,组件软件包来源选择存储在obs下myapp桶中的demo.jar包。
{
"name": "mycomponent",
"runtime": "Java8",
"category": "MicroService",
"sub_category": "Java Chassis",
"description": "",
"build": {
"parameters": {
"artifact_namespace": "ns",
"use_public_cluster": false,
"cluster_id": "523498f1-36c4-11eb-ae36-0255ac1000c2",
"cluster_name": "cce-test",
"cluster_type": "VirtualMachine"
}
},
"source": {
"kind": "artifact",
"spec": {
"storage": "obs",
"type": "package",
"url": "obs://myapp/demo.jar",
"properties": {
"bucket": "myapp",
"key": "demo.jar",
"endpoint": "https://obs.region_id.external_domain_name.com"
}
}
}
}
响应示例
{
"id": "384eb8d4-c193-4d84-9558-6fda2366b536",
"name": "mycomponent",
"runtime": "Java8",
"category": "MicroService",
"sub_category": "Java Chassis",
"description": "",
"project_id": "384eb8d4-c193-4d84-9558-6fda23698536",
"application_id": "a8f7eed5-0aa0-4251-9723-c9119a6bf56d",
"source": {
"kind": "artifact",
"spec": {
"storage": "obs",
"type": "package",
"url": "obs://myapp/demo.jar",
"properties": {
"bucket": "myapp",
"key": "demo.jar",
"endpoint": "https://obs.region_id.external_domain_name.com"
}
}
},
"build": {
"id": "w3dpv7p0t1vpxvey5hjb22iuwxway1vupwx0nae1",
"parameters": {
"artifact_namespace": "ns",
"dockerfile_path": "./"
}
},
"status": 0,
"creator": "test_user",
"create_time": 1610333934288,
"update_time": 1610333934288
} 状态码
状态码 | 描述 |
|---|---|
200 | 操作成功 |
400 | 错误的请求 |
404 | 请求对象不存在 |
500 | 内部错误 |
错误码
请参考ServiceStage错误码。

