Creación de ECS
Función
Esta API se utiliza para crear uno o más ECS.
La API V1.1 es compatible con todas las funciones (consulte Creación de un ECS (Pago por uso)) proporcionadas por la API V1. Además, la API V1.1 admite la creación de ECS anuales/mensuales.
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.
- 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. Para más detalles, consulte Tabla 2.
- 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 2. 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 2.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.
Restricciones
- Asegúrese de que su cuenta tenga suficiente saldo porque esta API no admite cupones. Si el saldo de la cuenta es insuficiente, se generará una orden pendiente.
URI
- Formato de URI
- Descripción del parámetro
Parámetro
Obligatorio
Descripción
project_id
Sí
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ámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
server |
Sí |
Object |
Especifica la información de ECS. Para más detalles, consulte Tabla 2. |
dry_run |
No |
Boolean |
Especifica si se debe comprobar la solicitud y crear el ECS.
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
imageRef |
Sí |
String |
Especifica el ID de la imagen del sistema utilizada para crear ECS. El ID está en formato de identificador único universal (UUID). Puede obtener el ID de la imagen desde la consola o siguiendo las instrucciones proporcionadas en "Consulta de imágenes" en Referencia de API de Image Management Service. |
flavorRef |
Sí |
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 |
Sí |
String |
Especifica el nombre de ECS. Para obtener más información, consulte ¿Cómo puedo establecer nombres ECS secuenciales al crear varios ECS? Un nombre debe cumplir con las siguientes reglas:
|
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:
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:
Después de la codificación base64:
|
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:
|
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). Nota: Si chargeMode en el parámetro extendparam de un ECS creado se establece en prePaid, lo que indica que el ECS se factura en pagos anuales/mensuales, el parámetro key_name se debe usar con el parámetro metadata. Para obtener más información, consulte Descripción del campo de metadata para crear ECS y la solicitud de ejemplo 1. |
vpcid |
Sí |
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 |
Sí |
Array of objects |
Especifica la información de NIC del ECS. Para más detalles, consulte Tabla 3. Nota:
|
publicip |
No |
Object |
Especifica el EIP enlazado al ECS, que se puede configurar de una de las siguientes maneras:
Para más detalles, consulte Descripción del campo publicip. |
count |
No |
Integer |
Especifica el número de ECS que se van a crear. Nota:
|
root_volume |
Sí |
Object |
Especifica las configuraciones de disco del sistema ECS. El disco del sistema y el disco de datos creados durante la creación de un ECS anual/mensual también están en pagos anuales/mensuales, y el período de los discos es el mismo que el del ECS. Para más detalles, consulte Tabla 4. |
data_volumes |
No |
Array of objects |
Especifica las configuraciones de disco de datos 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 5. |
security_groups |
No |
Array of objects |
Especifica los grupos de seguridad de ECS. Restricciones: 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 Descripción del campo security_groups. |
availability_zone |
No |
String |
Especifica 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. |
extendparam |
No |
Object |
Especifica la información complementaria de ECS. Para más detalles, consulte Tabla 9. |
metadata |
No |
Map<String,String> |
Especifica los metadatos de ECS. Puede utilizar metadatos para personalizar los pares clave-valor.
NOTA:
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 un 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:
|
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. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
subnet_id |
Sí |
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:
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
volumetype |
Sí |
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.
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:
|
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.
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. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
volumetype |
Sí |
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.
If the specified disk type is not available in the AZ, the disk will fail to create.
NOTA:
|
size |
Sí |
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.
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.
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 detalles sobre cómo consultar el estado de ejecución de la tarea basándose en el ID de tarea, consulte Gestión de estado de tareas. |
order_id |
String |
Especifica el ID de pedido. Este parámetro se devuelve para la creación de un ECS anual/mensual. |
serverIds |
Array of strings |
Especifica los ID de ECS
NOTA:
Los detalles sobre un ECS se obtienen por ID de ECS. Si el sistema devuelve un error 404, se está creando ECS o creando el ECS con error. |
Para obtener más información sobre las respuestas anormales, consulte Respuestas (tarea).
Ejemplo de la solicitud
- Ejemplo de solicitud de URL
POST https://{endpoint}/v1.1/{project_id}/cloudservers
- Solicitud de ejemplo 1 (crear un ECS anual/mensual que está conectado con un par de claves)
{ "server": { "availability_zone":"az1-dc1", //AZ name "name": "newserver", "imageRef": "5ef3a512-1c65-418e-8764-a4413c2f9277", "root_volume": { "volumetype": "SSD" }, "data_volumes": [ { "volumetype": "SSD", "size": 100 }, { "volumetype": "SSD", "size": 100, "multiattach": true, "hw:passthrough": true } ], "flavorRef": "s2.small.1", "vpcid": "2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68", "security_groups": [ { "id": "6242ef48-4d35-49c8-8711-a6e54902e44a" } ], "nics": [ { "subnet_id": "ef039b60-6a14-42d1-963b-687b627fea08" } ], "publicip": { "eip": { "iptype": "5_sbgp", "bandwidth": { "size": 1, "sharetype": "PER" } } }, "key_name": "id_rsa", "count": 1, "metadata": { "op_svc_userid": "f79791beca3c48159ac2553fff22e166" }, "extendparam": { "chargingMode": "prePaid", "periodType": "month", "periodNum": 1, "isAutoRenew": "true", "isAutoPay": "true", "enterprise_project_id": "f8e0ecc8-3825-4ee8-9596-fb4258ffdcbb" }, "os:scheduler_hints": { "group": "cdbbfffe-ef18-47b4-a5c8-f61a984c0ecc" } } }
- Solicitud de ejemplo 2 (crear un ECS anual/mensual que se inicia sesión con una contraseña)
{ "server": { "availability_zone":"az1-dc1", //AZ name "name": "newserver", "adminPass": "P@ssw0rd123", "imageRef": "9b04ad7e-6d97-40bf-9d62-57873382eab0", "root_volume": { "volumetype": "SSD" }, "data_volumes": [ { "volumetype": "SSD", "size": 100 }, { "volumetype": "SSD", "size": 100, "multiattach": true, "hw:passthrough": true } ], "flavorRef": "s2.small.1", "vpcid": "2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68", "security_groups": [ { "id": "6242ef48-4d35-49c8-8711-a6e54902e44a" } ], "nics": [ { "subnet_id": "ef039b60-6a14-42d1-963b-687b627fea08" } ], "publicip": { "eip": { "iptype": "5_sbgp", "bandwidth": { "size": 1, "sharetype": "PER" } } }, "key_name": "", "count": 1, "metadata": {}, "extendparam": { "chargingMode": "prePaid", "periodType": "month", "periodNum": 1, "isAutoRenew": "true", "isAutoPay": "true", "enterprise_project_id": "f8e0ecc8-3825-4ee8-9596-fb4258ffdcbb" }, "os:scheduler_hints": { "group": "cdbbfffe-ef18-47b4-a5c8-f61a984c0ecc" } } }
- Ejemplo de solicitud 3 (crear un ECS anual/mensual con un EIP de pago por uso consolidado)
{ "server": { "availability_zone":"az1-dc1", //AZ name "name": "newserver", "imageRef": "5ef3a512-1c65-418e-8764-a4413c2f9277", "root_volume": { "volumetype": "SSD" }, "data_volumes": [ { "volumetype": "SSD", "size": 100 }, { "volumetype": "SSD", "size": 100, "multiattach": true, "hw:passthrough": true } ], "flavorRef": "s2.small.1", "vpcid": "2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68", "security_groups": [ { "id": "6242ef48-4d35-49c8-8711-a6e54902e44a" } ], "nics": [ { "subnet_id": "ef039b60-6a14-42d1-963b-687b627fea08" } ], "publicip": { "eip": { "iptype": "5_sbgp", "bandwidth": { "size": 1, "sharetype": "PER", "chargemode": "traffic" }, "extendparam": { "chargingMode": "postPaid" } } }, "key_name": "id_rsa", "count": 1, "metadata": { "op_svc_userid": "f79791beca3c48159ac2553fff22e166" }, "extendparam": { "chargingMode": "prePaid", "periodType": "month", "periodNum": 1, "isAutoRenew": "true", "isAutoPay": "true", "enterprise_project_id": "f8e0ecc8-3825-4ee8-9596-fb4258ffdcbb" }, "os:scheduler_hints": { "group": "cdbbfffe-ef18-47b4-a5c8-f61a984c0ecc" } } }
- Solicitud de ejemplo 4 (crear un ECS anual/mensual con un EIP usando un límite de ancho de banda compartido)
{ "server": { "availability_zone":"az1-dc1", //AZ name "name": "newserver", "imageRef": "5ef3a512-1c65-418e-8764-a4413c2f9277", "root_volume": { "volumetype": "SSD" }, "data_volumes": [ { "volumetype": "SSD", "size": 100 }, { "volumetype": "SSD", "size": 100, "multiattach": true, "hw:passthrough": true } ], "flavorRef": "s2.small.1", "vpcid": "2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68", "security_groups": [ { "id": "6242ef48-4d35-49c8-8711-a6e54902e44a" } ], "nics": [ { "subnet_id": "ef039b60-6a14-42d1-963b-687b627fea08" } ], "publicip": { "eip": { "iptype": "5_sbgp", "bandwidth": { "id": "a0d4b26f-699d-49a0-bcc8-6f707a925abf", "sharetype": "WHOLE" } } }, "key_name": "id_rsa", "count": 1, "metadata": { "op_svc_userid": "f79791beca3c48159ac2553fff22e166", "agency_name": "test" }, "extendparam": { "chargingMode": "prePaid", "periodType": "month", "periodNum": 1, "isAutoRenew": "true", "isAutoPay": "true", "enterprise_project_id": "f8e0ecc8-3825-4ee8-9596-fb4258ffdcbb" }, "os:scheduler_hints": { "group": "cdbbfffe-ef18-47b4-a5c8-f61a984c0ecc" } } }
- Ejemplo de solicitud 6 (cuerpo de solicitud previa a la verificación)
{ "dry_run": true "server": { "availability_zone":"az1-dc1", "name": "server", "imageRef": "ff49b1f1-3e3e-4913-89c6-a026041661e8", "root_volume": { "volumetype": "SSD" }, "data_volumes": [], "flavorRef": "s2.large.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" } }
Ejemplo de la respuesta
{ "job_id": "ff808082739334d80173943ec9b42130", "order_id": "CS2007281506xxxxx", "serverIds": [ "fe0528f0-5b1c-4c8c-9adf-e5d5047b8c17", "679854ae-a50d-40c9-8132-b19bf3a306a1" ] }
O
{ "error": { "code": "Ecs.0005", "message": "request body is illegal." } }
O
{ "error": { "message": "privateIp [%s] is not in this subnet [%s]", "code": "Ecs.0005", "details": [ { "code": "Ecs.0039" } ] } }
Valores devueltos
Códigos de error
Consulte Códigos de error