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
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ámetros de solicitud
Tabla 2 describe los parámetros de solicitud.
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
server |
Sí |
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.
|
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). |
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? Requerimientos de valor:
|
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). |
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 4. Restricciones:
|
publicip |
No |
Object |
Especifica el EIP del ECS, que se puede configurar de las siguientes maneras:
Para más detalles, consulte Tabla 1. |
count |
No |
Integer |
Especifica el número de ECS que se van a crear. Restricciones:
|
root_volume |
Sí |
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.
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:
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:
|
description |
No |
String |
Especifica la descripción del ECS, que está vacío de forma predeterminada.
|
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 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" } ] } }
Valores devueltos
Códigos de error
Consulte Códigos de error