Creación de un ECS
Función
Esta API se utiliza para crear un ECS de pago por uso.
Esta API no admite la reversión automática después de crear un ECS con error. Si se requiere una reversión automática, llame a la API POST /v1/{project_id}/cloudservers. Para más detalles, consulte Creación de un ECS (Pago por uso).
URI
POST /v2.1/{project_id}/servers
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. |
Alias de la API para crear ECS: /v2/{project_id}/os-volumes_boot
Este modo de llamada solo se puede utilizar en el cliente de OpenStack.
Restricciones
- Esta API es nativa, que no admite la creación de ECS con imágenes completas de ECS. Para utilizar imágenes completas de ECS para crear ECS, consulte Creación de un ECS (Pago por uso).
- Esta API es nativa y no se puede usar para crear ECS de precio de spots. Para crear un ECS de precio de spot, consulte Creación de ECS y Creación de un ECS (Pago por uso).
- Esta API es nativa y no se puede usar para crear ECS anuales/mensuales. Para crear un ECS anual/mensual, consulte Creación de ECS.
- Durante la creación de un ECS utilizando esta API, no puede vincular un EIP al ECS. Si desea crear un ECS y vincular un EIP a él, consulte Creación de un ECS (Pago por uso).
- El parámetros port en los tres parámetros de red (port, uuid, y fixed_ip) tiene la prioridad más alta. Si el parámetro fixed_ip está definido, debe especificar el UUID.
- Si se produce un error de inyección de archivos, se producirá un error de creación de ECS.
- Las siguientes restricciones se aplican al crear ECS con una imagen:
- No se puede crear un ECS en un host especificado.
- Si un inquilino realiza una copia de seguridad de un disco en un ECS, el disco solo se puede eliminar después de que el inquilino elimine todas las instantáneas del disco.
- Los variantes con diferentes tipos de recursos no se pueden ajustar si se ajustan las especificaciones de un ECS creado mediante una imagen.
- APIs nativas /v2/{project_id}/servers and /v2.1/{project_id}/servers proporcionados por la plataforma de nube pública se desarrolla basada y compatible con la API nativa de OpenStack de versión comunitaria.
En comparación con la API nativa de la versión de comunidad, esta API tiene las siguientes restricciones cuando creas un ECS usando una imagen especificada:
- API de OpenStack nativa de versión comunitaria: crea un ECS usando el disco local de forma predeterminada.
- API nativa proporcionada por la plataforma de nube pública: crea un ECS usando el almacenamiento compartido como disco del sistema.
Específicamente, cuando se utiliza la API nativa para crear un ECS:- Puede consultar información acerca de los discos adjuntos al ECS.
- El disco del sistema de ECS utiliza la cuota de disco EVS.
- No puede consultar los ECS a partir de una imagen especificada mediante la función de filtrado de imágenes.
- Cuando cree un ECS con un disco especificado, asegúrese de que el disco y el ECS están en la misma AZ.
- El campo device_name configurado en block_device_mapping_v2 durante la creación de ECS no tiene efecto. El sistema genera un nombre de dispositivo de forma predeterminada.
- No se puede crear los ECS en redes con provider:network_type establece en geneve.
provider:network_type que se establece en geneve indica la red interna de alta velocidad para los BMS.
- Si ha iniciado sesión el ECS de forma remota con una clave, utilice el parámetro key_name. Si ha iniciado sesión el ECS de forma remota con una contraseña, utilice el parámetro adminPass. ECS Linux soporta user_data para inyección. ECS Windows soporta admin_pass para inyección.
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. |
os:scheduler_hints |
No |
Object |
Especifica la información de programación de ECS. Para más detalles, consulte Tabla 8. Este parámetro no está disponible para BMS. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
imageRef |
No |
String |
Especifica el ID de imagen o la dirección URL de ECS.
|
flavorRef |
Sí |
String |
Especifica el ID de variante o la URL. Por ejemplo: c3.2xlarge |
name |
Sí |
String |
Especifica el nombre de ECS. El valor contiene de 1 a 255 caracteres. |
metadata |
No |
Map<String,String> |
Especifica los metadatos de ECS. Para más detalles, consulte Tabla 4.
|
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. |
block_device_mapping_v2 |
No |
Array of objects |
Indica la API V2 para especificar el dispositivo de almacenamiento de ECS. Este es un atributo extendido. Esta es la API de recursos de almacenamiento de la nueva versión. No se le permite crear ECS por lotes cuando se especifica el volumen. Para más detalles, consulte Tabla 5. Este parámetro no está disponible para BMS. |
config_drive |
No |
String |
Especifica el disco config_drive que se conectará al ECS durante la creación de ECS para transferir información al ECS. Este es un atributo extendido. No se admite esta función. |
security_groups |
No |
Array of objects |
Especifica el grupo de seguridad al que pertenece el ECS. Este parámetro es un atributo extendido. El valor del parámetro predeterminado es default. Este parámetro es válido cuando se crea un ECS en una red especificada. Para un puerto existente, los grupos de seguridad solicitados no son válidos. Para más detalles, consulte Tabla 6. |
networks |
Sí |
Array of objects |
Especifica información acerca de la NIC de ECS. Este parámetro es un atributo extendido. Este parámetro debe especificarse si se utilizan varias redes de tenant. Para más detalles, consulte Tabla 7. |
key_name |
No |
String |
Especifica el nombre de un par de claves. Este parámetro es un atributo extendido. |
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:
|
availability_zone |
No |
String |
Especifica la AZ de un ECS especificado. Este es un atributo extendido. Este parámetro es obligatorio cuando se crea un ECS. |
return_reservation_id |
No |
Boolean |
Especifica si se devuelven los identificadores de reserva de los ECS creados en un lote. Este es un atributo extendido. Puede consultar los ECS creados esta vez en función de los ID de reserva devueltos.
|
min_count |
No |
Integer |
Especifica el número mínimo de ECS que se pueden crear. Este es un atributo extendido. El valor predeterminado es 1.
NOTA:
Cuando se utiliza una imagen especificada para crear ECS, este parámetro está disponible. |
max_count |
No |
Integer |
Especifica el número máximo de ECS que se pueden crear. El valor predeterminado de max_count es el mismo que el de min_count. Nota:
NOTA:
Cuando se utiliza una imagen especificada para crear ECS, este parámetro está disponible. |
OS-DCF:diskConfig |
No |
String |
Especifica el modo de configuración del disco. El valor puede ser AUTO o MANUAL.
No se admite esta función. |
description |
No |
String |
Especifica la descripción de un ECS, que es una string nula de forma predeterminada. Este es un atributo extendido. Este parámetro está soportado en la microversión 2.19 y posteriores.
|
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. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
admin_pass |
No |
String |
Especifica la contraseña del usuario Administrator para iniciar sesión en ECS Windows.
NOTA:
Este parámetro es obligatorio cuando se crea un ECS de Windows con la autenticación de contraseña. |
Parámetro |
Tipo |
Obligatorio |
Descripción |
---|---|---|---|
source_type |
String |
Sí |
Especifica el tipo de origen del dispositivo de volumen. Su valor puede ser volume, image, snapshot o blank. Si utiliza un volumen para crear un ECS, establezca source_type en volume. Si utiliza una imagen para crear un ECS, establezca source_type en image. Si utiliza una instantánea para crear un ECS, establezca source_type en snapshot. Si crea un volumen de datos vacío, establezca source_type en blank.
NOTA:
Si source_type es snapshot y boot_index es 0, el disco EVS de esta instantánea debe ser el disco del sistema. |
destination_type |
String |
No |
Especifica el tipo de destino del dispositivo de disco. Su valor solo puede ser volume.
|
guest_format |
String |
No |
Especifica el formato del sistema de archivos local. Su valor puede ser swap o ext4. No se admite esta función. |
device_name |
String |
No |
Especifica el nombre del dispositivo de disco.
NOTA:
Este campo ha sido descartado. El device_name especificado no tiene efecto. El sistema genera un nombre de dispositivo de forma predeterminada. |
delete_on_termination |
Boolean |
No |
Especifica si los discos se eliminan cuando se elimina un ECS. Su valor predeterminado es false.
|
boot_index |
String |
No |
Especifica si se trata de un disco de arranque. 0 especifica un disco de arranque y -1 especifica un disco que no sea de arranque.
NOTA:
Si source_type del dispositivo de volumen es volume, debe haber un boot_index cuyo valor sea 0. |
uuid |
String |
No |
|
volume_size |
Integer |
No |
Especifica el tamaño del volumen. El valor es un integer. Este parámetro es obligatorio cuando source_type se establece en image o en blank, y destination_type se establece en volume. Unidad: GB |
volume_type |
String |
No |
Especifica el tipo de volumen. Este parámetro se recomienda cuando source_type se establece en image y destination_type se establece en volume. Para obtener más información, consulte Tipos de disco. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
name |
No |
String |
Especifica el nombre del grupo de seguridad o UUID. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
port |
No |
String |
Especifica el UUID del puerto de red. Este parámetro debe establecerse cuando no se especifica el UUID de red. |
uuid |
No |
String |
Especifica el UUID de red. Este parámetro debe establecerse cuando no se especifica el puerto de red. |
fixed_ip |
No |
String |
Especifica la dirección IP fija. El parámetros port en los tres parámetros de red (port, uuid, y fixed_ip) tiene la prioridad más alta. Si el parámetro fixed_ip está definido, debe especificar el UUID. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
group |
No |
String |
Especifica el grupo antiafinidad. El valor está en formato UUID.
NOTA:
Asegúrese de que el grupo ECS utiliza la política antiafinidad. No se recomienda utilizar otras políticas. |
different_host |
No |
Array of strings |
La función no ha sido soportada, y este campo está reservado. |
same_host |
No |
Array of strings |
La función no ha sido soportada, y este campo está reservado. |
cidr |
No |
String |
La función no ha sido soportada, y este campo está reservado. |
build_near_host_ip |
No |
String |
La función no ha sido soportada, y este campo está reservado. |
tenancy |
No |
String |
Especifica si se crea el ECS en un host dedicado (DeH) o en un grupo compartido (predeterminado). El valor puede ser shared o dedicated.
El valor del parámetro también tiene efecto para las operaciones de consulta de ECS. |
dedicated_host_id |
No |
String |
Especifica el ID de DeH. Este parámetro solo tiene efecto cuando el valor de tenancy es dedicated. Si no especifica este parámetro, el sistema le asignará automáticamente un DeH para desplegar ECS. El valor del parámetro también tiene efecto para las operaciones de consulta de ECS. |
Respuesta
Tabla 9 describe los parámetros de respuesta.
Parámetro |
Tipo |
Descripción |
---|---|---|
server |
Object |
Especifica la información de ECS. Para más detalles, consulte Tabla 10. |
Parámetro |
Tipo |
Descripción |
---|---|---|
id |
String |
Especifica el ID de ECS en formato UUID. |
links |
Array of objects |
Especifica el URI del ECS. Para más detalles, consulte Tabla 11. |
security_groups |
Array of objects |
Especifica los grupos de seguridad a los que pertenece ECS. Para más detalles, consulte Tabla 12. |
OS-DCF:diskConfig |
String |
Especifica el modo de configuración del disco.
|
reservation_id |
String |
Especifica un criterio de filtrado para consultar los ECS creados.
NOTA:
Cuando crea ECS por lote, este parámetro está disponible. |
adminPass |
String |
Especifica la contraseña del usuario Administrator para iniciar sesión en ECS Windows. |
Solicitud de ejemplo (Creación de un ECS)
Ejemplo de solicitud de URL
POST https://{endpoint}/v2.1/9c53a566cb3443ab910cf0daebca90c4/servers
Ejemplo 1: Utilice una imagen para crear un ECS a través de la API block_device_mapping_v2.
{ "server": { "flavorRef": "2", "name": "wjvm48", "metadata": { "name": "name_xx1", "id": "id_xxxx1" }, "block_device_mapping_v2": [{ "source_type": "image", "destination_type": "volume", "uuid": "b023fe17-11db-4efb-b800-78882a0e394b", "delete_on_termination": "False", "boot_index": "0", "volume_type": "SAS", "volume_size": "40" }], "security_groups": [{ "name": "name_xx5_sg" }], "networks": [{ "uuid": "fd40e6f8-942d-4b4e-a7ae-465287b02a2c", "port": "e730a11c-1a19-49cc-8797-cee2ad67af6f", "fixed_ip": "10.20.30.137" }], "key_name": "test", "user_data": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA==", "availability_zone":"az1-dc1" } }
Cuando source_type es snapshot, boot_index es 0, y el disco EVS correspondiente a la instantánea debe ser un disco del sistema.
{ "server":{ "name":"wjvm48", "availability_zone":"az1-dc1", "block_device_mapping_v2": [ { "source_type":"snapshot", "boot_index":"0", "uuid":"df51997d-ee35-4fb3-a372-e2ac933a6565", //Specifies the snapshot ID, which is returned by the API for creating a snapshot. "destination_type":"volume" } ], "flavorRef":"s3.xlarge.2", "max_count":1, "min_count":1, "networks": [ { "uuid":"79a68cef-0936-4e21-b1f4-b800ecb70246" } ] } }
{ "server": { "flavorRef": "2", "name": "wjvm48", "metadata": { "name": "name_xx1", "id": "id_xxxx1" }, "block_device_mapping_v2": [{ "source_type": "volume", "destination_type": "volume", "uuid": "bd7e4f86-b004-4745-bea2-a55b1085f107", "delete_on_termination": "False", "boot_index": "0", "volume_type": "dsware", "volume_size": "40" }], "security_groups": [{ "name": "name_xx5_sg" }], "networks": [{ "uuid": "fd40e6f8-942d-4b4e-a7ae-465287b02a2c", "port": "e730a11c-1a19-49cc-8797-cee2ad67af6f", "fixed_ip": "10.20.30.137" }], "key_name": "test", "user_data": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA==", "availability_zone":"az1-dc1" } }
{ "server": { "flavorRef": "2", "name": "wjvm48", "metadata": { "name": "name_xx1", "id": "id_xxxx1" }, "adminPass": "name_xx1", "imageRef": "6b344c54-d606-4e1a-a99e-a7d0250c3d14", "security_groups": [{ "name": "name_xx5_sg" }], "networks": [{ "uuid": "fd40e6f8-942d-4b4e-a7ae-465287b02a2c", "port": "e730a11c-1a19-49cc-8797-cee2ad67af6f", "fixed_ip": "10.20.30.137" }], "key_name": "test", "user_data": "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBpdCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5kIGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVsc2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4gQnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRoZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlvdSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vyc2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6b25zLiINCg0KLVJpY2hhcmQgQmFjaA==", "availability_zone":"az1-dc1" } }
Ejemplo de respuesta (Creación de un ECS)
{ "server": { "security_groups": [ { "name": "name_xx5_sg" } ], "OS-DCF:diskConfig": " MANUAL", "id": "567c1557-0eca-422c-bfce-149d6b8f1bb8", "links": [ { "href": "http://xxx/v2/dc4059e8e7994f2498b514ca04cdaf44/servers/567c1557-0eca-422c-bfce-149d6b8f1bb8", "rel": "self" }, { "href": "http://xxx/dc4059e8e7994f2498b514ca04cdaf44/servers/567c1557-0eca-422c-bfce-149d6b8f1bb8", "rel": "bookmark" } ], "adminPass": "name_xx1" } }
Ejemplo de solicitud (Creación de ECS por lotes)
{ "server": { "availability_zone":"az1.dc1", "name": "test", "imageRef": "10ff4f01-35b6-4209-8397-359cb4475fa0", "flavorRef": "s3.medium", "return_reservation_id": "true", "networks": [ { "uuid": "51bead38-d1a3-4d08-be20-0970c24b7cab" } ], "min_count": "2", "max_count": "3" } }
Ejemplo de respuesta (Creación de ECS por lotes)
{ "reservation_id": "r-3fhpjulh" }