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
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
project_id |
Sí |
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
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
X-Auth-Token |
Sí |
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. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
bssParam |
No |
BssParamForCreateVolume object |
El parámetro ampliado de pago por uso y facturación anual/mensual. |
volume |
Sí |
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. |
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
chargingMode |
No |
String |
El modo de facturación. El valor predeterminado es postPaid. Valores:
Valor predeterminado: postPaid Valores de enumeración:
|
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:
Predeterminado: false Valores de enumeración:
|
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:
Predeterminado: false Valores de enumeración:
|
periodNum |
No |
Integer |
El plazo de suscripción. Este parámetro solo es válido y obligatorio cuando chargingMode se establece en prePaid. Valores:
|
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:
Valores de enumeración:
|
Parámetro |
Obligatorio |
Tipo |
Descripción |
---|---|---|---|
availability_zone |
Sí |
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]
|
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 |
Sí |
Integer |
El tamaño del disco, en GiB. Las restricciones son las siguientes:
|
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 |
Sí |
String |
El tipo de disco. El valor puede ser SATA, SAS, GPSSD, SSD, ESSD, GPSSD2 o ESSD2.
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 Valores de enumeración:
|
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.
|
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.
|
Parámetros de respuesta
Código de estado: 202
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.
|
volume_ids |
Array of strings |
Los ID de los discos que se van a crear.
|
Código de estado: 400
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. |
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.