华为云服务器创建弹性云服务器_云淘科技

场景描述

本章节指导用户通过API创建云服务器。API的调用方法请参见如何调用API。

创建云服务器时,支持通过卷和镜像两种方式进行创建。本节以指定镜像的方式为例,介绍如何创建云服务器。

约束限制

该接口创建出来的是按需付费的实例。

涉及接口

创建云服务器时,需要进行规格查询、可用区查询、云硬盘创建等操作,涉及的接口如下:

查询可用区列表:确定待创建云服务器所在的可用区。
查询云服务器规格详情列表:确定待创建云服务器的规格。
查询镜像列表详情:确定待创建云服务器使用的镜像。
查询网络列表:确定云服务器的网络信息。
创建和导入SSH密钥:设置密钥对登录方式。
创建云服务器:创建密钥对登录鉴权的云服务器。
查询云服务器详情:确认云服务器创建成功。

操作步骤

确定待创建云服务器所在的可用区。

查询可用区。

接口相关信息

URI格式:GET /v2.1/{project_id}/os-availability-zone

详情请参见查询可用区列表。

请求示例

GET https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-availability-zone

{endpoint}信息请从地区和终端节点获取。

响应示例

 {
  "availabilityZoneInfo": [
    {
      "hosts": null,
      "zoneState": {
        "available": true
      },
      "zoneName":"zone_01" 
    },
    {
      "hosts": null,
      "zoneState": {
        "available": true
      },
      "zoneName": "zone_01" 
    }
  ]
}

根据实际需要选择可用区,并记录可用区的zoneName。

确定待创建云服务器的规格。

查询云服务器规格信息。

接口相关信息

URI格式:GET /v2.1/{project_id}/flavors/detail{?minDisk,minRam,is_public,sort_key,sort_dir}

其中,“?”后的字段为查询规格时可选的查询检索参数,详情请参见查询云服务器规格详情列表。

请求示例

GET https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/flavors/detail

{endpoint}信息请从地区和终端节点获取。

响应示例

{
  "flavors": [
    {
      "name": "c1.2xlarge",
      "links": [
        {
          "href": "https://xxx/v2.1/74610f3a5ad941998e91f076297ecf27/flavors/c1.2xlarge",
          "rel": "self"
        },
        {
          "href": "https://xxx/74610f3a5ad941998e91f076297ecf27/flavors/c1.2xlarge",
          "rel": "bookmark"
        }
      ],
      "ram": 8192,
      "OS-FLV-DISABLED:disabled": false,
      "vcpus": 8,
      "swap": "",
      "os-flavor-access:is_public": true,
      "rxtx_factor": 1,
      "OS-FLV-EXT-DATA:ephemeral": 0,
      "disk": 0,
      "id": "c1.2xlarge"
    }
]
}

根据实际需要选择规格,并记录规格的ID。

确定待创建云服务器使用的镜像。

查询镜像。

接口相关信息

URI格式:GET /v2.1/{project_id}/images/detail

详情请参见查询镜像列表详情。

请求示例

GET https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/images/detail

{endpoint}信息请从地区和终端节点获取。

响应示例

{
  "images": [
    {
      "OS-EXT-IMG-SIZE:size": 0,
      "metadata": {
        "__os_type": "Linux",
        "hw_vif_multiqueue_enabled": "true",
        "__imagetype": "gold",
        "__quick_start": "true",
        "virtual_env_type": "FusionCompute",
        "__support_xen": "true",
        "__support_kvm": "true",
        "__image_source_type": "uds",
        "__platform": "EulerOS",
        "__os_version": "EulerOS 2.2 64bit",
        "__os_bit": "64",
        "__isregistered": "false"
      },
      "created": "2018-05-14T06:13:50Z",
      "minRam": 0,
      "name": "DBS-MySQL-Image_2.1.3.3",
      "progress": 100,
      "links": [
        {
          "rel": "self",
          "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4"
        },
        {
          "rel": "bookmark",
          "href": "https://None/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4"
        },
        {
          "rel": "alternate",
          "href": "https://None/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4",
          "type": "application/vnd.openstack.image"
        }
      ],
      "id": "11e8f727-d439-4ed1-b3b8-33f46c0379c4",
      "updated": "2018-05-14T06:13:52Z",
      "minDisk": 40,
      "status": "ACTIVE"
    }
  ]
}

根据需要选择镜像,并记录镜像ID。

确定云服务器的网络信息。

查询网络。

接口相关信息

URI格式:GET /v2.1/{project_id}/os-networks

详情请参见查询网络列表。

请求示例

GET https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-networks

{endpoint}信息请从地区和终端节点获取。

响应示例

{
  "networks": [
    {
      "id": "07a9557d-4256-48ae-847c-415a9c8f7ff6",
      "label": "b_tt3_td1b",
      "broadcast": null,
      "cidr": null,
      "dns1": null,
      "dns2": null,
      "gateway": null,
      "netmask": null,
      "cidr_v6": null,
      "gateway_v6": null,
      "netmask_v6": null
    }
  ]
}

根据需要选择网络,并记录网络ID。

设置密钥对登录方式。

如需设置为密码登录方式,请直接跳转至7。

创建密钥对。

接口相关信息

URI格式:POST /v2.1/{project_id}/os-keypairs

详情请参见创建和导入SSH密钥。

请求示例

POST https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-keypairs

{endpoint}信息请从地区和终端节点获取。

Body:

{
    "keypair": {
        "type": "ssh",
        "name": "demo1",
        "user_id": "fake"
    }
}

响应示例

{
  "keypair": {
    "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrR5Gcwlh5ih7JOvzIUuQxS5qzWWPMYHeDXkDKSQ9W5pumOV05SiO3WCswnaQ5xMdOl31mNiHtwlwq9dJi7X6jJBB2shTD+00G5WuwkBbFU4CLvt1B44u0NUiaTJ35NAvW2/4XvpXm9OwiQ3B5ge6ZY7Esi38Unh+pkbhPkYxNBCK8yoOlojQhWs75abdxZBi811/8RwLcNiFiocA2RGxtRjBdpEScj+1TU+OcfZdQnr0AFbO11z7yxfIygwwzVTgUuJNbMbKHStQqRbklfMlHY4RBPQgb7RN/YaXKTQSXT84k+D9xlDNo7Wj4fwOJTOz/s/PvbIOqjRHt9D6Y4IKd Generated-by-Nova
",
    "private_key": "-----BEGIN RSA PRIVATE KEY-----
MIIEogIBAAKCAQEAq0eRnMJYeYoeyTr8yFLkMUuas1ljzGB3g15AykkPVuabpjld
OUojt1grMJ2kOcTHTpd9ZjYh7cJcKvXSYu1+oyQQdrIUw/tNBuVrsJAWxVOAi77d
QeOLtDVImkyd+TQL1tv+F76V5vTsIkNweYHumWOxLIt/FJ4fqZG4T5GMTQQivMqD
paI0IVrO+Wm3cWQYvNdf/EcC3DYhYqHANkRsbUYwXaREnI/tU1PjnH2XUJ69ABWz
tdc+8sXyMoMMM1U4FLiTWzGyh0rUKkW5JXzJR2OEQT0IG+0Tf2Glyk0El0/OJPg/
cZQzaO1o+H8DiUzs/7Pz72yDqo0R7fQ+mOCCnQIDAQABAoIBAA6/c9dGmK2mae4z
yQ5KrOFdvC1TNhej+sZx+CwyzEJUSvSuHcvQCXFBAz8FY92hhvPKcX66jINXZ+4/
CmWAQ5YyhcRiow0Y91HvsS0bywoknX3q6kxBFodmyyCWFkgd5iMTADb1Lx0a27Y7
jlS4Dl5gyiGmxUN2Ng24wWEAjE8ZNuI0lrtr5IZKp+s5IAi/rb5AG/mL7EzicE8c
mGP+QAa+nzwhAwNhFwVID230xen/ZcoL1d77hxeARNqJUxoR25gwJd6Ebg2y9pDW
Vu6cbbzgdGUCfQYlMEoAamAkCswOsDpVDBXwQnt2A537n6Wq2bgYIKusHr9thtxP
/5ubQLUCgYEA4zYuBG2vtLHnvce26P8o2j1xcJS9K0ozkah9JFl3hqFN0sAqLlz7
/Fm1jA4kzHJS3d0UqP3AMDxY3HkIqCn4Be7lqeAAe2AfqkOZpt9MDNv4VwKe9sPb
ViW1qjL3FxziLC/YWTRNSlpwRjqJJGhA+UQt8rOia1k/zXmrEs7bXLcCgYEAwPsu
K3j5QoAiziYVMYf5iCzWwAM9Ljpf9gw23lefTdIzhhfFtJplVRSyxRGU0UZ84GMI
Td5zmcIF/1KUfhqmeiQzz6NIPEYEReahjpQ/sOH/Gk5Rwr3QwYPrwAu5x+kk/SRi
KPkqw7APTR0sMQBcUq+ZYwGYLGPMdd1zUdLfb0sCgYBkuz11iydtxb3G/obSD2WO
M9VaIycmzRPFzNwGRH/gOR0mhTluKp0wyJjbSd34oeqpH/2r2ivddrOysxoqa8jg
4IQDZyLvj7MaKjQxrieqP89+y9Or9TMFo1xB46x2G8EN8/xHuA9YGnZSPFtWv72m
hRqV0hv82amWsA0vHnRUSwKBgDsKHXvrTMbNkNhkykMXCH5iyWiBFSyZa1ZJMlgf
knsqfdzeVPwF6E55QKAN2uuTlwzG/3ljPxahR1hvmUJjQN9JSBiUKbtW6GPCRVbr
f/jLi1Iu99COZdluVKeybqn8Z/aSNP24DR9FM8kxzZ1IMPaTBmhFypp6BclhcLBt
xTG1AoGAfcrkVbV1SOy7fECUtMpUECcw0yU4GWj3sR2RbII63C500RVYQlUpUaRR
aANbASHTVR4myOKtGSxEUhAQHlxFDwsDL7W3gzAqTFbEDp1xAAUyT/nkOAhQjEm4
ORFdDETeXLQG1KMUj+8AdnhfYp3JTdft6rmPpZEBUFiCAUMAvb0=
-----END RSA PRIVATE KEY-----
",
    "user_id": "f79791beca3c48159ac2553fff22e166",
    "name": "demo1",
    "fingerprint": "57:a7:a2:ed:5f:aa:e7:54:62:2e:bb:e7:92:22:cb:40"
  }
}

导入密钥。

接口相关信息

URI格式:POST /v2.1/{project_id}/os-keypairs

详情请参见创建和导入SSH密钥。

请求示例

POST https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/os-keypairs

{endpoint}信息请从地区和终端节点获取。

Body:

{
    "keypair": {
        "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY8wMTdBYiJgi62o6eShoOlSKx3CZ3cE6PHisDblfK3Y0Bg7EHV7iV9c74pqsrIhK0xuGUuO1NxDQWbkwLTPN4F9Iy5CIYohLuMIpbln6LDtfRPpdhEh3lxL8MM61gyfpKzeKkwkEpSFj27Rgh6zCyJgBpkA2A0HTP737UlitahL4faCWDIS+Vj6mbcfkWiMhuMCzTZgSKAZ4PfoG4B5HJhR52C6A4XLiQFT9heh9gnIsIG+uTogTKUbcJKuN7M6AraJpul6eHhV9YI4433sDmuiBF/njvreVPWwAHlAkgT9I8q1T/cfEFiwzXpdGbkK5O8NC7K+qNbbdKihlahONt Generated-by-Nova
",
        "type": "ssh",
        "name": "demo2",
        "user_id": "fake"
    }
}

响应示例

{
  "keypair": {
    "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY8wMTdBYiJgi62o6eShoOlSKx3CZ3cE6PHisDblfK3Y0Bg7EHV7iV9c74pqsrIhK0xuGUuO1NxDQWbkwLTPN4F9Iy5CIYohLuMIpbln6LDtfRPpdhEh3lxL8MM61gyfpKzeKkwkEpSFj27Rgh6zCyJgBpkA2A0HTP737UlitahL4faCWDIS+Vj6mbcfkWiMhuMCzTZgSKAZ4PfoG4B5HJhR52C6A4XLiQFT9heh9gnIsIG+uTogTKUbcJKuN7M6AraJpul6eHhV9YI4433sDmuiBF/njvreVPWwAHlAkgT9I8q1T/cfEFiwzXpdGbkK5O8NC7K+qNbbdKihlahONt Generated-by-Nova
",
    "user_id": "f79791beca3c48159ac2553fff22e166",
    "name": "demo2",
    "fingerprint": "dd:44:45:49:d9:f6:4f:c0:24:2d:81:aa:c4:4b:83:c2"
  }
}

记录响应消息体中的name信息。如本例中为“demo2”。

创建密钥对登录鉴权的云服务器。

接口相关信息

URI格式:POST /v2.1/{project_id}/servers

接口约束及请求参数说明详情,请参见创建云服务器。

本示例是指定image创建云服务器,因此:

block_device_mapping_v2中,“source_type”需设置为“image”,“uuid”设置为选择的镜像ID,“destination_type”设置为“volume”,“boot_index”设置为“0”。
“volume_size”应大于等于镜像元数据中指定的最小值。

请求示例

POST https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers

{endpoint}信息请从地区和终端节点获取。

Body:

{
    "server": {
        "flavorRef": "c1.large",
        "name": "zttestvm1",
        "block_device_mapping_v2": [{
            "source_type": "image",
            "destination_type": "volume",
            "volume_type": "SSD",
            "volume_size": "40",
            "delete_on_termination": "true",
            "uuid": "11e8f727-d439-4ed1-b3b8-33f46c0379c4",
            "boot_index": "0"
        }],
        "networks": [{
            "uuid": "fb68519f-a7c0-476e-98d4-2e4cf6de6def"
        }],
        "key_name": "demo2",
        "availability_zone": "az_test_01"
    }
}

响应示例

{
  "server": {
    "security_groups": [
      {
        "name": "default"
      }
    ],
    "OS-DCF:diskConfig": "MANUAL",
    "links": [
      {
        "rel": "self",
        "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/6d311127-bce1-48db-bf0f-cac9f8f7f077"
      },
      {
        "rel": "bookmark",
        "href": "https://None/74610f3a5ad941998e91f076297ecf27/servers/6d311127-bce1-48db-bf0f-cac9f8f7f077"
      }
    ],
    "id": "6d311127-bce1-48db-bf0f-cac9f8f7f077",
    "adminPass": "WcC4QoVZPXpV"
  }
}

设置密码登录方式。

使用非cloud-init镜像创建云服务器时,Windows和Linux系统都使用“adminPass”参数实现密码注入。
使用cloud-init镜像创建云服务器时:

对于Linux系统,只能使用“user_data”进行密码注入,“user_data”字符串长度小于65535,且必须是base64加密的;
对于Windows系统,只能通过元数据“admin_pass”进行密码注入。

创建密码方式登录鉴权的弹性云服务器。

本示例是指定image创建弹性云服务器,因此:

block_device_mapping_v2中,“source_type”需设置为“image”,“uuid”设置为选择的镜像ID,“destination_type”设置为“volume”,“boot_index”设置为“0”。
“volume_size”应大于等于镜像元数据中指定的最小值。

创建非cloud-init镜像、密码方式登录鉴权的弹性云服务器。

接口相关信息

URI格式:POST /v2.1/{project_id}/servers

接口约束及请求参数说明详情,请参见创建云服务器。

请求示例

POST https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers

{endpoint}信息请从地区和终端节点获取。

Body:

{
    "server": {
        "flavorRef": "c1.large",
        "name": "zttestvm1",
        "adminPass":"NOVAGLANCEI@123",
        "block_device_mapping_v2": [{
            "source_type": "image",
            "destination_type": "volume",
            "volume_type": "SSD",
            "volume_size": "40",
            "delete_on_termination": "true",
            "uuid": "11e8f727-d439-4ed1-b3b8-33f46c0379c4",
            "boot_index": "0"
        }],
        "networks": [{
            "uuid": "fb68519f-a7c0-476e-98d4-2e4cf6de6def"
        }],
        "availability_zone": "az_test_01"
    }
}

响应示例

{
  "server": {
    "security_groups": [
      {
        "name": "default"
      }
    ],
    "OS-DCF:diskConfig": "MANUAL",
    "links": [
      {
        "rel": "self",
        "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/73991cff-37c6-491a-9a8a-377397729fce"
      },
      {
        "rel": "bookmark",
        "href": "https://None/74610f3a5ad941998e91f076297ecf27/servers/73991cff-37c6-491a-9a8a-377397729fce"
      }
    ],
    "id": "73991cff-37c6-491a-9a8a-377397729fce",
    "adminPass": "NOVAGLANCEI@123"
  }
}

创建cloud-init镜像(以Linux为例)、密码方式登录鉴权的弹性云服务器。

接口相关信息

URI格式:POST /v2.1/{project_id}/servers

接口约束及请求参数说明详情,请参见创建云服务器。

请求示例

POST https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers

{endpoint}信息请从地区和终端节点获取。

Body:

{
    "server": {
        "flavorRef": "c1.large",
        "name": "zttestvm2", 
"user_data":"IyEvYmluL2Jhc2gKZWNobyAncm9vdDokNiRuaERlcUIkajBkelVMbkFrbWo4bWlFREFzT0VONkVPdGg1RmdqWnQybUVWZVRocC5OVDJXelZVdzFuNzhnL3dNdDE0dVpSQ1V3LzhHS3VGdEViQ0lPQS5vN1BZQzEnIHwgY2hwYXNzd2QgLWU7",
        "block_device_mapping_v2": [{
            "source_type": "image",
            "destination_type": "volume",
            "volume_type": "SSD",
            "volume_size": "40",
            "delete_on_termination": "true",
            "uuid": "11e8f727-d439-4ed1-b3b8-33f46c0379c4",
            "boot_index": "0"
        }],
        "networks": [{
            "uuid": "fb68519f-a7c0-476e-98d4-2e4cf6de6def"
        }],
        "availability_zone": "az_test_01"
    }
}

响应示例

{
  "server": {
    "security_groups": [
      {
        "name": "default"
      }
    ],
    "OS-DCF:diskConfig": "MANUAL",
    "links": [
      {
        "rel": "self",
        "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/7c11f362-cc96-4306-85b6-b432a639ca5e"
      },
      {
        "rel": "bookmark",
        "href": "https://None/74610f3a5ad941998e91f076297ecf27/servers/7c11f362-cc96-4306-85b6-b432a639ca5e"
      }
    ],
    "id": "7c11f362-cc96-4306-85b6-b432a639ca5e",
    "admin_pass": "J3xMSivHCuq5"
  }
}

确认云服务器创建成功。

接口相关信息

URI格式:GET /v2.1/{project_id}/servers/{server_id}

详情请参见查询云服务器详情。

请求示例

GET https://{endpoint}/v2.1/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6

其中:

0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6为创建的云服务器UUID。

{endpoint}信息请从地区和终端节点获取。

响应示例

{
  "server": {
    "tenant_id": "74610f3a5ad941998e91f076297ecf27",
    "addresses": {
      "2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68": [
        {
          "OS-EXT-IPS-MAC:mac_addr": "fa:16:3e:88:01:1b",
          "OS-EXT-IPS:type": "fixed",
          "addr": "192.168.2.192",
          "version": 4
        }
      ]
    },
    "metadata": {},
    "OS-EXT-STS:task_state": null,
    "OS-DCF:diskConfig": "MANUAL",
    "OS-EXT-AZ:availability_zone":  "az_test_01",
    "links": [
      {
        "rel": "self",
        "href": "https://None/v2.1/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6"
      },
      {
        "rel": "bookmark",
        "href": "https://None/74610f3a5ad941998e91f076297ecf27/servers/0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6"
      }
    ],
    "OS-EXT-STS:power_state": 1,
    "id": "0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6",
    "os-extended-volumes:volumes_attached": [
      {
        "id": "b551445a-e749-4d53-932a-638a455cb6c3"
      }
    ],
    "OS-EXT-SRV-ATTR:host": "pod1_test_01",
    "image": {
      "links": [
        {
          "rel": "bookmark",
          "href": "https://None/74610f3a5ad941998e91f076297ecf27/images/11e8f727-d439-4ed1-b3b8-33f46c0379c4"
        }
      ],
      "id": "11e8f727-d439-4ed1-b3b8-33f46c0379c4"
    },
    "OS-SRV-USG:terminated_at": null,
    "accessIPv4": "",
    "accessIPv6": "",
    "created": "2018-05-25T01:47:11Z",
    "hostId": "b2792bef989888d2df1f51bff81de5ac58a4117f4e9ec3059c1a0410",
    "OS-EXT-SRV-ATTR:hypervisor_hostname": "nova001@36",
    "key_name": null,
    "flavor": {
      "links": [
        {
          "rel": "bookmark",
          "href": "https://None/74610f3a5ad941998e91f076297ecf27/flavors/c1.large"
        }
      ],
      "id": "c1.large"
    },
    "security_groups": [
      {
        "name": "default"
      }
    ],
    "config_drive": "",
    "OS-EXT-STS:vm_state": "active",
    "OS-EXT-SRV-ATTR:instance_name": "instance-001883cd",
    "user_id": "f79791beca3c48159ac2553fff22e166",
    "name": "zttestvm1",
    "progress": 0,
    "OS-SRV-USG:launched_at": "2018-05-25T01:47:55.755922",
    "updated": "2018-05-25T01:47:55Z",
    "status": "ACTIVE"
  }
}

父主题: 应用示例

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家