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 (Pago por uso)

Función

Esta API se utiliza para crear uno o más ECS facturados en modo de pago por uso.

Esta es una API asíncrona. Después de que se emita la solicitud de creación de ECS, el sistema devolverá job_id. La creación de ECS todavía está en curso. Por lo tanto, debe llamar a la API descrita en Consulta de estado de ejecución de tareas para obtener el estado de la tarea. Cuando el estado cambia a SUCCESS, se ha creado el ECS.

Obtén información sobre cómo autorizar y autenticar esta API antes de usarla.

Antes de llamar a esta API, debe obtener Regiones y endpoint.

El inicio de sesión en un ECS se puede autenticar mediante un par de claves o una contraseña. Por motivos de seguridad, se recomienda utilizar la autenticación de pares de claves.

  • Par de claves (Key Pair)

    Se utiliza un par de claves para la autenticación del inicio de sesión de ECS.

    Método para llamar a las API: Usa el campo key_name para especificar el archivo clave usado para iniciar sesión en el ECS.

  • Contraseña

    Si elige la contraseña inicial para la autenticación en un ECS, puede iniciar sesión en el ECS usando el nombre de usuario y su contraseña inicial. La contraseña inicial del usuario root se utiliza para la autenticación en Linux, mientras que la del usuario Administrator se utiliza para la autenticación en Windows.

    Método para llamar a las API: utilice el campo adminPass para especificar la contraseña de inicio de sesión inicial de la cuenta de administrador. Para obtener más información sobre cómo usar el campo adminPass, consulte Tabla 3. Si se requiere una contraseña cifrada para iniciar sesión en un ECS de Linux creado con una imagen con Cloud-Init instalado, puede usar el campo user_data para inyectar la contraseña. Para más detalles, consulte Tabla 3.

    Si se especifica el campo user_data para un ECS de Linux que se crea con una imagen con Cloud-Init instalado, el campo adminPass no es válido.

  • Contraseña de imagen

    Si utiliza una imagen privada de Linux para crear un ECS, puede utilizar la contraseña de la imagen para la autenticación de inicio de sesión.

    Método para llamar a las API: Si se utiliza la contraseña de la imagen, no es necesario especificar los campos key_name y adminPass.

URI

POST /v1/{project_id}/cloudservers

Tabla 1 describe los parámetros en el URI.
Tabla 1 Descripción del parámetro

Parámetro

Obligatorio

Descripción

project_id

Especifica el ID del proyecto.

Para obtener más información sobre cómo obtener el ID, consulte Obtención de un ID de proyecto.

Solicitud

Parámetros de solicitud

Tabla 2 describe los parámetros de solicitud.

Tabla 2 Parámetros de solicitud

Parámetro

Obligatorio

Tipo

Descripción

server

Object

Especifica la información de ECS. Para más detalles, consulte Tabla 3.

dry_run

No

Boolean

Especifica si se debe comprobar la solicitud y crear el ECS.

  • true: indica que solo se envía la solicitud, pero no se creará el ECS. Los elementos de verificación incluyen parámetros obligatorios y formato de solicitud.
    • Si la comprobación falla, el sistema devuelve un error.
    • Si la comprobación tiene éxito, el sistema devuelve el código de estado 202.
  • false: indica que se envía la solicitud y se creará el ECS si el resultado de la comprobación es el esperado.
Tabla 3 Parámetros para crear un ECS

Parámetro

Obligatorio

Tipo

Descripción

imageRef

String

Especifica el ID de la imagen del sistema utilizada para crear ECS. El ID está en formato de identificador único universal (UUID).

flavorRef

String

Especifica el ID de sabor del que se va a crear ECS.

Para obtener más información sobre los variantes que se han publicado, consulte "Especificaciones y tipos de ECS" en la Guía del usuario de Elastic Cloud Server.

name

String

Especifica el nombre de ECS.

Para obtener más información, consulte ¿Cómo puedo establecer nombres ECS secuenciales al crear varios ECS?

Requerimientos de valor:

  • Consta de 1 a 64 caracteres, incluyendo letras, dígitos, guiones bajos (_), guiones (-), puntos (.).
  • Si se va a crear más de un ECS (el valor count es mayor que 1), el sistema agrega automáticamente un guion seguido de un número incremental de cuatro dígitos, como -0000, al final de cada nombre de ECS. Si especifica un número, el nombre del primer nuevo ECS comenzará a partir del número especificado. En este caso, el nombre de ECS contiene un máximo de 59 caracteres.
    NOTA:

    los nombres de host de ECS cumplen con las reglas de nomenclatura RFC952 y RFC1123. Se recomienda que configure los nombres de host usando dígitos, letras (con distinción entre mayúsculas y minúsculas) y guiones (-). Los guiones bajos (_) se convierten en guiones (-) de forma predeterminada.

user_data

No

String

Especifica los datos de usuario que se inyectarán en el ECS durante la creación. Se pueden inyectar archivos de texto y texto.

NOTA:
  • El contenido de user_data debe estar codificado con base64.
  • El tamaño máximo del contenido a inyectar (antes de la codificación) es de 32 KB.

Para obtener más información acerca de los datos de usuario que se inyectarán, consulte Inyección de datos de usuario en ECS en la Guía del usuario de Elastic Cloud Server.

Ejemplos

Antes de la codificación base64:

  • Linux
    #! /bin/bash
    echo user_test >> /home/user.txt
  • Windows
    rem cmd
    echo 111 > c:\aaa.txt

Después de la codificación base64:

  • Linux
    IyEgL2Jpbi9iYXNoDQplY2hvIHVzZXJfdGVzdCAmZ3Q7Jmd0OyAvaG9tZS91c2VyLnR4dA==
  • Windows
    cmVtIGNtZAplY2hvIDExMSA+IGM6XGFhYS50eHQ=

adminPass

No

String

Especifica la contraseña de inicio de sesión inicial de la cuenta de administrador para iniciar sesión en un ECS mediante autenticación de contraseña. El administrador de Linux es root y el administrador de Windows es Administrator.

Requerimientos de complejidad de la contraseña:
  • Consta de 8 a 26 caracteres.
  • La contraseña debe contener al menos tres de los siguientes tipos de caracteres: letras mayúsculas, minúsculas, dígitos y caracteres especiales (!@$%^-_=+[{}]:,./?~#*).
  • La contraseña no puede contener el nombre de usuario o el nombre de usuario al revés.
  • La contraseña de ECS Windows no puede contener el nombre de usuario, el nombre de usuario al revés o más de dos caracteres consecutivos en el nombre de usuario.

key_name

No

String

Especifica el nombre de la clave SSH utilizada para iniciar sesión en el ECS.

Las claves se pueden crear usando la API de creación de claves (Creación e importación de un par de claves SSH) u obtener usando la API de consulta de claves SSH (Consulta de pares de claves de SSH).

vpcid

String

Especifica el ID de la VPC a la que pertenece el ECS. El valor está en el formato del UUID.

Puede obtener el ID de VPC desde la consola de gestión o siguiendo las instrucciones proporcionadas en "Consulta de VPCs" en Referencia de API de Virtual Private Cloud.

nics

Array of objects

Especifica la información de NIC del ECS. Para más detalles, consulte Tabla 4.

Restricciones:

  • La red de la NIC principal debe pertenecer a la VPC especificada por vpcid. Cuando se crean NIC, la primera NIC especificada es la NIC principal.
  • El valor debe ser el ID de la subred creada en la VPC especificada por vpcid y en el formato del UUID.
  • Se puede conectar un máximo de 12 NIC a un ECS.
  • El número máximo de NIC varía según las especificaciones de ECS. Para obtener más información, consulte Especificaciones de ECS.

publicip

No

Object

Especifica el EIP del ECS, que se puede configurar de las siguientes maneras:

  • Do not use: En tal caso, este parámetro no está disponible.
  • Automatically assign: El sistema asignará automáticamente un EIP a su ECS.
  • Utilizar existente: Debe especificar un EIP existente para su ECS.

Para más detalles, consulte Tabla 1.

count

No

Integer

Especifica el número de ECS que se van a crear.

Restricciones:

  • Si no se especifica este parámetro, el valor predeterminado es 1.
  • Si la cuota es suficiente, el valor máximo es 500.

root_volume

Object

Especifica las configuraciones de disco del sistema ECS.

Para más detalles, consulte Tabla 5.

data_volumes

No

Array of objects

Especifica las configuraciones de disco de datos de ECS. Cada estructura de datos representa un disco de datos a crear.

Un ECS se puede conectar con un máximo de 59 discos de datos (ciertos variantes admiten solo 23 discos de datos).

Para más detalles, consulte Tabla 6.

security_groups

No

Array of objects

Especifica los grupos de seguridad del ECS.

Si este parámetro se deja en blanco, el grupo de seguridad predeterminado está enlazado al ECS de forma predeterminada.

Para más detalles, consulte Tabla 2.

availability_zone

No

String

Especifica el nombre de la AZ donde se encuentra el ECS.

NOTA:

Si no se especifica este parámetro, el sistema selecciona automáticamente un AZ.

Puede obtener el valor de este parámetro haciendo referencia a Consulta de AZ o Regiones y endpoint.

batch_create_in_multi_az

No

Boolean

Especifica si los ECS se pueden implementar en varias AZ aleatorias.

  • true: los ECS creados por lotes se implementan en varias AZ.
  • false: los ECS creados por lotes se implementan en una única AZ.

Este parámetro es válido cuando availability_zone se deja en blanco.

extendparam

No

Object

Proporciona la información adicional sobre el ECS que se va a crear.

Para más detalles, consulte Tabla 8.

metadata

No

Map<String,String>

Especifica los metadatos de el ECS que se van a crear.

Puede utilizar metadatos para personalizar los pares clave-valor.

NOTA:
  • Se puede inyectar un máximo de 10 pares clave-valor.
  • Una clave de metadatos consta de 1 a 255 caracteres y contiene solo letras mayúsculas, letras minúsculas, dígitos, guiones (-), guiones bajos (_), dos puntos (:), y decimales (.).
  • Un valor de metadatos consta de un máximo de 255 caracteres.

Para obtener más información sobre los pares clave-valor reservados, consulte Tabla 11.

os:scheduler_hints

No

Object

Programa los ECS, por ejemplo, configurando un grupo ECS.

Para más detalles, consulte Tabla 12.

tags

No

Array of strings

Especifica las etiquetas de ECS.

Una etiqueta tiene el formato "key.value", donde las longitudes máximas de key y value son 36 y 43 caracteres, respectivamente.

Al agregar una etiqueta a un ECS, asegúrese de que la etiqueta cumple con los siguientes requisitos:

NOTA:
  • Al crear ECS, un ECS admite hasta 10 etiquetas.

description

No

String

Especifica la descripción del ECS, que está vacío de forma predeterminada.

  • Puede contener un máximo de 85 caracteres.
  • No puede contener un corchete angular < o >.

auto_terminate_time

No

String

Este parámetro no es compatible ahora y estará disponible pronto.

Especifica la hora en que los recursos se liberarán automáticamente.

El valor está en el formato de "yyyy-MM-ddTHH:mm:ssZ" en UTC+0 y cumple con ISO8601.

Si el valor de segundo (ss) no es 00, el sistema establece automáticamente el valor actual de minuto (mm).

El tiempo mínimo de liberación es media hora más tarde que el tiempo actual.

El tiempo máximo de liberación es tres años más tarde que el tiempo actual.

Por ejemplo, establezca el valor en 2020-09-25T12:05:00Z.

NOTA:

Esta función solo es compatible con ECS de pago por uso.

Tabla 4 Descripción del campo nics

Parámetro

Obligatorio

Tipo

Descripción

subnet_id

String

Especifica la subred del ECS.

El valor debe ser el ID de la subred creada en la VPC especificada por vpcid y en el formato del UUID.

Puede obtener el valor del parámetro llamando a una API de VPC para consultar detalles de subred.

ip_address

No

String

Especifica la dirección IP de la NIC utilizada por el ECS. El valor es una dirección IPv4.

Restricciones:

  • Si este parámetro se deja en blanco o se establece en "", una dirección IP no utilizada en la subred se asigna automáticamente como la dirección IP de la NIC.
  • Si se especifica este parámetro, su valor debe ser una dirección IP no utilizada en el segmento de red de la subred.
Tabla 5 Descripción del campo root_volume

Parámetro

Obligatorio

Tipo

Descripción

volumetype

String

Especifica el tipo de disco del sistema de ECS, que debe ser uno de los tipos de disco disponibles.

Currently, the value can be SSD, GPSSD, or SAS.
  • SSD: specifies the ultra-high I/O disk type.
  • GPSSD: specifies the general purpose SSD disk type.
  • SAS: specifies the high I/O disk type.

If the specified disk type is not available in the AZ, the disk will fail to create.

NOTA:

size

No

Integer

Especifica el tamaño del disco del sistema, en GB. El valor varía de 1 a 1024.

Restricciones:

  • El tamaño del disco del sistema debe ser mayor o igual que el tamaño mínimo del disco del sistema admitido por la imagen (atributo min_disk de la imagen).
  • Si este parámetro no se especifica o se establece en 0, el tamaño predeterminado del disco del sistema es el valor mínimo del disco del sistema en la imagen (atributo min_disk de la imagen).
    NOTA:

    Para obtener el tamaño mínimo de disco del sistema (min_disk) de una imagen, haga clic en la imagen en la consola de gestión para ver los detalles. Alternativamente, llama a la API nativa de OpenStack para consultar detalles sobre una imagen. Para obtener más información, consulta "Consultar detalles de imagen (OpenStack nativo) " en Referencia de API de Image Management Service.

extendparam

No

Object

Proporciona la información del disco.

Para más detalles, consulte Descripción del campo extendparam para crear discos.

hw:passthrough

No

Boolean

Especifica el tipo de dispositivo de los discos EVS que se van a crear.
  • Si este parámetro se establece en false, se crean discos VBD.
  • Si este parámetro se establece en true, se crean discos SCSI.
  • Si este parámetro no se especifica ni se establece en un carácter non-Boolean, los discos VBD se crean de forma predeterminada.
NOTA:

Si este parámetro se establece en true o no se especifica para ECS que ejecutan variantes SDI (incluidos c6x_4, c6ie_4 y c7), se crean discos SCSI.

Tabla 6 Descripción del campo data_volumes

Parámetro

Obligatorio

Tipo

Descripción

volumetype

String

Especifica el tipo del disco de datos de ECS, que debe ser uno de los tipos de disco disponibles.

Currently, the value can be SSD, GPSSD, or SAS.
  • SSD: specifies the ultra-high I/O disk type.
  • GPSSD: specifies the general purpose SSD disk type.
  • SAS: specifies the high I/O disk type.

If the specified disk type is not available in the AZ, the disk will fail to create.

NOTA:

size

Integer

Especifica el tamaño del disco de datos, en GB. El valor oscila entre 10 y 32768.

Cuando utilice una imagen de disco de datos para crear un disco de datos, asegúrese de que el valor de este parámetro es mayor o igual al tamaño del disco de datos de origen que se utiliza para crear la imagen de disco de datos.

shareable

No

Boolean

Especifica si el disco es compartido. El valor puede ser true (especifica un disco compartido) o false (un disco EVS común).

NOTA:

Este campo ha sido descartado. Usa multiattach.

multiattach

No

Boolean

Especifica la información del disco compartido.

  • true: indica que el disco creado es un disco compartido.
  • false: indica que el disco creado es un disco EVS común.
NOTA:

El campo shareable ya no se usa. Si se deben usar tanto shareable como multiattach, asegúrese de que los valores de los dos campos son los mismos. Si no se especifica este parámetro, los discos EVS comunes se crean de forma predeterminada.

hw:passthrough

No

Boolean

Especifica el tipo de dispositivo de los discos EVS que se van a crear.
  • Si este parámetro se establece en false, se crean discos VBD.
  • Si este parámetro se establece en true, se crean discos SCSI.
  • Si este parámetro no se especifica ni se establece en un carácter non-Boolean, los discos VBD se crean de forma predeterminada.
NOTA:

Si este parámetro se establece en true o no se especifica para ECS que ejecutan variantes SDI (incluidos c6x_4, c6ie_4 y c7), se crean discos SCSI.

extendparam

No

Object

Proporciona la información del disco.

Para más detalles, consulte Tabla 7.

data_image_id

No

String

Especifica el ID de la imagen de datos. El valor está en formato UUID.

Si los discos de datos se crean utilizando una imagen de disco de datos, este parámetro es obligatorio y no admite metadatos.

metadata

No

Object

Especifica los metadatos del disco EVS. Asegúrese de que key y value de los metadatos contengan como máximo 255 bytes.

Este campo sólo se utiliza cuando se crea un disco cifrado.

Si los discos de datos se crean utilizando una imagen de disco de datos, este campo no se puede utilizar.

Para más detalles, consulte Descripción del campo metadata para crear discos.

Respuesta

Parámetro

Tipo

Descripción

job_id

String

Especifica el ID de tarea devuelto después de entregar la tarea. Puede consultar el progreso de la tarea utilizando este ID. Para obtener más información acerca de cómo consultar el estado de ejecución de la tarea basado en job_id, consulte Gestión de estado de tareas.

Para obtener más información sobre las respuestas anormales, consulte Respuestas (tarea).

Ejemplo de la solicitud

La plataforma de nube pública proporciona varios tipos de ECS. El nombre/ID de la variante varía dependiendo de los tipos y especificaciones de ECS. Cuando usas API para crear ECS con especificaciones diferentes, los cuerpos de solicitud son los mismos. Solo es necesario cambiar los valores de los parámetros en el siguiente ejemplo de solicitud basándose en los parámetros descritos en Solicitud.

  • Ejemplo de solicitud de URL
    POST https://{endpoint}/v1/{project_id}/cloudservers
  • Se va a crear un ECS con ID de variante s3.xlarge.2, donde el ID de imagen es 1189efbf-d48b-46ad-a823-94b942e2a000, el tipo de disco es SSD, y el ID de VPC es 0dae26c9-9a70-4392-93f3-87d53115d171. Una solicitud de ejemplo es la siguiente:
    {
        "server": {
            "availability_zone":"az1-dc1",
            "name": "newserver", 
            "imageRef": "1189efbf-d48b-46ad-a823-94b942e2a000", 
            "root_volume": {
                "volumetype": "SSD"
            }, 
            "data_volumes": [ 
                {
                    "volumetype": "SSD", 
                    "size": 100,
                    "multiattach": true,
                    "hw:passthrough": true
                }
            ], 
            "flavorRef": "s3.xlarge.2", 
            "vpcid": "0dae26c9-9a70-4392-93f3-87d53115d171", 
            "security_groups": [
                {
                    "id": "507ca48f-814c-4293-8706-300564d54620"
                }
            ], 
            "nics": [
                {
                    "subnet_id": "157ee789-03ea-45b1-a698-76c92660dd83"
                }
            ], 
            "publicip": {
                "eip": {
                    "iptype": "5_bgp",
                    "bandwidth": {
                        "size": 10, 
                        "sharetype": "PER"
                    }
                }
            }, 
            "key_name": "sshkey-123", 
            "count": 1, 
            "server_tags": [
                {
                    "key": "key1",
                    "value": "value1"
                }
            ],
            "metadata": {
                   "op_svc_userid": "8ea65f4099ba412883e2a0da72b96873",
                   "agency_name": "test"
            }
        }
    }
  • Un ejemplo de un cuerpo de solicitud de preverificación es el siguiente:
    {
        "dry_run": true 
        "server": {
            "availability_zone":"az1-dc1",
            "name": "newserver", 
            "imageRef": "1189efbf-d48b-46ad-a823-94b942e2a000", 
            "root_volume": {
                "volumetype": "SSD"
            }, 
            "data_volumes": [ ], 
            "flavorRef": "s3.xlarge.2", 
            "vpcid": "0dae26c9-9a70-4392-93f3-87d53115d171", 
            "security_groups": [
                {
                    "id": "507ca48f-814c-4293-8706-300564d54620"
                }
            ], 
            "nics": [
                {
                    "subnet_id": "157ee789-03ea-45b1-a698-76c92660dd83"
                }
            ], 
            "key_name": "sshkey-123", 
            "count": 1
        }
    }

Ejemplo de la respuesta

{
    "job_id": "93c82933d6b7827d3016b8771f2070873"
}

O

{
    "error": {
        "code": "request body is illegal.", 
        "message": "Ecs.0005"
    }
}

O

{
    "error": {
        "message": "privateIp [%s] is not in this subnet [%s]",
        "code": "Ecs.0005",
        "details": [
            {
                "code": "Ecs.0039"
            }
        ]
    }
}

Códigos de error

Consulte Códigos de error