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 2024-09-04 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 a las API.

URI

POST /v2.1/{project_id}/cloudvolumes

Tabla 1 Parámetros de ruta

Parámetro

Obligatorio

Tipo

Descripción

project_id

String

El ID del proyecto.

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

Parámetros de solicitud

Tabla 2 Parámetros de encabezado de solicitud

Parámetro

Obligatorio

Tipo

Descripción

X-Auth-Token

String

El token del usuario. Se puede obtener invocando a la API de IAM utilizada para obtener un token de usuario. El valor de X-Subject-Token en el encabezado de respuesta es el token de usuario.

X-Client-Token

No

String

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 de UUID y es válido durante 8 horas. Si varias solicitudes llevan el mismo identificador de idempotencia, las solicitudes se consideran como una solicitud de idempotencia y se devuelve el mismo cuerpo de respuesta.

Tabla 3 Parámetros del cuerpo de solicitud

Parámetro

Obligatorio

Tipo

Descripción

bssParam

No

BssParamForCreateVolume object

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

volume

CreateVolumeOption object

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

server_id

No

String

El servidor al que conectar el disco. El modo de facturación del disco creado es el mismo que el del servidor. Actualmente, solo se soportan los ECS. No se soportan los BMS.

OS-SCH-HNT:scheduler_hints

No

CreateVolumeSchedulerHints object

El parámetro de programación del disco, que puede utilizarse para crear el disco en un grupo de almacenamiento dedicado.

Tabla 4 BssParamForCreateVolume

Parámetro

Obligatorio

Tipo

Descripción

chargingMode

No

String

El modo de facturación. El valor predeterminado es postPaid. Valores:

  • prePaid: anual/mensual

  • postPaid: pago por uso

Valor predeterminado: postPaid

Valores de enumeración:

  • postPaid

  • prePaid

isAutoPay

No

String

Si hay que pagar inmediatamente. Este parámetro solo es válido cuando chargingMode se establece en prePaid. El valor predeterminado es false. Valores:

  • true: Un pedido se paga inmediatamente con el saldo de la cuenta.

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

Predeterminado: false

Valores de enumeración:

  • true

  • false

isAutoRenew

No

String

Si desea renovar automáticamente la suscripción. Este parámetro solo es válido cuando chargingMode se establece en prePaid. El valor predeterminado es false. Valores:

  • true: renueva automáticamente la suscripción. El plazo de renovación es el mismo que el de la suscripción.

  • false: no renueva automáticamente la suscripción.

Predeterminado: false

Valores de enumeración:

  • true

  • false

periodNum

No

Integer

El plazo de suscripción. Este parámetro solo es válido y obligatorio cuando chargingMode se establece en prePaid. Valores:

  • Si periodType se establece en month, el valor del parámetro oscila entre 1 y 9.

  • Si periodType se establece en year, el valor del parámetro será 1.

periodType

No

String

La unidad del plazo de suscripción. Este parámetro solo es válido y obligatorio cuando chargingMode se establece en prePaid. Valores:

  • month

  • year

Valores de enumeración:

  • month

  • year

Tabla 5 CreateVolumeOption

Parámetro

Obligatorio

Tipo

Descripción

availability_zone

String

La zona de disponibilidad donde desea crear el disco.

backup_id

No

String

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

count

No

Integer

El número de discos que se crearán por un lote. Si no se especifica este parámetro, solo se creará un disco. Puede crear un máximo de 100 discos por un lote. Si el disco se crea a partir de una copia de respaldo, la creación por lotes no es posible y este parámetro debe establecerse en 1.

Si el valor especificado es un número decimal, se utilizará la parte numérica por defecto.

description

No

String

La descripción del disco. Puede escribir hasta 85 caracteres.

enterprise_project_id

No

String

El ID del proyecto de empresa. Este ID se asocia con el disco durante la creación del disco.

imageRef

No

String

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

metadata

No

Map<String,String>

La información de metadatos del disco. El valor puede ser los siguientes: __system__cmkid:

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

NOTA:

Para obtener detalles sobre cómo obtener el ID de clave, véase Consulta de la lista de claves.

__system__encrypted:

El campo de encriptación de metadata. El valor puede ser 0 (no cifra) o 1 (cifra). Si no se especifica este parámetro, 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.

[full_clone]

Si el disco se crea a partir de una instantánea y es necesario utilizar la clonación vinculada, establezca este parámetro en 0.

[hw:passthrough]

  • Si el valor de este parámetro es true, el tipo de dispositivo de disco es SCSI, lo que permite que los sistemas operativos de ECS accedan directamente a los medios de almacenamiento subyacentes y admite comandos de reserva de SCSI.

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

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

multiattach

No

Boolean

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

name

No

String

El nombre del disco. Si crea un disco, el valor name será el nombre del disco. Puede escribir hasta 64 caracteres. Si crea varios discos (el valor de count es mayor que 1), el sistema automáticamente agrega 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.

size

Integer

El tamaño del disco, en GiB. Las restricciones son las siguientes:

  • Disco del sistema: 1 GiB a 1,024 GiB

  • Disco de datos: 10 GiB a 32,768 GiB

  • 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 utiliza una imagen o una instantánea para crear un disco, el tamaño del disco no puede ser menor que el de la imagen o la instantánea.

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

snapshot_id

No

String

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

volume_type

String

El tipo de disco.

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

  • SATA: el tipo de E/S común (agotado)

  • 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 V2 de SSD de uso general

  • ESSD2: el tipo extremo de SSD V2

Si el tipo de disco especificado no está disponible en zona de disponibilidad, no se creará el disco.

NOTA:

Cuando cree un disco a partir de una instantánea, asegúrese de que el tipo de disco del nuevo disco coincida con el del disco de origen de la instantánea. Para obtener detalles acerca de los tipos de disco, consulte

Tipos de disco y rendimiento.

Valores de enumeración:

  • SATA

  • SAS

  • GPSSD

  • SSD

  • ESSD

  • GPSSD2

  • ESSD2

tags

No

Map<String,String>

La información de la etiqueta del disco.

iops

No

Integer

Las IOPS configuradas. Este parámetro solo es obligatorio cuando se crea un disco de SSD V2 de uso general o un disco de SSD V2 extremo.

NOTA:

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

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

throughput

No

Integer

El throughput configurado, en la unidad de MiB/s. Este parámetro solo es obligatorio cuando se crea un disco de SSD V2 de uso general.

NOTA:

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

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

Tabla 6 CreateVolumeSchedulerHints

Parámetro

Obligatorio

Tipo

Descripción

dedicated_storage_id

No

String

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

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

El ID de la tarea. Este parámetro se devuelve cuando se factura el disco según el pago por uso.

order_id

String

El ID de la orden. Este parámetro se devuelve cuando se factura el disco anualmente/mensualmente.

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

  • Si necesita pagar el pedido, consulte Pago de pedidos de productos anuales/mensuales.

volume_ids

Array of strings

Los ID de los discos que se van a crear.

  • Si se devuelve 404 al consultar los detalles de un disco por ID de disco, el disco se está creando o no se ha podido crear.

  • Puede consultar si la tarea de creación del disco se ha completado por ID de tarea. Para obtener más detalles, véase Consulta del estado de las tareas.

Código de estado: 400

Tabla 8 Parámetros del cuerpo de respuesta

Parámetro

Tipo

Descripción

error

Error object

El mensaje de error devuelto si se produce un error. Para obtener más detalles, consulte Parámetros en el campo error.

Tabla 9 Error

Parámetro

Tipo

Descripción

code

String

El código de error devuelto si se produce un error. Para conocer los códigos de error y sus significados, véase Códigos de error.

message

String

El mensaje de error devuelto si se produce un error.

Ejemplo de solicitudes

  • Creación de un disco de EVS compartido y cifrado en el grupo de almacenamiento 1b6198f2-20a6-5dcc-aa21-58c1af5dc488 (Despliegue 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.)

    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 de EVS compartido (Despliegue el disco en AZ 1 de la región CN-Hong Kong. Configure el nombre del disco como EVS-Test2, escriba SSD V2 de uso general, IOPS como 5,000, throughput a 500 MiB/s, tamaño a 100 GiB y período de suscripción a tres meses. Agregue las etiquetas al disco. Activar la renovación automática de la suscripción. 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,
      }
    }

Ejemplo de respuestas

Código de estado: 202

Aceptado

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

Código de estado: 400

Error en la solicitud

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

Ejemplo de código del SDK

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

Java

  • Creación de un disco de EVS compartido y cifrado en el grupo de almacenamiento 1b6198f2-20a6-5dcc-aa21-58c1af5dc488 (Despliegue 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
    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");
    
            ICredential auth = new BasicCredentials()
                    .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 de EVS compartido (Despliegue el disco en AZ 1 de la región CN-Hong Kong. Configure el nombre del disco como EVS-Test2, escriba SSD V2 de uso general, IOPS como 5,000, throughput a 500 MiB/s, tamaño a 100 GiB y período de suscripción a tres meses. Agregue las etiquetas al disco. Activar la renovación automática de la suscripción. 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
    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");
    
            ICredential auth = new BasicCredentials()
                    .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 cifrado en el grupo de almacenamiento 1b6198f2-20a6-5dcc-aa21-58c1af5dc488 (Despliegue 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
    # coding: utf-8
    
    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 = __import__('os').getenv("CLOUD_SDK_AK")
        sk = __import__('os').getenv("CLOUD_SDK_SK")
    
        credentials = BasicCredentials(ak, sk) \
    
        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 de EVS compartido (Despliegue el disco en AZ 1 de la región CN-Hong Kong. Configure el nombre del disco como EVS-Test2, escriba SSD V2 de uso general, IOPS como 5,000, throughput a 500 MiB/s, tamaño a 100 GiB y período de suscripción a tres meses. Agregue las etiquetas al disco. Activar la renovación automática de la suscripción. 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
    # coding: utf-8
    
    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 = __import__('os').getenv("CLOUD_SDK_AK")
        sk = __import__('os').getenv("CLOUD_SDK_SK")
    
        credentials = BasicCredentials(ak, sk) \
    
        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 cifrado en el grupo de almacenamiento 1b6198f2-20a6-5dcc-aa21-58c1af5dc488 (Despliegue 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
    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")
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            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 de EVS compartido (Despliegue el disco en AZ 1 de la región CN-Hong Kong. Configure el nombre del disco como EVS-Test2, escriba SSD V2 de uso general, IOPS como 5,000, throughput a 500 MiB/s, tamaño a 100 GiB y período de suscripción a tres meses. Agregue las etiquetas al disco. Activar la renovación automática de la suscripción. 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
    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")
    
        auth := basic.NewCredentialsBuilder().
            WithAk(ak).
            WithSk(sk).
            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)
        }
    }
    

Otro más

Para obtener un ejemplo de código del SDK de más lenguajes de programación, consulta la ficha Ejemplo de código en API Explorer. El ejemplo de código del SDK se puede generar automáticamente.

Códigos de estado

Código de estado

Descripción

202

Aceptado

400

Error en la solicitud

Códigos de error

Consulte Códigos de error.