
# 创建模板 - CreateLaunchTemplate
#### 功能介绍
创建启动模板。
创建一个全新的模板，并自动生成版本号为1的作为默认版本。
#### 接口约束
- 创建模板暂不支持创建包年/包月计费模式的创建参数。
- 暂不支持IPv6和driver_mode类型的规格。
- 暂不支持创建归属于专属主机（DeH）或专属资源池（DCC）以及使用专属存储（DSS）的云服务器。
- 该接口不对创建请求参数做存在性和合理性校验。
 
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/ECS/debug?api=CreateLaunchTemplate)中调试该接口。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限。
- 如果使用角色与策略授权，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-ecs/ecs_06_0000.html)。
- 如果使用身份策略授权，需具备如下身份策略权限。
 
| 授权项                        | 访问级别  | 资源类型（\*为必须） | 条件键 | 别名 | 依赖的授权项 |
|:---|:---|:---|:---|:---|:---|
| ecs:launchTemplates:create | write | -           | -   | -  | -      |
   
#### URI
POST /v3/{project_id}/launch-templates
参数说明请参见[表1]。
 表1参数说明 
| 参数         | 是否必选 | 描述                                                                                                                                                                                                                                                                                                                                                                               |
|:---|:---|:---|
| project_id | 是    | **参数解释** **：** 项目ID。 获取方法请参见[获取项目ID](https://support.huaweicloud.com/api-ecs/ecs_01_0016.html)。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
#### 请求消息
请求参数如[表2]所示。
 表2请求参数 
| 参数              | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| launch_template | 是    | Object  | **参数解释** **：** 模板信息。详情请参见[表3]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                  |
| dry_run         | 否    | Boolean | **参数解释** **：** 是否只预检此次请求。配置为预检时，此次请求不会创建模板。 **约束限制：** 不涉及 **取值范围：** - true：预检此次请求，检查项包括是否填写了必需参数、请求格式等。 - 如果检查不通过，则返回对应错误。  - 如果检查通过，则返回202状态码。    - false：发送正常请求，不对请求体做预检。   **默认取值：** false |
   
 表3launch_template字段数据结构说明 
| 参数                  | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
|:---|:---|:---|:---|
| template_data       | 否    | Object | **参数解释** **：** 模板创建请求信息。详情请参见[表4]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                            |
| name                | 是    | String | **参数解释** **：** 模板名称。 **约束限制：** 不涉及 **取值范围：** - 长度为1\~64个字符。  - 只能由中文、英文、数字、中划线（-）、下划线（_)、小数点（.）等字符组成。   **默认取值：** 不涉及 |
| description         | 否    | String | **参数解释** **：** 模板描述。 **约束限制：** 不涉及 **取值范围：** 最大长度为85个字符。 **默认取值：** 不涉及                                                                                                                                                                          |
| version_description | 否    | String | **参数解释** **：** 初始第一个版本的版本描述。 **约束限制：** 不涉及 **取值范围：** 最大长度为85个字符。 **默认取值：** 不涉及                                                                                                                                                                   |
   
 表4template_data字段数据结构说明 
| 参数                    | 是否必选 | 参数类型                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| flavor_id             | 否    | String               | **参数解释** **：** 依据模板创建云服务器的规格ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                |
| name                  | 否    | String               | **参数解释** **：** 云服务器名称。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                          |
| description           | 否    | String               | **参数解释** **：** 云服务器描述信息。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                      |
| availability_zone_id  | 否    | String               | **参数解释** **：** 可用区。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                |
| enterprise_project_id | 否    | String               | **参数解释** **：** 企业项目ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                           |
| auto_recovery         | 否    | Boolean              | **参数解释** **：** 是否配置云服务器自动恢复的功能。 **约束限制：** 不涉及 **取值范围：** - true：表示配置自动恢复功能。  - false：表示不配置自动恢复功能。   **默认取值：** 不涉及                                                                                                                                 |
| os_profile            | 否    | Object               | **参数解释** **：** 镜像属性。详情请参见[表5]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                |
| security_group_ids    | 否    | Array of strings     | **参数解释** **：** 安全组ID列表。全网卡生效。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                      |
| network_interfaces    | 否    | Array of Objects     | **参数解释** **：** 网络接口。详情请参见[表6]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                  |
| block_device_mappings | 否    | Array of Objects     | **参数解释** **：** BDM挂载信息。按flavor限制为准。详情请参见[表8]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                       |
| market_options        | 否    | Object               | **参数解释** **：** 计费信息。详情请参见[表10]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                    |
| internet_access       | 否    | Object               | **参数解释** **：** 公网访问。详情请参见[表12]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                      |
| metadata              | 否    | Map\<String,String\> | **参数解释** **：** 云服务器元数据。 可以通过元数据自定义键值对。系统预留键值对请参见[表11](https://support.huaweicloud.com/api-ecs/zh-cn_topic_0167957246.html#ZH-CN_TOPIC_0167957246__table2373623012315)。 **约束限制：** 不涉及 **取值范围：** - key：长度大于0小于256字节。  - value：长度大于等于0小于256字节。   **默认取值：** 不涉及 |
| tag_options           | 否    | Array of Objects     | **参数解释** **：** 创建虚拟机标签，目前仅支持给虚拟机打标签，后续会支持同时给相关资源如卷等打标签。 详情请参见[表15]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                |
   
 表5os_profile字段数据结构说明 
| 参数                        | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| key_name                  | 否    | String  | **参数解释** **：** 使用SSH密钥方式登录云服务器时，指定已创建密钥（keypair）的名称。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                               |
| user_data                 | 否    | String  | **参数解释** **：** 创建云服务器过程中待注入实例自定义数据。支持注入文本、文本文件。 **约束限制：** - user_data的值为base64编码之后的内容。  - 注入内容（编码之前的内容）最大长度为32K。   **取值范围：** 不涉及 **默认取值：** 不涉及 |
| iam_agency_name           | 否    | String  | **参数解释** **：** 委托名称。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                            |
| enable_monitoring_service | 否    | Boolean | **参数解释** **：** 开启主机监控服务。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                              |
   
 表6network_interfaces字段数据结构说明 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| virsubnet_id | 否    | String | **参数解释** **：** 子网ID。 **约束限制：** 需要指定vpcid对应VPC下已创建的子网（subnet）的网络ID，UUID格式。 可以通过VPC服务[查询子网列表](https://support.huaweicloud.com/api-vpc/vpc_subnet01_0003.html)接口查询。 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| attachment   | 否    | Object | **参数解释** **：** 网卡信息。详情请参见[表7]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                          |
   
 表7network_interfaces的attachment字段数据结构说明 
| 参数           | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
|:---|:---|:---|:---|
| device_index | 否    | Integer | **参数解释** **：** 网卡挂载在云服务器上的相对前后位置，主网卡为0。 **约束限制：** - 不能多个网卡都设置为0。  - 当未设置device_index时，系统按照列表顺序分配。   **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表8block_device_mappings字段数据结构说明 
| 参数          | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| source_id   | 否    | String  | **参数解释** **：** 虚拟机卷数据源类型。 - 当source_type值是volume时，指卷的uuid。  - 当source_type值是snapshot时，指快照的uuid。  - 当source_type值是image时，指镜像的uuid。   **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                           |
| source_type | 否    | String  | **参数解释** **：** 卷设备源头类型。 **约束限制：** 不涉及 **取值范围：** 当前只支持volume、image、snapshot、blank类型。 - volume：使用卷创建云服务器。  - image：使用镜像创建云服务器。  - snapshot：使用快照创建云服务器。  - blank：创建空数据卷。   **默认取值：** 不涉及 |
| encrypted   | 否    | Boolean | **参数解释** **：** 是否加密。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                          |
| cmk_id      | 否    | String  | **参数解释** **：** 密钥ID。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                              |
| volume_type | 否    | String  | **参数解释** **：** 卷类型。 了解不同磁盘类型的详细信息，请参见[磁盘类型及性能介绍](https://support.huaweicloud.com/productdesc-evs/zh-cn_topic_0014580744.html)。 **约束限制：** 当source_type取值为image，destination_type取值为volume时建议填写。 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                             |
| volume_size | 否    | Integer | **参数解释** **：** 卷大小。 **约束限制：** 不涉及 **取值范围：** 整数，单位为GiB。 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                                                      |
| attachment  | 否    | Object  | **参数解释** **：** 磁盘接口。详情请参见[表9]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                                                                                                                                                                                                                                                    |
   
 表9attachment字段数据结构说明 
| 参数                    | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|:---|:---|
| boot_index            | 否    | Integer | **参数解释** **：** 启动标识。 **约束限制：** 当卷设备的源头类型全为volume时，boot_index的值有一个为0。 **取值范围：** - "0"代表启动盘。  - "-1"代表非启动盘。不传该字段时默认取值为"-1"。   **默认取值：** 不涉及 |
| delete_on_termination | 否    | Boolean | **参数解释** **：** 磁盘是否随实例一同释放。 **约束限制：** 不涉及 **取值范围：** - true：随实例释放  - false：不随实例释放   **默认取值：** 默认系统盘设置为true随实例释放，数据盘设置为false不随实例释放。             |
   
 表10market_options字段数据结构说明 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| market_type  | 否    | String | **参数解释** **：** 计费类型。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                           |
| spot_options | 否    | Object | **参数解释** **：** spot实例相关参数。详情请参见[表11]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表11spot_options字段数据结构说明 
| 参数                             | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| spot_price                     | 否    | Float   | **参数解释** **：** 用户愿意为竞价实例每小时支付的最高价格。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及          |
| block_duration_minutes         | 否    | Integer | **参数解释** **：** 购买的竞价实例时长。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                 |
| instance_interruption_behavior | 否    | String  | **参数解释** **：** 竞价实例中断策略，当前支持immediate。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表12internet_access字段数据结构说明 
| 参数       | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                             |
|:---|:---|:---|:---|
| publicip | 否    | Object | **参数解释** **：** 公网访问。详情请参见[表13]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表13publicip字段数据结构说明 
| 参数                    | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| publicip_type         | 否    | String  | **参数解释** **：** 弹性公网IP类型。 **约束限制：** 必须是系统具体支持的类型。 **取值范围：** 5_bgp（全动态BGP）、5_sbgp（静态BGP）、5_youxuanbgp（优选BGP） **默认取值：** 不涉及                                                                                                                 |
| charging_mode         | 否    | String  | **参数解释** **：** 弹性公网IP计费类型。 **约束限制：** 不涉及 **取值范围：** - prePaid：预付费，即包年包月。  - postPaid：后付费，即按需付费。   **默认取值：** postPaid |
| bandwidth             | 否    | Object  | **参数解释** **：** 弹性公网IP带宽。详情请参见[表14]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                                                                                                                                |
| delete_on_termination | 否    | Boolean | **参数解释** **：** 弹性公网IP是否随实例一同释放。 **约束限制：** 不涉及 **取值范围：** - true：随实例释放  - false：不随实例释放   **默认取值：** 不涉及            |
   
 表14bandwidth字段数据结构说明 
| 参数          | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                            |
|:---|:---|:---|:---|
| share_type  | 否    | String  | **参数解释** **：** 带宽类型。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                             |
| size        | 否    | integer | **参数解释** **：** 带宽大小。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                             |
| charge_mode | 否    | String  | **参数解释** **：** 计费类型。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及                          |
| id          | 否    | String  | **参数解释** **：** 带宽ID，创建WHOLE类型带宽的弹性IP时可以指定之前的共享带宽创建。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表15tag_options字段数据结构说明 
| 参数   | 是否必选 | 参数类型             | 描述                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|:---|
| tags | 否    | Array of Objects | **参数解释** **：** 标签。详情请参见[表16]。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
   
 表16tags字段数据结构说明 
| 参数    | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                               |
|:---|:---|:---|:---|
| key   | 否    | String | **参数解释** **：** 标签键。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及 |
| value | 否    | String | **参数解释** **：** 标签值。 **约束限制：** 不涉及 **取值范围：** 不涉及 **默认取值：** 不涉及   |
   
#### 响应消息
响应参数如[表17]所示。
 表17响应参数 
| 参数                 | 参数类型   | 描述                                                                                                                          |
|:---|:---|:---|
| launch_template_id | String | **参数解释** **：** 模板ID。 **取值范围：** 不涉及 |
   
#### 请求示例
创建规格为"s3.small.1"，名称为""ECS_Template"的启动模板。
```
POST https://{endpoint}/v3/{project_id}/launch-templates
{
    "launch_template": {
        "template_data": {
            "flavor_id": "s3.small.1",
            "name": "ecs-test",
            "description": "aaa",
            "availability_zone_id": "az1",
            "enterprise_project_id": "f8e0ecc8-XXXX-XXXX-XXXX-fb4258ffdcbb",
            "auto_recovery": true,
            "os_profile": {
                "key_name": "new-key",
                "user_data": "XXXXXXXXXXXXXXXX",
                "iam_agency_name": "new-agency",
                "enable_monitoring_service": false
            },
            "security_group_ids": [
                "76b47fb1-166e-46b9-82e4-1e1c6ecf2af0"
            ],
            "network_interfaces": [
                {
                    "virsubnet_id": "1b223400-8aa1-444f-b3ad-d846fdbeff7e",
                    "attachment": {
                        "device_index": 0
                    }
                }
            ],
            "block_device_mappings": [
                {
                    "source_id": "8e52e33d-1f2f-4d65-bd1f-c42cc420edc1",
                    "source_type": "image",
                    "encrypted": false,
                    "cmk_id": "",
                    "volume_type": "SATA",
                    "volume_size": 40,
                    "attachment": {
                        "boot_index": 0
                    }
                }
            ],
            "market_options": {
                "market_type": "postpaid",
                "spot_options": {
                    "spot_price": 0,
                    "block_duration_minutes": 0,
                    "instance_interruption_behavior": ""
                }
            },
            "internet_access": {
                "publicip": {
                    "publicip_type": "5_bgp",
                    "charging_mode": "postPaid",
                    "bandwidth": {
                        "share_type": "PER",
                        "size": 0,
                        "charge_mode": "bandwidth",
                        "id": ""
                    }
                }
            },
            "metadata": {
                "additionalProp1": "",
                "additionalProp2": "",
                "additionalProp3": ""
            },
            "tag_options": [
                {
                    "tags": [
                        {
                            "key": "aaa",
                            "value": "bbb"
                        }
                    ]
                }
            ]
        },
        "name": "ECS_Template",
        "description": "create ecs template",
        "version_description": "1.0"
    },
    "dry_run": false
}
```
#### 响应示例
```
{   "launch_template_id": "e6b99563-xxxx-xxxx-xxxx-1820d4fd2a67" }
```
#### 返回值
请参考[通用请求返回值](https://support.huaweicloud.com/api-ecs/ecs_07_0001.html)。
#### 错误码
请参考[错误码](https://support.huaweicloud.com/api-ecs/ecs_07_0002.html)。
