创建组件
功能介绍
创建组件。
调试
您可以在API Explorer中调试该接口,支持自动认证鉴权。API Explorer可以自动生成SDK代码示例,并提供SDK代码示例调试功能。
URI
POST /v1/{project_id}/cae/applications/{application_id}/components
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
project_id |
是 |
String |
项目ID,获取项目ID请参见获取项目ID。 |
application_id |
是 |
String |
应用ID。 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
X-Auth-Token |
是 |
String |
用户Token。
|
X-Enterprise-Project-ID |
否 |
String |
企业项目ID。
|
X-Environment-ID |
是 |
String |
环境ID。
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
api_version |
是 |
String |
API版本,固定值“v1”,该值不可修改。 |
kind |
是 |
String |
API类型,固定值“Component”,该值不可修改。 |
metadata |
是 |
metadata object |
请求数据。 |
spec |
是 |
spec object |
组件规格信息。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
name |
是 |
String |
组件名称。 |
annotations |
是 |
Map<String,String> |
创建组件请求体附加参数,当前只支持version参数,此参数必填。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
runtime |
是 |
String |
语言/运行时。 |
replica |
是 |
Integer |
实例个数。 |
build |
否 |
Build object |
构建信息。 |
source |
是 |
Source object |
源信息。 |
resource_limit |
是 |
ResourceLimit object |
实例规格。 |
image_url |
否 |
String |
镜像地址。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
{自定义key} |
否 |
Map<String,String> |
构建附加参数。
|
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
code |
否 |
Repo object |
源码仓库信息。 |
type |
是 |
String |
源类型。 |
sub_type |
否 |
String |
源子类型。
|
url |
是 |
String |
url地址。
|
响应参数
状态码:200
参数 |
参数类型 |
描述 |
---|---|---|
api_version |
String |
API版本,固定值“v1”,该值不可修改。 |
kind |
String |
API类型,固定值“Component”,该值不可修改。 |
metadata |
MetadataResponse object |
响应数据。 |
spec |
CreateComponentSpec object |
组件规格。 |
参数 |
参数类型 |
描述 |
---|---|---|
id |
String |
组件ID。 |
name |
String |
组件名称。 |
annotations |
Map<String,String> |
组件附加属性。
|
created_at |
String |
创建时间。 |
updated_at |
String |
更新时间。 |
参数 |
参数类型 |
描述 |
---|---|---|
runtime |
String |
语言/运行时。 |
env_id |
String |
环境ID。 |
replica |
Integer |
实例个数。 |
source |
Source object |
源信息。 |
build |
Build object |
构建信息。 |
resource_limit |
ResourceLimit object |
实例规格。 |
available_replica |
Integer |
可用实例个数。 |
status |
String |
组件状态。
|
参数 |
参数类型 |
描述 |
---|---|---|
code |
Repo object |
源码仓库信息。 |
type |
String |
源类型。 |
sub_type |
String |
源子类型。
|
url |
String |
url地址。
|
参数 |
参数类型 |
描述 |
---|---|---|
auth_name |
String |
授权名称。 |
branch |
String |
分支。 |
namespace |
String |
命名空间,需填写命名空间的Base64编码。 |
参数 |
参数类型 |
描述 |
---|---|---|
{自定义key} |
Map<String,String> |
构建附加参数。
|
请求示例
-
使用源码仓库创建组件,组件名称“test-code”,版本“1.0.0”,选择GitLab源码仓库,运行时为Java8。
POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components { "api_version" : "v1", "kind" : "Component", "metadata" : { "name" : "test-code", "annotations" : { "version" : "1.0.0" } }, "spec" : { "runtime" : "Java8", "build" : { "archive" : { "artifact_namespace" : "xxx" }, "parameters" : { "base_image" : "openjdk:8u181-jdk-alpine", "dockerfile_path" : "./Dockerfile" } }, "source" : { "type" : "code", "sub_type" : "GitLab", "url" : "https://xxx:8090/xxx/cae-frontend.git", "code" : { "branch" : "master", "auth_name" : "gitlab-xxx", "namespace" : "em1n" } }, "resource_limit" : { "cpu_limit" : "500m", "memory_limit" : "1Gi" }, "replica" : 1 } }
-
使用镜像创建组件,组件名称“test-image”,版本“1.0.0”,选择nginx镜像,运行时为Docker。
POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components { "api_version" : "v1", "kind" : "Component", "metadata" : { "name" : "test-image", "annotations" : { "version" : "1.0.0" } }, "spec" : { "runtime" : "Docker", "source" : { "type" : "image", "url" : "nginx:stable-alpine-perl" }, "resource_limit" : { "cpu_limit" : "500m", "memory_limit" : "1Gi" }, "replica" : 1 } }
-
使用软件包创建组件,组件名称“test-jar”,版本“1.0.0”,在OBS对象存储中选择名称为“forecast-1.0.0.jar”的软件包,运行时为Java8。
POST https://{endpoint}/v1/{project_id}/cae/applications/{application_id}/components { "api_version" : "v1", "kind" : "Component", "metadata" : { "name" : "test-jar", "annotations" : { "version" : "1.0.0" } }, "spec" : { "runtime" : "Java8", "build" : { "archive" : { "artifact_namespace" : "xxx" }, "parameters" : { "base_image" : "openjdk:8u181-jdk-alpine", "dockerfile_content" : "FROM java:8 \\nADD forecast-1.0.0.jar \\nEXPOSE 8080 \\nENTRYPOINT [\"java\",\"-jar\",\"forecast-1.0.0.jar\"]" } }, "source" : { "type" : "softwarePackage", "sub_type" : "BinObs", "url" : "https://xxx.obs.region.xxx.huawei.com/xxx/forecast-1.0.0.jar" }, "resource_limit" : { "cpu_limit" : "500m", "memory_limit" : "1Gi" }, "replica" : 1 } }
响应示例
状态码:200
请求成功。
{
"api_version": "v1",
"kind": "Component",
"metadata": {
"id": "cac09548-047f-46c4-abbd-a6a652305565",
"name": "test-code",
"annotations": {
"log_group_id": "5b13213a-84f8-4b72-8ca5-530e15cc1402",
"log_stream_id": "6ddf6c71-4767-46db-98a2-fe5fb301b366",
"version": "1.0.0"
},
"created_at": "2023-02-13T02:38:22.689607114Z",
"updated_at": "2023-02-13T02:38:22.689607114Z"
},
"spec": {
"runtime": "Java8",
"env_id": "9819b3f5-dd08-44ff-ba88-eb38e435594c",
"replica": 1,
"source": {
"type": "code",
"sub_type": "GitLab",
"url": "http://xxx@cpe.gitlab.com:8090/xxx/cae-backend.git",
"code": {
"branch": "master",
"auth_name": "gitlab-xxx",
"namespace": "em1n"
}
},
"build": {
"archive": {
"artifact_namespace": "xxx"
},
"parameters": {
"base_image": "openjdk:8u181-jdk-alpine"
"dockerfile_path": "./Dockerfile"
}
},
"resource_limit": {
"cpu_limit": "500m",
"memory_limit": "1Gi"
},
"available_replica": 0,
"status": "created"
}
}
状态码
状态码 |
描述 |
---|---|
200 |
请求成功。 |
错误码
请参见错误码。