
# 基于组件模板创建组件 - CreateComponentBasedOnComponentTemplate
#### 功能介绍
此API用于基于组件模板创建组件。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-servicestage/servicestage_06_0183.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                              | 访问级别  | 资源类型（\*为必须） | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 别名                      | 依赖的授权项                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  |:---|:---|:---|:---|:---|:---|
  | servicestage:app:createComponent | write | app \*      | - [g:EnterpriseProjectId](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html)  - [g:RequestTag/\<tag-key\>](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html)   | servicestage:app:create | - aom:discoveryRule:list  - aom:discoveryRule:set  - as:scalingConfig:create  - as:scalingConfig:get  - as:scalingConfig:list  - as:scalingPolicy:create  - as:scalingPolicy:get  - as:scalingPolicy:list  - cce:cluster:get  - dcs:instance:get  - dns:recordset:create  - dns:recordset:get  - ecs:cloudServers:get  - elb:l7policies:create  - elb:l7policies:get  - elb:l7policies:list  - elb:listeners:create  - elb:listeners:get  - elb:listeners:list  - elb:members:create  - elb:members:get  - elb:members:list  - ims:dataImages:create  - ims:images:create  - ims:images:get  - ims:images:list  - ims:wholeImages:create  - rds:instance:get  - servicestage:assembling:create  - servicestage:assembling:getInfo  - vpc:addressGroups:get  - vpc:networks:get  - vpc:routeTables:get  - vpc:securityGroupRules:get  - vpc:securityGroups:get  - vpc:subnets:get  - vpc:subnets:get  - vpc:vpcs:get   |
     
  
 
#### URI
POST /v3/{project_id}/cas/components
表1路径参数 
| 参数         | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| project_id | 是    | String | **参数解释：** 租户项目ID。获取方法，请参考[获取项目ID](https://support.huaweicloud.com/api-servicestage/servicestage_06_0164.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
#### 请求参数
表2请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|
| Content-Type | 是    | String | **参数解释：** 消息体的类型（格式）。 **约束限制：** 不涉及 **取值范围：** application/json;charset=utf8 **默认取值：** 不涉及                                                                                                                      |
| X-Auth-Token | 是    | String | **参数解释：** 调用接口的认证方式分为Token和AK/SK两种，如果您使用的Token方式，此参数为必填，请填写Token的值。Token获取方式，请参考[认证鉴权](https://support.huaweicloud.com/api-servicestage/servicestage_06_0010.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
表3请求Body参数 
| 参数              | 是否必选 | 参数类型                  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| environment_id  | 否    | String                | **参数解释：** 环境ID。获取方法，请参考[获取所有环境 - ObtainAllEnvironments](https://support.huaweicloud.com/api-servicestage/servicestage_06_0057.html)。 **取值范围：** 不涉及 **默认取值：** 不涉及          |
| application_id  | 否    | String                | **参数解释：** 应用ID。获取方法，请参考[获取所有应用 - ObtainAllApplications](https://support.huaweicloud.com/api-servicestage/servicestage_06_0068.html)。 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| template_source | 否    | Object                | **参数解释：** 组件模板包来源，请参考[表4]。                                                                                                                                                                                                                                                                                                                      |
| input_values    | 否    | Map\<String, String\> | **参数解释：** 模板包输入信息。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                     |
   
 表4template_source 
| 参数            | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| storage       | 是    | String           | **参数解释：** 组件模板包存储方式。 **取值范围：** - devcloud：CodeArts软件发布库。  - obs：OBS对象存储。  - http：自定义文件地址。   **默认取值：** 不涉及 |
| url           | 是    | String           | **参数解释：** 组件模板包地址。 组件模板包存储方式为自定义文件地址时有效。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| http_username | 否    | String           | **参数解释：** 用户名。 组件模板包存储方式为自定义文件地址且安全认证方式为用户名密码认证时有效。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                       |
| http_password | 否    | String           | **参数解释：** 密码。 组件模板包存储方式为自定义文件地址且安全认证方式为用户名密码认证时有效。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                         |
| http_headers  | 否    | Array of objects | **参数解释：** 请求头，请参考[表5]。 组件模板包存储方式为自定义文件地址且安全认证方式为自定义Header认证时有效。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
 表5http_headers 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|
| key   | 是    | String | **参数解释：** 请求key。 **取值范围：** 不涉及 **默认取值：** 不涉及        |
| value | 是    | String | **参数解释：** 请求value。 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
#### 响应消息
表6响应参数 
| 参数           | 参数类型    | 描述                                                                                                                                                                                                                                                            |
|:---|:---|:---|
| component_id | Integer | **参数解释：** 组件ID。 **取值范围：** 不涉及 |
| job_id       | Integer | **参数解释：** Job ID。 **取值范围：** 不涉及               |
   
#### 请求示例
基于组件模板创建容器部署方式部署的组件。
```
{
    "environment_id": "2393eecc-69bc-40a9-9b6c-996a9259618d",
    "application_id": "dda56ba8-5295-3d0d-b298-72cb1da3f515",
    "template_source": {
        "storage": "obs",
        "url": "obs://apitest/demo-app-package.zip",
        "http_username": null,
        "http_password": null
    },
    "input_values": {
        "config_name": "demo-group/application.yaml",
        "namespace": "default",
        "dep_name": "test-demo",
        "svc_port": 8080,
        "value": "World",
        "cce_resource": "ef1b6474-906c-11ef-a773-0255ac1000a3",
        "elb_resource": "053dcc46-d3fd-4796-bba1-b73650ec0906",
        "image": "swr.cn-north-4.myhuaweicloud.com/ss/demo-app:latest"
    }
}
```
#### 响应示例
```
{
  "job_id": "string",
  "component_id": "string"
}
```
#### 状态码
| 状态码 | 描述      |
|:---|:---|
| 200 | 操作成功    |
| 400 | 错误的请求   |
| 404 | 请求对象不存在 |
| 500 | 内部错误    |
   
#### 错误码
请参考[ServiceStage错误码](https://support.huaweicloud.com/api-servicestage/servicestage_06_0162.html)。
