
# 创建部署计划 - CreateDeployment
#### 功能介绍
为方便您的统一管理，以及跨边缘站点管理资源，IEC基于业务场景角度，定义了边缘业务。
边缘业务即为逻辑层面的一套资源管理集合。这里的资源主要是指计算实例，包含实例规格、镜像、硬盘、网络等方面。通过指定计算实例的数量、调度策略以及区域分布等形成一套管理集合。[了解更多](https://support.huaweicloud.com/usermanual-iec/iec_02_0301.html)
创建一个部署计划并执行，即可创建一个边缘业务。
- 边缘业务下实例分布取决于部署计划的实例分布与调度策略。
  
- 边缘业务下实例名称、规格、镜像等参数取决于部署计划配置计算实例字段。
  
 
#### 调试
您可以在[API Explorer](https://console.huaweicloud.com/apiexplorer/#/openapi/IEC/doc?api=CreateDeployment)中调试该接口，支持自动认证鉴权。API Explorer可以自动生成SDK代码示例，并提供SDK代码示例调试功能。
#### 授权信息
账号具备所有API的调用权限，如果使用账号下的IAM用户调用当前API，该IAM用户需具备调用API所需的权限，具体权限要求请参见[权限和授权项](https://support.huaweicloud.com/api-iec/iec_05_0600.html)。
#### URI
POST /v1/deployments
#### 请求参数
表1请求Header参数 
| 参数           | 是否必选 | 参数类型   | 描述                                                                                            |
|:---|:---|:---|:---|
| X-Auth-Token | 是    | String | 用户Token。 通过调用IAM服务获取用户Token接口获取（响应消息头中X-Subject-Token的值）。 |
   
表2请求Body参数 
| 参数        | 是否必选 | 参数类型                                                                 | 描述        |
|:---|:---|:---|:---|
| edgecloud | 是    | [EdgeCloudOption] object | 待部署的边缘业务。 |
   
 表3EdgeCloudOption 
| 参数          | 是否必选 | 参数类型                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| name        | 否    | String                                                 | 边缘业务名称。 取值范围：只能由中文字符、大小写英文字母、数字及中划线、下划线组成，且长度为\[1-32\]个字符。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| id          | 否    | String                                                 | 已有边缘业务ID，该参数用于扩容边缘业务场景。 说明： - id与name不可同时为空，同时有值时部署计划无效；    - 通过id扩容场景要求区域分布层级与原边缘业务一致；   - 区域分布层级为站点级的边缘业务不支持扩容。    |
| description | 否    | String                                                 | 描述，缺省值为空字符串。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| coverage    | 是    | [Coverage] object | 边缘业务实例分布策略。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| stack       | 是    | [Stack] object       | 边缘业务资源组配置模板，边缘业务中的计算实例将根据该参数信息创建。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
   
 表4Coverage 
| 参数              | 是否必选 | 参数类型                                                                     | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| coverage_policy | 是    | String                                                                   | 区域调度策略，只支持centralize/discrete。 - centralize：代表城市集中策略，指定该策略，边缘业务创建时会保证将所有实例都发放在同一个站点。   - discrete：代表城市分散，指定该策略，边缘业务创建时，尽量保证所有实例都分散发放在不同站点。                                                                                                                                                                                                                                                                                                                                                                                               |
| coverage_level  | 是    | String                                                                   | 区域分布层级，只支持area/prov/city/site。 - area:大区，用户的资源会在指定大区下发放。   - prov:省份，用户的资源会在指定省份下发放。   - city:城市，用户的资源会在指定城市下发放。   - site:站点级别。    约束： 站点层级，coverage_policy上仅支持'centralize'，coverage_sites中'site'字段仅支持使用ID(站点ID，通过"查询边缘站点列表"获取)，不支持name。 |
| coverage_sites  | 是    | Array of [CoverageSite] objects | 区域及购买数量列表。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
 表5CoverageSite 
| 参数      | 是否必选 | 参数类型                                                         | 描述                                                                             |
|:---|:---|:---|:---|
| site    | 是    | String                                                       | 站点名称。 具体信息可通过调用"查询边缘站点列表"来查询(注意：本字段区分大小写)。 |
| demands | 是    | Array of [Demand] objects | 租户需求数量列表。表示租户发放资源站点的运营商和发放的资源组的数量。                                             |
   
 表6Demand 
| 参数                    | 是否必选 | 参数类型    | 描述                                                                                                                                           |
|:---|:---|:---|:---|
| operator              | 否    | String  | 所属运营商。                                                                                                                                       |
| demand_count          | 是    | Integer | 站点需要发放的资源(组)总数。 说明： 实际发放实例数量为count\*demand_count。                                                        |
| pool_id               | 否    | String  | 弹性公网IP池。 多线路场景下，将在该弹性公网IP池下创建弹性公网IP。 说明： 覆盖规则为省级/大区时不支持指定线路ID创建边缘业务。 |
| bandwidth_type        | 否    | String  | 带宽类型。 如果当前带宽类型下没有带宽，自动在该带宽类型下创建带宽                                                                                                            |
| pool_id_v6            | 否    | String  | 指定IPv6线路，使用该线路下的子网分配IPv6端口。 如果该线路下没有关联启用IPv6的子网，则创建新的子网。                                                 |
| ipv6_bandwidth_enable | 否    | Boolean | 使用IPv6带宽。 边缘实例是否开启IPv6公网访问能力。如果该IPv6线路没有可用的带宽，则创建新的带宽。                                                   |
| ipv6_bandwidth_type   | 否    | String  | 带宽类型。 边缘实例开启IPv6访问公网能力后，如果当前带宽类型下没有带宽，自动在该带宽类型下创建带宽                                                      |
   
 表7Stack 
| 参数        | 是否必选 | 参数类型                                                             | 描述                                                                                              |
|:---|:---|:---|:---|
| name      | 是    | String                                                           | 边缘资源组名称。 取值范围：只能由中文字符、大小写英文字母、数字及中划线、下划线组成，且长度为\[1-48\]个字符。 |
| resources | 是    | Array of [Resource] objects | 边缘业务的堆栈，即为资源组。                                                                                  |
   
 表8Resource 
| 参数              | 是否必选 | 参数类型                                                                                   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| name            | 是    | String                                                                                 | 边缘实例名称。 取值范围： 只能由中文字符、英文字母 (大小写)、数字及"_"、"-"、"." 组成。 创建的边缘实例数量（count字段对应的值）大于1时，为区分不同边缘实例，创建过程中系统会自动在名称后加"-000x"的类似标记。 说明： 华为云边缘实例内部主机名 （hostname）命名规则遵循RFC 952和RFC 1123命名规范，建议使用a-zA-z或0-9以及中划线'-'组成的名称命名，' _' 将在边缘实例内部默认转化为'-'。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| with_prefix     | 否    | Boolean                                                                                | 是否自动添加名称前缀。 - with_prefix为false时不拼接IEC前缀   - with_prefix不传或者传true时拼自动IEC前缀    以name为iec为例： 不添加前缀时实例名称为：iec-0001 自动添加前缀实例名称为：IEC-ZS01-iec-0001 0001为创建边缘业务时根据实例个数自动添加的编号                                                                                                                                                                                                                                                                                                               |
| image_ref       | 是    | String                                                                                 | 待发放边缘实例的系统镜像，需要指定已创建镜像的ID。 说明： 镜像的ID可以从控制台或者参考本文档的"查询边镜像列表"的章节获取。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| flavor_ref      | 是    | String                                                                                 | 边缘实例的系统规格的ID。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| admin_pass      | 否    | String                                                                                 | 如果需要使用密码方式登录边缘实例，可使用admin_pass字段指定边缘实例管理员账户初始登录密码。其中，Linux管理员账户为root，Windows管理员账户为Administrator。 密码复杂度要求： - 长度为8-26位。   - 密码至少必须包含大写字母、小写字母、数字和特殊字符（!@$%\^-_=+\[{}\]:,./?）中的三种。   - 密码不能包含用户名或用户名的逆序。   - Windows系统密码不能包含用户名或用户名的逆序，不能包含用户名中超过两个连续字符的部分。    说明： 目前边缘实例不支持创建后设置密码，不设置此参数会导致实例无法登录。 |
| key_name        | 否    | String                                                                                 | 密钥对名称。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| net_config      | 是    | [NetConfig] object                               | 实例的边缘网络配置。 包含了边缘网络的网段信息和子网数目信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| bandwidth       | 否    | [BandwidthConfig] object                   | 实例的带宽参数。 IEC服务现在提供共享带宽服务，暂不支持其他类型带宽。 说明： 创建边缘业务时指定实例同步创建EIP则需通过此参数指定。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| root_volume     | 是    | [RootVolume] object                             | 边缘实例对应系统盘相关配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| data_volumes    | 否    | Array of [DataVolume] objects                   | 边缘实例对应数据盘相关配置。每一个数据结构代表一块待创建的数据盘。 约束：目前边缘实例最多可挂载2块数据盘                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| count           | 否    | Integer                                                                                | 边缘实例数量。 不传该字段时默认取值为1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| security_groups | 否    | Array of [SecurityGroupOption] objects | 边缘业务对应安全组信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| user_data       | 否    | String                                                                                 | 创建边缘实例过程中注入用户数据。支持注入文本、文本文件或gzip文件。 更多关于待注入用户数据的信息，请参见《弹性云服务器用户指南 》的"[用户数据注入](https://support.huaweicloud.com/usermanual-ecs/zh-cn_topic_0032380449.html)"章节。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   
 表9NetConfig 
| 参数                    | 是否必选 | 参数类型                                                                                 | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| vpc_id                | 是    | String                                                                               | 边缘网络ID。 约束： - 创建边缘业务仅支持使用系统规划的虚拟私有云。                                                                                                                                                                                                                                                             |
| nic_num               | 是    | Integer                                                                              | 边缘实例绑定的网卡数量。 约束：一台边缘实例最少绑定一张网卡，最多绑定8张网卡。                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| allowed_address_pairs | 否    | Array of [AllowedAddressPair] objects | - 功能说明：IP/Mac对列表   - 约束：    IP地址不允许为 "0.0.0.0/0" 如果allowed_address_pairs配置地址池较大的CIDR（掩码小于24位），建议为该port配置一个单独的安全组。 如果allowed_address_pairs为"1.1.1.1/0"，表示关闭源目地址检查开关 |
   
 表10AllowedAddressPair 
| 参数          | 是否必选 | 参数类型   | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
|:---|:---|:---|:---|
| ip_address  | 是    | String | - 功能说明：IP地址   - 约束：    IP地址不支持"0.0.0.0/0" 如果allowed_address_pairs配置地址池较大的CIDR（掩码小于24位），建议为该port配置一个单独的安全组。 如果allowed_address_pairs的IP地址为"1.1.1.1/0"，表示关闭源目地址检查开关。 被绑定的边缘实例网卡allowed_address_pairs的IP地址填"1.1.1.1/0"。 |
| mac_address | 否    | String | MAC地址                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
 表11BandwidthConfig 
| 参数        | 是否必选 | 参数类型    | 描述                             |
|:---|:---|:---|:---|
| sharetype | 是    | String  | 带宽类型，现支持WHOLE类型，即共享带宽，其他类型不支持。 |
| size      | 否    | Integer | 带宽（Mbit/s）。                    |
   
 表12RootVolume 
| 参数          | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| size        | 是    | Integer | 系统盘大小，容量单位为GB，输入大小范围为\[40,100\]。                                                                                                                                                                                                                                                                                                                             |
| volume_type | 是    | String  | "边缘实例系统盘对应的磁盘类型，需要与站点所提供的磁盘类型相匹配。" 取值范围： 目前支持"SATA"，"SAS"，"GPSSD"，"SSD"。 "SATA"为普通IO云硬盘 "SAS"为高IO云硬盘 "GPSSD"为通用型SSD云硬盘 "SSD"为超高IO云硬盘 |
   
 表13DataVolume 
| 参数          | 是否必选 | 参数类型    | 描述                                                                                                                                                                                                                                                                                                                                                           |
|:---|:---|:---|:---|
| size        | 是    | Integer | 数据盘大小，容量单位为GB，输入大小范围为\[1,500\]。                                                                                                                                                                                                                                                                                                                              |
| volume_type | 是    | String  | "边缘实例系统盘对应的磁盘类型，需要与站点所提供的磁盘类型相匹配。" 取值范围： 目前支持"SATA"，"SAS"，"GPSSD"，"SSD"。 "SATA"为普通IO云硬盘 "SAS"为高IO云硬盘 "GPSSD"为通用型SSD云硬盘 "SSD"为超高IO云硬盘 |
   
 表14SecurityGroupOption 
| 参数 | 是否必选 | 参数类型   | 描述                                               |
|:---|:---|:---|:---|
| id | 否    | String | 边缘实例的安全组，会对边缘实例中配置的网卡生效。需要指定已有安全组的ID。不填写时选择默认安全组 |
   
#### 响应参数
**状态码：200**
表15响应Body参数 
| 参数        | 参数类型                                                              | 描述        |
|:---|:---|:---|
| id        | String                                                            | 部署计划ID。   |
| locations | Array of [Location] objects | 部署位置信息列表。 |
   
 表16Location 
| 参数                    | 参数类型    | 描述                                                      |
|:---|:---|:---|
| site_id               | String  | 站点ID。                                                   |
| area                  | String  | 所在大区。                                                   |
| province              | String  | 所属省份英文名称。 大小写通用，皆支持 |
| city                  | String  | 所在城市英文名称。                                               |
| operator              | String  | 所属运营商。                                                  |
| pool_id               | String  | 线路ID。多线路场景下，创建的弹性公网IP在该线路下。                             |
| stack_count           | Integer | 站点需要发放的资源(组)总数。                                         |
| city_short_name       | String  | 城市简称。                                                   |
| ipv6_enable           | Boolean | 创建边缘实例是否开启IPv6。                                         |
| ipv6_bandwidth_enable | Boolean | 创建IPv6边缘实例是否支持公网访问。                                     |
| pool_id_v6            | String  | IPv6线路ID。IPv6场景下，使用该线路下的子网分配IPv6端口。                     |
   
#### 请求示例
创建部署计划，按需计费，实例规格为c6.large.2，网卡数量为1，系统盘类型为SATA，大小100GB，调度策略为集中，城市调度西安市区域购买1个实例
```
POST https://{endpoint}/v1/deployments
{
  "edgecloud" : {
    "stack" : {
      "name" : "stack-fo09",
      "resources" : [ {
        "name" : "edgeinstance1",
        "image_ref" : "00000000-0000-0000-0000-000000000002",
        "flavor_ref" : "c6.large.2",
        "net_config" : {
          "vpc_id" : "4a6d9663-475f-11eb-aa7c-fa16406a65c4",
          "nic_num" : 1
        },
        "count" : 1,
        "root_volume" : {
          "volume_type" : "SATA",
          "size" : 100
        },
        "security_groups" : [ {
          "id" : "153133f5-2b16-11eb-a594-fa16408859a1"
        } ],
        "user_data" : "IyEvYmluL2Jhc2gKZWNobyAncm9vdDokNiQzOEVORTckaTJ6Li9ibzZMUGlUT3VFVE5KbmxNdC9yMmJSNlhyOC81S3BndWtNU0xhLmhiVlFJNkY3T25sUS5ucVM0SXpmVEhSU0ZHN3lBeHBiakxlNkUwYjE1YjEnIHwgY2hwYXNzd2QgLWU7"
      } ]
    },
    "coverage" : {
      "coverage_level" : "city",
      "coverage_policy" : "centralize",
      "coverage_sites" : [ {
        "site" : "xi'an",
        "demands" : [ {
          "demand_count" : 1
        } ]
      } ]
    },
    "name" : "edgecloud1"
  }
}
```
#### 响应示例
**状态码：200**
OK
```
{
  "id" : "87b9a88c-499d-11eb-8a8a-fa1640495574",
  "locations" : [ {
    "site_id" : "74a75ed3-cfb9-11ea-a0c3-fa1640495574",
    "area" : "north",
    "province" : "shaanxi",
    "city" : "xi'an",
    "operator" : "bgp",
    "pool_id" : "5_bgp_edgecloud-site4_0",
    "stack_count" : 1,
    "city_short_name" : ""
  } ]
}
```
#### 状态码
| 状态码 | 描述 |
|:---|:---|
| 200 | OK |
   
#### 错误码
请参见[错误码](https://support.huaweicloud.com/api-iec/ErrorCode.html)。
