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 2026-04-23 GMT+08:00

Creación de discos de EVS

Función

Esta API se utiliza para crear un disco de EVS de pago por uso o anual/mensual.

Método de invocación

Para obtener más información, consulte Invocación de las API.

Información de autorización

Cada cuenta tiene todos los permisos necesarios para invocar todas las API, pero los usuarios de IAM deben tener asignados los permisos requeridos.

  • Si está utilizando la autorización basada en roles/políticas, consulte Políticas de permisos y acciones admitidas para obtener más información sobre los permisos requeridos.
  • Si está utilizando la autorización basada en políticas de identidad, no se requiere ningún permiso basado en políticas de identidad para invocar esta API.

URI

POST /v2.1/{project_id}/cloudvolumes

Tabla 1 Parámetros de ruta

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

Definición

El ID del proyecto. Para obtener más información, consulte Obtención de un ID de proyecto.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

Parámetros de solicitud

Tabla 2 Parámetros de encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

String

Definición

El token de usuario.

Puede obtenerlo invocando la API de IAM. El valor de X-Subject-Token en el encabezado de respuesta es el token de usuario.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

X-Client-Token

No

String

Definición

El identificador de idempotencia de una solicitud. Este valor de parámetro es generado por el cliente y debe ser único entre las solicitudes. El valor es una cadena de caracteres de 36 dígitos en formato UUID y es válido durante 8 horas. Si varias solicitudes contienen el mismo identificador idempotente, las solicitudes se consideran como la misma solicitud idempotente y se devuelve el mismo cuerpo de respuesta.

Restricciones

N/D

Rango

El valor es una cadena de caracteres de 36 dígitos en formato UUID y es válido durante 8 horas.

Valor predeterminado

N/D

Tabla 3 Parámetros del cuerpo de la solicitud

Parámetro

Obligatorio

Tipo

Descripción

bssParam

No

BssParamForCreateVolume object

Definición

El parámetro extendido de pago por uso y facturación anual/mensual.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

volume

CreateVolumeOption object

Definición

La información del disco que se va a crear.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

server_id

No

String

Definición

El servidor al que se conectará el disco.

Restricciones

El modo de facturación del disco creado será el mismo que el del servidor.

Actualmente, solo se admiten los ECS. No se admiten los BMS.

Rango

N/D

Valor predeterminado

N/D

OS-SCH-HNT:scheduler_hints

No

CreateVolumeSchedulerHints object

Definición

El parámetro de programación de discos. Se puede utilizar para crear el disco en un grupo de almacenamiento dedicado.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

Tabla 4 BssParamForCreateVolume

Parámetro

Obligatorio

Tipo

Descripción

chargingMode

No

String

Definición

El modo de facturación.

Restricciones

N/D

Rango

  • prePaid: anual/mensual

  • postPaid: pago por uso

Valor predeterminado

postPaid

isAutoPay

No

String

Definición

Si hay que pagar inmediatamente.

Restricciones

Este parámetro solo es válido cuando chargingMode es prePaid.

Rango

  • true: indica que se debe pagar inmediatamente después de crear un pedido. El sistema deducirá automáticamente los cargos del saldo de la cuenta.

  • false: Un pedido no se paga inmediatamente después de ser creada.

Valor predeterminado

false

isAutoRenew

No

String

Definición

Si se debe renovar automáticamente la suscripción.

Restricciones

Este parámetro solo es válido cuando chargingMode es prePaid.

Rango

  • true: indica que se debe renovar automáticamente la suscripción. El período de renovación es el mismo que el período de suscripción.

  • false: indica que no se debe renovar automáticamente la suscripción.

Valor predeterminado

false

periodNum

No

Integer

Definición

El período de suscripción.

Restricciones

Este parámetro es válido y obligatorio solo cuando chargingMode es prePaid.

Rango

  • Si periodType es Mes, el valor del parámetro oscila entre 1 y 9.

  • Si periodType es year, el valor del parámetro se fija en 1.

Valor predeterminado

N/D

periodType

No

String

Definición

La unidad del período de suscripción.

Restricciones

Este parámetro es válido y obligatorio solo cuando chargingMode es prePaid.

Rango

  • month

  • year

Valor predeterminado

N/D

cloudServiceConsoleURL

No

String

Definición

La URL utilizada para cambiar a la consola de servicios en la nube para ver la información después de completar la suscripción.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

Tabla 5 CreateVolumeOption

Parámetro

Obligatorio

Tipo

Descripción

availability_zone

String

Definición

La zona de disponibilidad donde desea crear el disco.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

backup_id

No

String

Definición

El ID de copia de respaldo.

Puede invocar la API de CBR Consulta de todas las copias de respaldo para obtener el ID de copia de respaldo.

Restricciones

Este parámetro es obligatorio cuando se crea el disco a partir de una copia de respaldo.

Rango

N/D

Valor predeterminado

N/D

count

No

Integer

Definición

La cantidad de discos que se crearán en un lote.

Restricciones

Se pueden crear hasta 100 discos a la vez. Si no se especifica este parámetro, solo se creará un disco.

Si el disco se crea a partir de una copia de respaldo, no se admite la creación por lotes y este parámetro debe ser 1.

Si el valor especificado es un número decimal, se utilizará la parte entera de forma predeterminada.

Rango

N/D

Valor predeterminado

N/D

description

No

String

Definición

La descripción del disco.

Restricciones

Puede contener un máximo de 85 caracteres.

Rango

N/D

Valor predeterminado

N/D

enterprise_project_id

No

String

Definición

El ID del proyecto empresarial. Este ID se vincula al disco durante la creación del disco.

Para obtener más información sobre los proyectos empresariales y cómo obtener los ID de proyectos empresariales, consulte Guía del usuario de Enterprise Management]

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

imageRef

No

String

Definición

El ID de la imagen. Si se especifica este parámetro, el disco se crea a partir de una imagen.

Puede invocar a la API de IMS Consulta de imágenes para obtener el ID de la imagen.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

metadata

No

Map<String,String>

Definición

La información de metadatos del disco. Los invocadores pueden agregar o eliminar la información de metadatos. Las claves de este parámetro utilizadas en EVS se describen a continuación:

  • [__system__cmkid]

    El ID del CMK de encriptación en metadata. Este parámetro se utiliza junto con __system__encrypted para la encriptación. La longitud de cmkid se fija en 36 bytes.

  • [__system__encrypted]

    El campo de encriptación en metadata. El valor puede ser 0 (sin encriptación) o 1 (encriptación). Si este parámetro no se especifica, el atributo de encriptación del disco es el mismo que el del origen de datos. Si el disco no se crea a partir de un origen de datos, el disco no se cifra de forma predeterminada.

  • [hw:passthrough]

    • Si el valor de este parámetro es true, el tipo de dispositivo de disco es SCSI, lo que permite que los SO de ECS accedan directamente al medio de almacenamiento subyacente y admitan comandos de reserva SCSI.

    • Si el valor de este parámetro es false, el tipo de dispositivo de disco es VBD (tipo de dispositivo predeterminado), que solo admite comandos simples de lectura/escritura SCSI.

    • Si no se especifica este parámetro, el tipo de dispositivo de disco es VBD.

[Para obtener más información sobre cómo obtener el ID de clave, consulte Consulta de la lista de claves.]

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

multiattach

No

Boolean

Definición

Si el disco es compartible.

Restricciones

N/D

Rango

El valor puede ser true (se puede compartir) o false (no se puede compartir).

Valor predeterminado

N/D

name

No

String

Definición

El nombre del disco.

Si crea un disco, el valor de name es el nombre del disco, que puede contener un máximo de 64 caracteres.

Si crea varios discos (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 disco. Por ejemplo, los nombres de disco pueden ser volume-0001 y volume-0002.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

size

Integer

Definición

La capacidad del disco, en GiB.

Restricciones

  • Este parámetro es obligatorio cuando se crea un disco vacío o se utiliza una imagen o una instantánea para crear un disco. Si se utiliza una imagen o una instantánea para crear un disco, la capacidad del disco debe ser mayor o igual que el tamaño de la imagen o la instantánea.

  • Este parámetro es opcional si se crea el disco a partir de una copia de respaldo. Si no se especifica, el tamaño de copia de respaldo se utilizará como la capacidad del disco.

  • Disco del sistema: 1 GiB a 1024 GiB

  • Disco de datos: 10 GiB a 32768 GiB

Rango

Valor predeterminado

N/D

snapshot_id

No

String

Definición

El ID de la instantánea. Si se especifica este parámetro, el disco se crea a partir de una instantánea.

Puede invocar la API Consulta de detalles sobre instantáneas de EVS para obtener el ID de la instantánea.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

volume_type

String

Definición

El tipo de disco.

Para obtener más información sobre los diferentes tipos de disco, consulte Tipos de disco y rendimiento.Restricciones
  • SATA: el tipo de E/S común (fin de venta)

  • SAS: el tipo de E/S alta

  • GPSSD: el tipo de SSD de uso general

  • SSD: el tipo de E/S ultraalta

  • ESSD: el tipo de SSD extrema

  • GPSSD2: el tipo de SSD V2 de uso general

Si el tipo de disco especificado no está disponible en la AZ, el disco no se creará.

Si crea el disco a partir de una instantánea, el valor de volume_type debe coincidir con el del disco de origen de la instantánea.

Rango

El valor puede ser SATA, SAS, GPSSD, SSD, ESSD o GPSSD2.

tags

No

Map<String,String>

Definición

La información de la etiqueta del disco.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

sys_tags

No

Map<String,String>

Definición

La información de la etiqueta del sistema de disco.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

iops

No

Integer

Definición

Las IOPS configuradas para el disco.

Restricciones

Este parámetro es obligatorio cuando se adquieren discos SSD V2 de uso general. Este parámetro no está disponible para otros tipos de discos de EVS.

Solo se admite la facturación de pago por uso.

Rango

Para conocer los rangos de IOPS de los discos SSD V2 de uso general, consulte la tabla de datos de rendimiento de EVS en Tipos de discos y rendimiento.Valor predeterminado

N/D

throughput

No

Integer

Definición

El throughput configurado para el disco. La unidad es MiB/s.

Restricciones

Este parámetro solo es obligatorio cuando se compra un disco SSD V2 de uso general.

Solo se admite la facturación de pago por uso.

Rango

Para conocer el rango de throughput de los discos SSD V2 de uso general, consulte la tabla de datos de rendimiento de EVS en Tipos de discos y rendimiento.Valor predeterminado

N/D

Tabla 6 CreateVolumeSchedulerHints

Parámetro

Obligatorio

Tipo

Descripción

dedicated_storage_id

No

String

Definición

El ID del grupo de almacenamiento dedicado. Si se especifica este parámetro, el disco se creará en el grupo de almacenamiento especificado.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

architecture_type

No

String

Definición

Arquitectura del grupo utilizado para crear discos. El valor puede ser arm o x86.

Restricciones

N/D

Rango

Arm o x86

Valor predeterminado

N/D

fault_domain

No

String

Definición

El dominio de fallas donde se crea el disco.

Restricciones

N/D

Rango

N/D

Valor predeterminado

N/D

Parámetros de respuesta

Código de estado: 202

Tabla 7 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

job_id

String

Definición

El ID de la tarea. Este parámetro se devuelve cuando el disco se factura en función del pago por uso.

Para obtener más información sobre cómo consultar el estado de la tarea, consulte Consulta del estado de la tarea.Rango

N/D

order_id

String

Definición

El ID del pedido. Este parámetro se devuelve cuando se factura el disco anualmente/mensualmente.

  • Si agrega un disco a un servidor anual/mensual, el sistema lo adjunta automáticamente al servidor. En este caso, este parámetro también se devuelve.

  • [Si necesita pagar el pedido, consulte Pago anual/mensual de pedidos de productos.]

Rango

N/D

volume_ids

Array of strings

Definición

Los ID de los discos que se van a crear.

  • Si se devuelve 404 cuando consulta los detalles de un disco por ID de disco, el disco se está creando o la creación ha fallado.

  • [Puede consultar si la tarea de creación de disco está completa utilizando el ID de la tarea. Para obtener más información, consulte Consulta del estado de la tarea.]

Rango

N/D

Código de estado: 400

Tabla 8 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error

Error object

Definición

El código de error devuelto si se produce un error. Para obtener más información sobre el código de error, consulte Códigos de error.

Rango

N/D

Tabla 9 Error

Parámetro

Tipo

Descripción

code

String

Definición

El código de error devuelto si se produce un error.

Rango

Para obtener más información sobre el código de error, consulte Códigos de error.

message

String

Definición

El mensaje de error devuelto si se produce un error.

Rango

N/D

Ejemplos de solicitudes

  • Creación de un disco de EVS compartido y encriptado en el grupo de almacenamiento 1b6198f2-20a6-5dcc-aa21-58c1af5dc488 (Desplegar el disco en AZ 1 de CN-Hong Kong. Establezca el nombre del disco en EVS-Test, el tipo de dispositivo en SCSI, el tipo de disco en E/S alta y el tamaño en 10 GiB.)

    POST https://{endpoint}/v2.1/{project_id}/cloudvolumes
    
    {
      "volume" : {
        "availability_zone" : "ap-southeast-1a",
        "size" : 10,
        "name" : "EVS-Test",
        "volume_type" : "SAS",
        "metadata" : {
          "hw:passthrough" : "true",
          "__system__encrypted" : "1",
          "__system__cmkid" : "94257794-d7aa-462c-9eaa-9f32c05b9966",
          "region" : "ap-southeast-1"
        },
        "multiattach" : true,
        "enterprise_project_id" : "0"
      },
      "OS-SCH-HNT:scheduler_hints" : {
        "dedicated_storage_id" : "1b6198f2-20a6-5dcc-aa21-58c1af5dc488"
      }
    }
  • Creación de un disco EVS compartido (crear el disco en AZ1 de la región CN-Hong Kong. Establezca el nombre del disco en EVS-Test2, el tipo en SSD V2 de uso general, IOPS en 5,000, throughput en 500 MiB/s, la capacidad en 100 GiB y el período de suscripción en tres meses. Agregue las etiquetas al disco. Habilite la renovación automática. Se le facturará el disco inmediatamente después de realizar el pedido.)

    POST https://{endpoint}/v2.1/{project_id}/cloudvolumes
    
    {
      "volume": {
        "count": 1,
        "availability_zone": "ap-southeast-1",
        "size": 100,
        "name": "EVS-Test2",
        "volume_type": "GPSSD2",
        "metadata": {},
        "tags": {
          "key_string": "value_string"
        },
        "iops": 5000,
        "throughput": 500,
        "multiattach": 1
      },
      "bssParam": {
        "chargingMode": "prePaid",
        "periodType": "month",
        "periodNum": 3,
        "isAutoPay": true,
        "isAutoRenew": true,
      }
    }

Ejemplos de respuestas

Código de estado: 202

Accepted

{
  "job_id" : "70a599e0-31e7-49b7-b260-868f441e862b",
  "volume_ids" : [ "e1fa3e72-8c92-4871-9152-bf66fef0afe9" ]
}

Código de estado: 400

Bad Request

{
  "error" : {
    "message" : "XXXX",
    "code" : "XXX"
  }
}

Código de ejemplo del SDK

El código de ejemplo del SDK es el siguiente.

Java

  • Creación de un disco de EVS compartido y encriptado en el grupo de almacenamiento 1b6198f2-20a6-5dcc-aa21-58c1af5dc488 (Desplegar el disco en AZ 1 de CN-Hong Kong. Configure el nombre del disco en EVS-Test, el tipo de dispositivo en SCSI, el tipo de disco en E/S alta y el tamaño en 10 GiB.)

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.evs.v2.region.EvsRegion;
    import com.huaweicloud.sdk.evs.v2.*;
    import com.huaweicloud.sdk.evs.v2.model.*;
    
    import java.util.Map;
    import java.util.HashMap;
    
    public class CreateVolumeSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            EvsClient client = EvsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(EvsRegion.valueOf("<YOUR REGION>"))
                    .build();
            CreateVolumeRequest request = new CreateVolumeRequest();
            CreateVolumeRequestBody body = new CreateVolumeRequestBody();
            CreateVolumeSchedulerHints osschhntschedulerhintsbody = new CreateVolumeSchedulerHints();
            osschhntschedulerhintsbody.withDedicatedStorageId("1b6198f2-20a6-5dcc-aa21-58c1af5dc488");
            Map<String, String> listVolumeMetadata = new HashMap<>();
            listVolumeMetadata.put("hw:passthrough", "true");
            listVolumeMetadata.put("__system__encrypted", "1");
            listVolumeMetadata.put("__system__cmkid", "94257794-d7aa-462c-9eaa-9f32c05b9966");
            listVolumeMetadata.put("region", "ap-southeast-1");
            CreateVolumeOption volumebody = new CreateVolumeOption();
            volumebody.withAvailabilityZone("ap-southeast-1a")
                .withEnterpriseProjectId("0")
                .withMetadata(listVolumeMetadata)
                .withMultiattach(true)
                .withName("EVS-Test")
                .withSize(10)
                .withVolumeType(CreateVolumeOption.VolumeTypeEnum.fromValue("SAS"));
            body.withOsSCHHNTSchedulerHints(osschhntschedulerhintsbody);
            body.withVolume(volumebody);
            request.withBody(body);
            try {
                CreateVolumeResponse response = client.createVolume(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    
  • Creación de un disco EVS compartido (crear el disco en AZ1 de la región CN-Hong Kong. Establezca el nombre del disco en EVS-Test2, el tipo en SSD V2 de uso general, IOPS en 5,000, throughput en 500 MiB/s, la capacidad en 100 GiB y el período de suscripción en tres meses. Agregue las etiquetas al disco. Habilite la renovación automática. Se le facturará el disco inmediatamente después de realizar el pedido.)

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    package com.huaweicloud.sdk.test;
    
    import com.huaweicloud.sdk.core.auth.ICredential;
    import com.huaweicloud.sdk.core.auth.BasicCredentials;
    import com.huaweicloud.sdk.core.exception.ConnectionException;
    import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
    import com.huaweicloud.sdk.core.exception.ServiceResponseException;
    import com.huaweicloud.sdk.evs.v2.region.EvsRegion;
    import com.huaweicloud.sdk.evs.v2.*;
    import com.huaweicloud.sdk.evs.v2.model.*;
    
    import java.util.Map;
    import java.util.HashMap;
    
    public class CreateVolumeSolution {
    
        public static void main(String[] args) {
            // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
            // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
            String ak = System.getenv("CLOUD_SDK_AK");
            String sk = System.getenv("CLOUD_SDK_SK");
            String projectId = "{project_id}";
    
            ICredential auth = new BasicCredentials()
                    .withProjectId(projectId)
                    .withAk(ak)
                    .withSk(sk);
    
            EvsClient client = EvsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(EvsRegion.valueOf("<YOUR REGION>"))
                    .build();
            CreateVolumeRequest request = new CreateVolumeRequest();
            CreateVolumeRequestBody body = new CreateVolumeRequestBody();
            Map<String, String> listVolumeTags = new HashMap<>();
            listVolumeTags.put("key_string", "value_string");
            CreateVolumeOption volumebody = new CreateVolumeOption();
            volumebody.withAvailabilityZone("ap-southeast-1")
                .withCount(1)
                .withMultiattach(1)
                .withName("EVS-Test2")
                .withSize(100)
                .withVolumeType(CreateVolumeOption.VolumeTypeEnum.fromValue("GPSSD2"))
                .withTags(listVolumeTags)
                .withIops(5000)
                .withThroughput(500);
            BssParamForCreateVolume bssParambody = new BssParamForCreateVolume();
            bssParambody.withChargingMode(BssParamForCreateVolume.ChargingModeEnum.fromValue("prePaid"))
                .withIsAutoPay(BssParamForCreateVolume.IsAutoPayEnum.fromValue("true"))
                .withIsAutoRenew(BssParamForCreateVolume.IsAutoRenewEnum.fromValue("true"))
                .withPeriodNum(3)
                .withPeriodType(BssParamForCreateVolume.PeriodTypeEnum.fromValue("month"));
            body.withVolume(volumebody);
            body.withBssParam(bssParambody);
            request.withBody(body);
            try {
                CreateVolumeResponse response = client.createVolume(request);
                System.out.println(response.toString());
            } catch (ConnectionException e) {
                e.printStackTrace();
            } catch (RequestTimeoutException e) {
                e.printStackTrace();
            } catch (ServiceResponseException e) {
                e.printStackTrace();
                System.out.println(e.getHttpStatusCode());
                System.out.println(e.getRequestId());
                System.out.println(e.getErrorCode());
                System.out.println(e.getErrorMsg());
            }
        }
    }
    

Python

  • Creación de un disco de EVS compartido y encriptado en el grupo de almacenamiento 1b6198f2-20a6-5dcc-aa21-58c1af5dc488 (Desplegar el disco en AZ 1 de CN-Hong Kong. Configure el nombre del disco en EVS-Test, el tipo de dispositivo en SCSI, el tipo de disco en E/S alta y el tamaño en 10 GiB.)

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkevs.v2.region.evs_region import EvsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkevs.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = EvsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(EvsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = CreateVolumeRequest()
            osschhntschedulerhintsbody = CreateVolumeSchedulerHints(
                dedicated_storage_id="1b6198f2-20a6-5dcc-aa21-58c1af5dc488"
            )
            listMetadataVolume = {
                "hw:passthrough": "true",
                "__system__encrypted": "1",
                "__system__cmkid": "94257794-d7aa-462c-9eaa-9f32c05b9966",
                "region": "ap-southeast-1"
            }
            volumebody = CreateVolumeOption(
                availability_zone="ap-southeast-1a",
                enterprise_project_id="0",
                metadata=listMetadataVolume,
                multiattach=True,
                name="EVS-Test",
                size=10,
                volume_type="SAS"
            )
            request.body = CreateVolumeRequestBody(
                os_sch_hn_tscheduler_hints=osschhntschedulerhintsbody,
                volume=volumebody
            )
            response = client.create_volume(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • Creación de un disco EVS compartido (crear el disco en AZ1 de la región CN-Hong Kong. Establezca el nombre del disco en EVS-Test2, el tipo en SSD V2 de uso general, IOPS en 5,000, throughput en 500 MiB/s, la capacidad en 100 GiB y el período de suscripción en tres meses. Agregue las etiquetas al disco. Habilite la renovación automática. Se le facturará el disco inmediatamente después de realizar el pedido.)

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkevs.v2.region.evs_region import EvsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkevs.v2 import *
    
    if __name__ == "__main__":
        # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak = os.environ["CLOUD_SDK_AK"]
        sk = os.environ["CLOUD_SDK_SK"]
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId)
    
        client = EvsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(EvsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = CreateVolumeRequest()
            listTagsVolume = {
                "key_string": "value_string"
            }
            volumebody = CreateVolumeOption(
                availability_zone="ap-southeast-1",
                count=1,
                multiattach=1,
                name="EVS-Test2",
                size=100,
                volume_type="GPSSD2",
                tags=listTagsVolume,
                iops=5000,
                throughput=500
            )
            bssParambody = BssParamForCreateVolume(
                charging_mode="prePaid",
                is_auto_pay="true",
                is_auto_renew="true",
                period_num=3,
                period_type="month"
            )
            request.body = CreateVolumeRequestBody(
                volume=volumebody,
                bss_param=bssParambody
            )
            response = client.create_volume(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    

Go

  • Creación de un disco de EVS compartido y encriptado en el grupo de almacenamiento 1b6198f2-20a6-5dcc-aa21-58c1af5dc488 (Desplegar el disco en AZ 1 de CN-Hong Kong. Configure el nombre del disco en EVS-Test, el tipo de dispositivo en SCSI, el tipo de disco en E/S alta y el tamaño en 10 GiB.)

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        evs "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := evs.NewEvsClient(
            evs.EvsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.CreateVolumeRequest{}
    	dedicatedStorageIdOSSCHHNTschedulerHints:= "1b6198f2-20a6-5dcc-aa21-58c1af5dc488"
    	osschhntschedulerhintsbody := &model.CreateVolumeSchedulerHints{
    		DedicatedStorageId: &dedicatedStorageIdOSSCHHNTschedulerHints,
    	}
    	var listMetadataVolume = map[string]string{
            "hw:passthrough": "true",
            "__system__encrypted": "1",
            "__system__cmkid": "94257794-d7aa-462c-9eaa-9f32c05b9966",
            "region": "ap-southeast-1",
        }
    	enterpriseProjectIdVolume:= "0"
    	multiattachVolume:= true
    	nameVolume:= "EVS-Test"
    	volumebody := &model.CreateVolumeOption{
    		AvailabilityZone: "ap-southeast-1a",
    		EnterpriseProjectId: &enterpriseProjectIdVolume,
    		Metadata: listMetadataVolume,
    		Multiattach: &multiattachVolume,
    		Name: &nameVolume,
    		Size: int32(10),
    		VolumeType: model.GetCreateVolumeOptionVolumeTypeEnum().SAS,
    	}
    	request.Body = &model.CreateVolumeRequestBody{
    		OSSCHHNTschedulerHints: osschhntschedulerhintsbody,
    		Volume: volumebody,
    	}
    	response, err := client.CreateVolume(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • Creación de un disco EVS compartido (crear el disco en AZ1 de la región CN-Hong Kong. Establezca el nombre del disco en EVS-Test2, el tipo en SSD V2 de uso general, IOPS en 5,000, throughput en 500 MiB/s, la capacidad en 100 GiB y el período de suscripción en tres meses. Agregue las etiquetas al disco. Habilite la renovación automática. Se le facturará el disco inmediatamente después de realizar el pedido.)

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        evs "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/evs/v2/region"
    )
    
    func main() {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        ak := os.Getenv("CLOUD_SDK_AK")
        sk := os.Getenv("CLOUD_SDK_SK")
        projectId := "{project_id}"
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            WithProjectId(projectId).
            Build()
    
        client := evs.NewEvsClient(
            evs.EvsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.CreateVolumeRequest{}
    	var listTagsVolume = map[string]string{
            "key_string": "value_string",
        }
    	countVolume:= int32(1)
    	multiattachVolume:= 1
    	nameVolume:= "EVS-Test2"
    	iopsVolume:= int32(5000)
    	throughputVolume:= int32(500)
    	volumebody := &model.CreateVolumeOption{
    		AvailabilityZone: "ap-southeast-1",
    		Count: &countVolume,
    		Multiattach: &multiattachVolume,
    		Name: &nameVolume,
    		Size: int32(100),
    		VolumeType: model.GetCreateVolumeOptionVolumeTypeEnum().GPSSD2,
    		Tags: listTagsVolume,
    		Iops: &iopsVolume,
    		Throughput: &throughputVolume,
    	}
    	chargingModeBssParam:= model.GetBssParamForCreateVolumeChargingModeEnum().PRE_PAID
    	isAutoPayBssParam:= model.GetBssParamForCreateVolumeIsAutoPayEnum().TRUE
    	isAutoRenewBssParam:= model.GetBssParamForCreateVolumeIsAutoRenewEnum().TRUE
    	periodNumBssParam:= int32(3)
    	periodTypeBssParam:= model.GetBssParamForCreateVolumePeriodTypeEnum().MONTH
    	bssParambody := &model.BssParamForCreateVolume{
    		ChargingMode: &chargingModeBssParam,
    		IsAutoPay: &isAutoPayBssParam,
    		IsAutoRenew: &isAutoRenewBssParam,
    		PeriodNum: &periodNumBssParam,
    		PeriodType: &periodTypeBssParam,
    	}
    	request.Body = &model.CreateVolumeRequestBody{
    		Volume: volumebody,
    		BssParam: bssParambody,
    	}
    	response, err := client.CreateVolume(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    

Más

Para obtener el código de ejemplo de SDK de más lenguajes de programación, consulte la pestaña Código de ejemplo en Explorador de API. El código de ejemplo del SDK se puede generar automáticamente.

Códigos de estado

Código de estado

Descripción

202

Accepted

400

Bad Request

Códigos de error

Consulte Códigos de error.