5.4 组件
5.4.1 应用中创建组件
功能介绍
应用组件是组成应用的某个业务特性实现,以代码或者软件包为载体,可独立部署运 行。
此API用来在应用中创建组件。
调试
您可以在API Explorer中调试该接口。
URI
POST /v2/{project_id}/cas/applications/{application_id}/components
表5-80 路径参数
参数 参数类型 必选 描述
project_id String 是 租户项目ID application_id String 是 应用ID
请求消息
runtime String 是 运行时,可查询获取所有支持的应用组件运行
时类型接口返回的type_name获取。
category String 是 应用组件类型如:Webapp、MicroService、
Common。
description String 否 描述。
最大长度为128个字符。
source Object 否 代码/软件包来源,参考表5-82。
build Object 否 组件构建,参考表5-86。
表5-82 source 参数
参数 参数类型 必
选 描述
kind String 是 类型,支持源码code和artifact软件包。
spec Object 是 对应code请参考表5-83;对应artifact请参考
表5-84。
表5-83 code spec 参数
参数 参数类型 必
选
描述
repo_type String 是 代码仓类型,支持GitHub、GitLab、Gitee、
Bitbucket。
参数 参数类型 必 选
描述
repo_url String 是 代码仓url,如:https://github.com/
example/demo.git。
repo_ref String 否 代码分支或者Tag,默认是master。
repo_auth String 是 授权名称,在授权列表获取。
表5-84 artifact spec 参数
参数 参数类型 必
选
描述
storage String 是 存储方式,支持软件仓库swr和对象存储obs。
type String 是 类别,支持package。
url String 是 软件包/源码地址。
auth String 否 认证方式,支持iam,none,默认是iam。
properties Object 否 软件包的其他属性,只有在选择对象存储obs 的时候才需要添加。参考表5-85。
表5-85 artifact spec properties 参数
参数 参数类型 必
选
描述
endpoint String 否 obs的终端地址,如:https://
obs.region_id.external_domain_name.com。
bucket String 否 软件包在obs的桶名。
key String 否 obs桶中的对象,一般是软件包名,有文件夹 的话要加上文件夹的路径。比如test.jar或者 demo/test.jar。
表5-86 build 参数
参数 参数类型 必
选
描述
parameters Map<String,
Object> 否 请参考表5-87。
只在没有ID,新创建构建时提供。
表5-87 parameters 参数
参数 参数类型 必
选
描述
build_cmd String 否 编译命令。默认:
1. 根目录存在build.sh:./build.sh 2. 根据运行系统,示例如下:
● Java和Tomcat:mvn clean package
● Nodejs: npm build dockerfile_p
ath String 否 dockerfile地址。默认是根目录./。
artifact_nam
espace String 否 构建归档组织,默认cas_{project_id}。
cluster_id String 否 指定构建集群的id。
node_label_s
elector Map<String,
String> 否 key是标签的键,value是标签的值。
响应消息
表5-88 响应参数
参数 参数类型 描述
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、Go Chassis、Mesher、Spring Cloud、Dubbo。
Common的子类型可以为空。
description String 描述。
project_id String 项目ID。
application_id String 应用ID。
参数 参数类型 描述
source Object 代码/软件包来源,请参考表5-89。
build Object 构建工程,请参考表5-93。
pipeline_ids id list 流水线id列表,最多10个。
create_time Integer 创建时间。
update_time Integer 修改时间。
creator String 创建者。
表5-89 source 参数
参数 参数类型 描述
kind String 类型,支持源码code和artifact软件包。
spec Object 对应code请参考表5-90;对应artifact请参考表
5-91。
表5-90 code spec 参数
参数 参数类型 描述
repo_type String 代码仓类型,支持GitHub、GitLab、Gitee、
Bitbucket。
repo_url String 代码仓url,如:https://github.com/example/
demo.git。
repo_ref String 代码分支或者Tag,默认是master。
repo_auth String 授权名称,在授权列表获取。
表5-91 artifact spec 参数
参数 参数类型 描述
storage String 存储方式。
type String 类别。
url String 软件包/源码地址。
auth String 认证方式。
properties Object 软件包的其他属性,只有在选择对象存储obs的时 候才需要添加。参考表5-92。
表5-92 artifact spec properties 参数
参数 参数类型 必
选
描述
endpoint String 否 obs的终端地址,如:https://
obs.region_id.external_domain_name.com。
bucket String 否 软件包在obs的桶名。
key String 否 obs桶中的对象,一般是软件包名,有文件夹 的话要加上文件夹的路径。比如test.jar或者
表5-94 parameters 参数
参数 参数类型 描述
build_cmd String 编译命令。
dockerfile_path String dockerfile地址。
artifact_names
pace String 构建归档组织。
cluster_id String 指定构建集群的id。
node_label_sel
ector Map<String,
String> key是标签的键,value是标签的值。
示例
请求示例
{ "name": "mycomponent", "runtime": "Java8", "category": "MicroService", "sub_category": "Java Chassis", "description": "",
"build": { "parameters": {
"artifact_namespace": "ns"
} },
"source": {
"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": {
"endpoint": "https://obs.region_id.external_domain_name.com"
} } }, "build": {
"id": "w3dpv7p0t1vpxvey5hjb22iuwxway1vupwx0nae1", "parameters": {
"artifact_namespace": "ns", "use_public_cluster": true }
},
"pipeline_ids": null, "status": 0, "creator": "xxx",
"create_time": 1610333934288, "update_time": 1610333934288 }
错误码
错误码格式为:SVCSTG.00100.[Error_ID],例如:SVCSTG.00100400。错误码说明请 参考错误码。