Estos contenidos se han traducido de forma automática para su comodidad, pero Huawei Cloud no garantiza la exactitud de estos. Para consultar los contenidos originales, acceda a la versión en inglés.
Actualización más reciente 2022-11-08 GMT+08:00

Creación de un ECS

Escenarios

Esta sección describe cómo crear un ECS llamando a las API. Para más detalles, consulte Llamada a APIs.

Un ECS se puede crear usando un disco o una imagen. Esta sección utiliza una imagen como ejemplo para describir cómo crear un ECS.

Restricciones

El ECS creado con esta API está en modo de facturación de pago por uso.

APIs involucradas

Crear un ECS implica ver variantes y AZs, así como crear discos EVS. Se requieren las siguientes API:

Procedimiento

  1. Determinar el AZ donde se encuentra el ECS.

    1. Ver AZs.
      • API

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

        Para más detalles, consulte Consulta de AZ.

      • Ejemplo de la solicitud

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

        Obtenga {endpoint} de Regiones and endpoint.

      • Ejemplo de la respuesta
         {
          "availabilityZoneInfo": [
            {
              "hosts": null,
              "zoneState": {
                "available": true
              },
              "zoneName":"zone_01" 
            },
            {
              "hosts": null,
              "zoneState": {
                "available": true
              },
              "zoneName": "zone_01" 
            }
          ]
        }
    2. Seleccione una AZ según los requisitos del sitio y registre la AZ (zoneName).

  2. Determina la variante de ECS.

    1. Ver las variantes de ECS.
      • API

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

        Los campos que siguen al signo de interrogación (?) son opcionales, que se utilizan para consultar variantes de ECS. Para más detalles, consulte Consultar detalles sobre variantes de ECS.

      • Ejemplo de la solicitud

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

        Obtenga {endpoint} de Regiones and endpoint.

      • Ejemplo de la respuesta
        {
          "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"
            }
        ]
        }
    2. Seleccione una variante según los requisitos del sitio y registre el ID de la variante.

  3. Determinar la imagen.

    1. Ver imágenes.
      • API

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

        Para más detalles, consulte Consulta de detalles de imagen (descartada).

      • Ejemplo de la solicitud

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

        Obtenga {endpoint} de Regiones and endpoint.

      • Ejemplo de la respuesta
        {
          "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"
            }
          ]
        }
    2. Seleccione una imagen según los requisitos del sitio y registre el ID de la imagen.

  4. Determinar la configuración de red.

    1. Ver redes.
      • API

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

        Para más detalles, consulte Consulta de redes.

      • Ejemplo de la solicitud

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

        Obtenga {endpoint} de Regiones and endpoint.

      • Ejemplo de la respuesta
        {
          "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
            }
          ]
        }
    2. Seleccione una red según los requisitos del sitio y registre el ID de red.

  5. Establezca el modo de inicio de sesión en Key pair.

    1. Crea un par de claves.
      • API

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

        Para más detalles, consulte Creación e importación de un par de claves SSH.

      • Ejemplo de la solicitud

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

        Obtenga {endpoint} de Regiones and endpoint.

        Cuerpo:

        {
            "keypair": {
                "type": "ssh",
                "name": "demo1",
                "user_id": "fake"
            }
        }
      • Ejemplo de la respuesta
        {
          "keypair": {
            "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCrR5Gcwlh5ih7JOvzIUuQxS5qzWWPMYHeDXkDKSQ9W5pumOV05SiO3WCswnaQ5xMdOl31mNiHtwlwq9dJi7X6jJBB2shTD+00G5WuwkBbFU4CLvt1B44u0NUiaTJ35NAvW2/4XvpXm9OwiQ3B5ge6ZY7Esi38Unh+pkbhPkYxNBCK8yoOlojQhWs75abdxZBi811/8RwLcNiFiocA2RGxtRjBdpEScj+1TU+OcfZdQnr0AFbO11z7yxfIygwwzVTgUuJNbMbKHStQqRbklfMlHY4RBPQgb7RN/YaXKTQSXT84k+D9xlDNo7Wj4fwOJTOz/s/PvbIOqjRHt9D6Y4IKd Generated-by-Nova\n",
            "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEogIBAAKCAQEAq0eRnMJYeYoeyTr8yFLkMUuas1ljzGB3g15AykkPVuabpjld\nOUojt1grMJ2kOcTHTpd9ZjYh7cJcKvXSYu1+oyQQdrIUw/tNBuVrsJAWxVOAi77d\nQeOLtDVImkyd+TQL1tv+F76V5vTsIkNweYHumWOxLIt/FJ4fqZG4T5GMTQQivMqD\npaI0IVrO+Wm3cWQYvNdf/EcC3DYhYqHANkRsbUYwXaREnI/tU1PjnH2XUJ69ABWz\ntdc+8sXyMoMMM1U4FLiTWzGyh0rUKkW5JXzJR2OEQT0IG+0Tf2Glyk0El0/OJPg/\ncZQzaO1o+H8DiUzs/7Pz72yDqo0R7fQ+mOCCnQIDAQABAoIBAA6/c9dGmK2mae4z\nyQ5KrOFdvC1TNhej+sZx+CwyzEJUSvSuHcvQCXFBAz8FY92hhvPKcX66jINXZ+4/\nCmWAQ5YyhcRiow0Y91HvsS0bywoknX3q6kxBFodmyyCWFkgd5iMTADb1Lx0a27Y7\njlS4Dl5gyiGmxUN2Ng24wWEAjE8ZNuI0lrtr5IZKp+s5IAi/rb5AG/mL7EzicE8c\nmGP+QAa+nzwhAwNhFwVID230xen/ZcoL1d77hxeARNqJUxoR25gwJd6Ebg2y9pDW\nVu6cbbzgdGUCfQYlMEoAamAkCswOsDpVDBXwQnt2A537n6Wq2bgYIKusHr9thtxP\n/5ubQLUCgYEA4zYuBG2vtLHnvce26P8o2j1xcJS9K0ozkah9JFl3hqFN0sAqLlz7\n/Fm1jA4kzHJS3d0UqP3AMDxY3HkIqCn4Be7lqeAAe2AfqkOZpt9MDNv4VwKe9sPb\nViW1qjL3FxziLC/YWTRNSlpwRjqJJGhA+UQt8rOia1k/zXmrEs7bXLcCgYEAwPsu\nK3j5QoAiziYVMYf5iCzWwAM9Ljpf9gw23lefTdIzhhfFtJplVRSyxRGU0UZ84GMI\nTd5zmcIF/1KUfhqmeiQzz6NIPEYEReahjpQ/sOH/Gk5Rwr3QwYPrwAu5x+kk/SRi\nKPkqw7APTR0sMQBcUq+ZYwGYLGPMdd1zUdLfb0sCgYBkuz11iydtxb3G/obSD2WO\nM9VaIycmzRPFzNwGRH/gOR0mhTluKp0wyJjbSd34oeqpH/2r2ivddrOysxoqa8jg\n4IQDZyLvj7MaKjQxrieqP89+y9Or9TMFo1xB46x2G8EN8/xHuA9YGnZSPFtWv72m\nhRqV0hv82amWsA0vHnRUSwKBgDsKHXvrTMbNkNhkykMXCH5iyWiBFSyZa1ZJMlgf\nknsqfdzeVPwF6E55QKAN2uuTlwzG/3ljPxahR1hvmUJjQN9JSBiUKbtW6GPCRVbr\nf/jLi1Iu99COZdluVKeybqn8Z/aSNP24DR9FM8kxzZ1IMPaTBmhFypp6BclhcLBt\nxTG1AoGAfcrkVbV1SOy7fECUtMpUECcw0yU4GWj3sR2RbII63C500RVYQlUpUaRR\naANbASHTVR4myOKtGSxEUhAQHlxFDwsDL7W3gzAqTFbEDp1xAAUyT/nkOAhQjEm4\nORFdDETeXLQG1KMUj+8AdnhfYp3JTdft6rmPpZEBUFiCAUMAvb0=\n-----END RSA PRIVATE KEY-----\n",
            "user_id": "f79791beca3c48159ac2553fff22e166",
            "name": "demo1",
            "fingerprint": "57:a7:a2:ed:5f:aa:e7:54:62:2e:bb:e7:92:22:cb:40"
          }
        }
    2. Importe el par de claves.
      • API

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

        Para más detalles, consulte Creación e importación de un par de claves SSH.

      • Ejemplo de la solicitud

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

        Obtenga {endpoint} de Regiones and endpoint.

        Cuerpo:

        {
            "keypair": {
                "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY8wMTdBYiJgi62o6eShoOlSKx3CZ3cE6PHisDblfK3Y0Bg7EHV7iV9c74pqsrIhK0xuGUuO1NxDQWbkwLTPN4F9Iy5CIYohLuMIpbln6LDtfRPpdhEh3lxL8MM61gyfpKzeKkwkEpSFj27Rgh6zCyJgBpkA2A0HTP737UlitahL4faCWDIS+Vj6mbcfkWiMhuMCzTZgSKAZ4PfoG4B5HJhR52C6A4XLiQFT9heh9gnIsIG+uTogTKUbcJKuN7M6AraJpul6eHhV9YI4433sDmuiBF/njvreVPWwAHlAkgT9I8q1T/cfEFiwzXpdGbkK5O8NC7K+qNbbdKihlahONt Generated-by-Nova\n",
                "type": "ssh",
                "name": "demo2",
                "user_id": "fake"
            }
        }
      • Ejemplo de la respuesta
        {
          "keypair": {
            "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDY8wMTdBYiJgi62o6eShoOlSKx3CZ3cE6PHisDblfK3Y0Bg7EHV7iV9c74pqsrIhK0xuGUuO1NxDQWbkwLTPN4F9Iy5CIYohLuMIpbln6LDtfRPpdhEh3lxL8MM61gyfpKzeKkwkEpSFj27Rgh6zCyJgBpkA2A0HTP737UlitahL4faCWDIS+Vj6mbcfkWiMhuMCzTZgSKAZ4PfoG4B5HJhR52C6A4XLiQFT9heh9gnIsIG+uTogTKUbcJKuN7M6AraJpul6eHhV9YI4433sDmuiBF/njvreVPWwAHlAkgT9I8q1T/cfEFiwzXpdGbkK5O8NC7K+qNbbdKihlahONt Generated-by-Nova\n",
            "user_id": "f79791beca3c48159ac2553fff22e166",
            "name": "demo2",
            "fingerprint": "dd:44:45:49:d9:f6:4f:c0:24:2d:81:aa:c4:4b:83:c2"
          }
        }
    3. Registre el nombre en el cuerpo de la respuesta, por ejemplo, demo2.

  6. Cree un ECS autenticado usando el par de claves.

    • API

      Formato URI: POST /v2.1/{project_id}/servers

      Para obtener más información sobre las restricciones de API y los parámetros de solicitud, consulte Creación de un ECS.

      En este ejemplo, el ECS se crea utilizando una imagen especificada.

      • En block_device_mapping_v2, establezca source_type en image, uuid en el ID de imagen, destination_type en volume y boot_index en 0.
      • El volume_size debe ser mayor o igual que el valor mínimo especificado en los metadatos de la imagen.
    • Ejemplo de la solicitud

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

      Obtenga {endpoint} de Regiones and endpoint.

      Cuerpo:

      {
          "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"
          }
      }
    • Ejemplo de la respuesta
      {
        "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"
        }
      }

  7. Verifique la creación de ECS.

    • API

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

      Para más detalles, consulte Consulta de detalles sobre un ECS.

    • Ejemplo de la solicitud

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

      Donde,

      0c71c0da-8852-4c56-a1d1-3a9b9bcb6da6 es el UUID del ECS creado.

      Obtenga {endpoint} de Regiones and endpoint.

    • Ejemplo de la respuesta
      {
        "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"
        }
      }