
# 创建环境 - CreateEnvironment
#### 功能介绍
此API用于创建环境。
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/ServiceStage/doc?api=CreateEnvironment&version=v3)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-servicestage/servicestage_06_0183.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
  
  | 授权项                             | 访问级别  | 资源类型（\*为必须）    | 条件键                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | 别名 | 依赖的授权项 |
  |:---|:---|:---|:---|:---|:---|
  | servicestage:environment:create | write | -              | - [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)  - [g:TagKeys](https://support.huaweicloud.com/usermanual-iam5/iam_01_1287.html)   | -  | -      |
  | servicestage:environment:create | write | environment \* | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           | -  | -      |
     
  
 
#### URI
POST /v3/{project_id}/cas/environments
表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参数 
| 参数                    | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| config_mode           | 否    | String           | **参数解释：** 用于标识各项参数的配置方式。 **取值范围：** - ui：基于UI页面配置。   **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                   |
| name                  | 是    | String           | **参数解释：** 环境名称。 **取值范围：** 由英文字母、数字、中划线（-）或下划线（_）组成，并以英文字母开头，英文字母或者数字结尾，英文字母区分大小写，长度为2\~64个字符。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                             |
| deploy_mode           | 否    | String           | **参数解释：** 环境类型。 **取值范围：** - virtualmachine：虚拟机。  - container：Kubernetes。  - mixed ：虚拟机和Kubernetes。   如果您需要在创建的环境下使用自定义服务器，请选择virtualmachine或者mixed类型环境。 **默认取值：** 不涉及                            |
| type                  | 否    | String           | **参数解释：** Kubernetes环境是否高可用类型。 **取值范围：** - normal：非高可用环境。  - high：高可用环境。   **默认取值：** 不涉及                                                                                        |
| resource_create_mode  | 否    | String           | **参数解释：** 资源配置模式。 **取值范围：** - none：纳管资源。  - iac：创建资源。   如果您需要在创建的环境下使用自定义服务器，请选择纳管资源配置模式。 **默认取值：** 不涉及 |
| resources             | 否    | Array of objects | **参数解释：** 资源列表，请参考[表4]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| description           | 否    | String           | **参数解释：** 环境描述。 **取值范围：** 最大长度为128个字符。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| enterprise_project_id | 否    | String           | **参数解释：** 企业项目ID。 如果不配置此参数，则默认企业项目为"default"，ID为0。 **约束限制：** 需要开通企业项目功能后才可配置企业项目。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                         |
| vpc_id                | 是    | String           | **参数解释：** 虚拟私有云ID。 获取方法如下： - 方法1：登录虚拟私有云服务的控制台界面，在虚拟私有云的详情页面查找VPC ID。  - 方法2：通过虚拟私有云服务的API接口查询。链接请参见[查询VPC列表](https://support.huaweicloud.com/api-vpc/vpc_api01_0003.html)。   **取值范围：** 不涉及 **默认取值：** 不涉及                    |
| labels                | 否    | Array of objects | **参数解释：** 标签，可使用标签管理服务通过标签过滤资源，请参考[表6]。 **约束限制：** 同一个环境下最多可以添加20个标签。                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| environment_azs       | 否    | Array of objects | **参数解释：** 可用区列表。 **约束限制：** "type"为"high"时需要设置两个可用区。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
 表4resources 
| 参数         | 是否必选 | 参数类型                  | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| id         | 是    | String                | **参数解释：** 资源ID（为了保证接口调用正常，请您确保调用前输入正确的资源ID）。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| name       | 否    | String                | **参数解释：** 资源名称。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| type       | 是    | String                | **参数解释：** 资源类型。 **取值范围：** - vpc：虚拟私有云。  - eip：弹性IP。  - elb：弹性负载均衡。  - cce：云容器引擎。  - ecs：弹性云服务器。  - as：弹性伸缩组。  - cse：ServiceComb引擎。  - nacos：注册配置中心。  - ms_gateway：应用网关。 仅"华东-上海一"、"亚太-新加坡"区域支持纳管应用网关，用于使用全链路流量控制功能。   - dcs：分布式缓存服务。  - rds：云数据库RDS。  - subnet：子网。  - acl：网络ACL。  - customServer：自定义服务器。  - gaussdb：云数据库GaussDB。  - dms_rocketmq：分布式消息服务RocketMQ。  - css_es：云搜索服务Elasticsearch。  - custom_k8s：自定义kubernetes集群。   **默认取值：** 不涉及 |
| parameters | 否    | Map\<String, String\> | **参数解释：** 资源参数，请参考[表5]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
 表5parameters 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| kube_config | 否    | String | **参数解释：** Kubernetes连接配置文件。 资源类型为custom_k8s时需要设置此参数。 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表6labels 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| key   | 是    | String | **参数解释：** 标签名称。 标签用于标识资源，当您拥有相同类型的许多资源时，可以使用标签按各种维度（例如用途、所有者或环境）对资源进行分类。 **取值范围：** 长度为1到36个字符，只能包含数字、英文字母、下划线（_）、中划线（-）或中文。 **默认取值：** 不涉及 |
| value | 是    | String | **参数解释：** 标签值。 **取值范围：** 长度为1到43个字符，只能包含数字、英文字母、下划线（_）、点（.）、中划线（-）或中文。 **默认取值：** 不涉及                                                                                        |
   
#### 响应消息
表7响应参数 
| 参数                    | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|
| id                    | String           | **参数解释：** 环境ID。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| name                  | String           | **参数解释：** 环境名称。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| description           | String           | **参数解释：** 环境描述。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| project_id            | String           | **参数解释：** 项目ID。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| enterprise_project_id | String           | **参数解释：** 企业项目ID。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| deploy_mode           | String           | **参数解释：** 环境类型。 **取值范围：** - virtualmachine：虚拟机。  - container：Kubernetes。  - mixed ：虚拟机+Kubernetes。                                                                                                                                          |
| vpc_id                | String           | **参数解释：** 虚拟私有云ID。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| creator               | String           | **参数解释：** 环境创建人。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| create_time           | Integer          | **参数解释：** 环境创建时间。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| update_time           | Integer          | **参数解释：** 环境修改时间。 **取值范围：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| labels                | Array of objects | **参数解释：** 标签，可使用标签管理服务通过标签过滤查询资源信息，请参考[表8]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| type                  | String           | **参数解释：** Kubernetes类型环境是否高可用类型。 **取值范围：** - normal：非高可用环境。  - high：高可用环境。                                                                                                                                                                                                                                                                                                                   |
| resource_create_mode  | String           | **参数解释：** 资源配置模式。 **取值范围：** - none：纳管资源。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| config_mode           | String           | **参数解释：** 配置模式。 **取值范围：** - ui：基于UI页面配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| env_status            | String           | **参数解释：** 获取的非实时环境资源状态。 **取值范围：** - REFRESHING：刷新中。  - UNKNOWN：未知。  - NORMAL：正常。  - PARTIALLY_NORMAL：部分正常。   |
   
 表8labels 
| 参数    | 参数类型   | 描述                                                                                                                                                                                                                                            |
|:---|:---|:---|
| key   | String | **参数解释：** 标签名称。 **取值范围：** 不涉及  |
| value | String | **参数解释：** 标签值。 **取值范围：** 不涉及 |
   
#### 请求示例
创建名称为env-test的"虚拟机"类型环境，环境所在VPC的id为0c72428b-cd6c-4283-a560-210d3edb49f7。
```
{
    "name": "env-test",
    "description": "",
    "enterprise_project_id": "0",
    "vpc_id": "0c72428b-cd6c-4283-a560-210d3edb49f7",
    "labels": [
        {
            "key": "aaaaa",
            "value": "a5"
        }
    ],
    "deploy_mode": "virtualmachine"
}
```
#### 响应示例
```
{
    "id": "c93a5313-d141-4b9f-97ce-b4ce2b3988bd",
    "name": "test",
    "description": "",
    "project_id": "13ae26238d724e54947af3e0fcbef9c3",
    "enterprise_project_id": "0",
    "vpc_id": "0c72428b-cd6c-4283-a560-210d3edb49f7",
    "creator": "ss-test",
    "create_time": 1681384236023,
    "update_time": 1681384236023,
    "deploy_mode": "virtualmachine",
    "labels": []
}
```
#### 状态码
| 状态码 | 描述       |
|:---|:---|
| 200 | 操作成功。    |
| 400 | 错误的请求。   |
| 404 | 请求对象不存在。 |
| 500 | 内部错误。    |
   
#### 错误码
请参考[ServiceStage错误码](https://support.huaweicloud.com/api-servicestage/servicestage_06_0162.html)。
