Criação de discos EVS
Função
Essa API é usada para criar um disco EVS de pagamento por uso ou anual/mensal.
Método de chamada
Para obter detalhes, consulte Chamada de APIs.
URI
POST /v2.1/{project_id}/cloudvolumes
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
project_id |
Sim |
String |
O ID do projeto. Para obter detalhes sobre como obter o ID de projeto, consulte Obtenção de um ID de projeto. |
Parâmetros de solicitação
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
X-Auth-Token |
Sim |
String |
O token do usuário. Ele pode ser obtido chamando a API do IAM usada para obter um token de usuário. O valor de X-Subject-Token no cabeçalho da resposta é o token do usuário. |
X-Client-Token |
Não |
String |
O identificador de idempotência de uma solicitação. Este valor de parâmetro é gerado pelo cliente e deve ser exclusivo entre as solicitações. O valor é uma cadeia de caracteres de 36 dígitos no formato UUID e é válido por 8 horas. Se várias solicitações tiverem o mesmo identificador idempotente, as solicitações serão consideradas como uma solicitação idempotente e o mesmo corpo de resposta será retornado. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
bssParam |
Não |
BssParamForCreateVolume object |
O parâmetro estendido de pagamento por uso e faturamento anual/mensal. |
volume |
Sim |
CreateVolumeOption object |
As informações do disco a ser criado. |
server_id |
Não |
String |
O servidor para anexar o disco. O modo de cobrança do disco criado é o mesmo do servidor. Atualmente, apenas os ECSs são suportados. Os BMSs não são suportados. |
OS-SCH-HNT:scheduler_hints |
Não |
CreateVolumeSchedulerHints object |
O parâmetro de agendamento de disco, que pode ser usado para criar o disco em um pool de armazenamento dedicado. |
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
chargingMode |
Não |
String |
O modo de cobrança. O valor padrão é postPaid. Valores:
Padrão: postPaid Valores de enumeração:
|
isAutoPay |
Não |
String |
Se deve pagar imediatamente. Este parâmetro é válido quando chargingMode é definido como prePaid. O valor padrão é false. Valores:
Padrão: false Valores de enumeração:
|
isAutoRenew |
Não |
String |
Se a assinatura deve ser renovada automaticamente. Este parâmetro é válido quando chargingMode é definido como prePaid. O valor padrão é false. Valores:
Padrão: false Valores de enumeração:
|
periodNum |
Não |
Integer |
O termo de assinatura. Este parâmetro é válido e obrigatório somente quando chargingMode estiver definido como prePaid. Valores:
|
periodType |
Não |
String |
A unidade do termo de assinatura. Este parâmetro é válido e obrigatório somente quando chargingMode estiver definido como prePaid. Valores:
Valores de enumeração:
|
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
availability_zone |
Sim |
String |
A AZ onde você deseja criar o disco. |
backup_id |
Não |
String |
O ID de backup. Esse parâmetro é obrigatório quando você cria o disco a partir de um backup. |
count |
Não |
Integer |
O número de discos a serem criados em um lote. Se este parâmetro não for especificado, apenas um disco será criado. Você pode criar um máximo de 100 discos em um lote. Se o disco for criado de um backup, a criação em lotes não será possível, e esse parâmetro deve ser definido como 1. Se o valor especificado for um número decimal, a parte do número será usada por padrão. |
description |
Não |
String |
A descrição do disco. Você pode inserir até 85 caracteres. |
enterprise_project_id |
Não |
String |
O ID do projeto empresarial. Este ID é associado ao disco durante a criação do disco. |
imageRef |
Não |
String |
O ID da imagem. Se este parâmetro for especificado, o disco será criado a partir de uma imagem. |
metadata |
Não |
Map<String,String> |
As informações de metadados do disco. O valor pode ser o seguinte: __system__cmkid: O ID da CMK de encriptação em metadata. Este parâmetro é utilizado em conjunto com __system__encrypted para encriptação. O comprimento do cmkid é fixado em 36 bytes.
NOTA:
Para obter detalhes sobre como obter o ID de chave, consulte Consulta da lista de chaves. __system__encrypted: O campo de encriptação nos metadata. O valor pode ser 0 (não criptografa) ou 1 (criptografa). Se esse parâmetro não for especificado, o atributo de encriptação do disco será o mesmo da fonte de dados. Se o disco não for criado a partir de uma fonte de dados, o disco não será criptografado por padrão. [full_clone] Se o disco for criado a partir de um snapshot e a clonagem vinculada precisar ser usada, defina esse parâmetro como 0. [hw:passthrough]
|
multiattach |
Não |
Boolean |
Se o disco é compartilhável. O valor pode ser true (compartilhável) ou false (não compartilhável). |
name |
Não |
String |
O nome do disco. Se você criar um disco, o valor do name será o nome do disco. Você pode inserir até 64 caracteres. Se você criar vários discos (o valor de count maior que 1), o sistema adicionará automaticamente um hífen seguido por um número incremental de quatro dígitos, como -0000, ao final de cada nome de disco. Por exemplo, os nomes dos discos podem ser volume-0001 e volume-0002. |
size |
Sim |
Integer |
O tamanho do disco, em GiB. As restrições são as seguintes:
|
snapshot_id |
Não |
String |
O ID do snapshot. Se esse parâmetro for especificado, o disco será criado a partir de um snapshot. |
volume_type |
Sim |
String |
O tipo de disco. O valor pode ser SATA, SAS, GPSSD, SSD, ESSD, GPSSD2 ou ESSD2.
Se o tipo de disco especificado não estiver disponível na AZ, o disco falhará ao ser criado.
NOTA:
Ao criar um disco a partir de um snapshot, verifique se o tipo de disco do novo disco é consistente com o do disco de origem do snapshot. Para obter detalhes sobre os tipos de disco, consulte Valores de enumeração:
|
tags |
Não |
Map<String,String> |
As informações sobre a tag de disco. |
iops |
Não |
Integer |
O IOPS configurado. Este parâmetro é obrigatório apenas quando um SSD de uso geral V2 ou um disco SSD extremo V2 é criado.
NOTA:
Para saber os intervalos de IOPS de discos SSD V2 de uso geral e SSD V2 extremo, consulte a tabela dados de desempenho do EVS em Tipos de disco e desempenho.
|
throughput |
Não |
Integer |
A taxa de transferência configurada, na unidade de MiB/s. Este parâmetro é obrigatório somente quando um disco SSD V2 de uso geral é criado.
NOTA:
Para saber o intervalo de taxa de transferência dos discos SSD V2 de uso geral, consulte [a tabela de dados de desempenho do EVS em Tipos de disco e desempenho.
|
Parâmetros de resposta
Código de status: 202
Parâmetro |
Tipo |
Descrição |
---|---|---|
job_id |
String |
O ID da tarefa. Esse parâmetro é retornado quando o disco é cobrado com base no pagamento por uso.
|
order_id |
String |
O ID do pedido. Este parâmetro é retornado quando o disco é cobrado anualmente/mensalmente.
|
volume_ids |
Array of strings |
Os IDs dos discos a serem criados.
|
Código de status: 400
Parâmetro |
Tipo |
Descrição |
---|---|---|
error |
Error object |
A mensagem de erro retornada se ocorrer um erro. Para obter detalhes, consulte Parâmetros no campo error. |
Parâmetro |
Tipo |
Descrição |
---|---|---|
code |
String |
O código de erro retornado se ocorrer um erro. Para os códigos de erro e seus significados, consulte Códigos de erro. |
message |
String |
A mensagem de erro retornada se ocorrer um erro. |
Exemplo de solicitações
-
Criar um disco EVS compartilhado e criptografado no pool de armazenamento 1b6198f2-20a6-5dcc-aa21-58c1af5dc488 (Implemente o disco na AZ 1 de CN-Hong Kong. Defina o nome do disco como EVS-Test, o tipo de dispositivo como SCSI, o tipo de disco como I/O alta e o tamanho como 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" } }
-
Criar um disco EVS compartilhado (Implemente o disco na AZ 1 da região CN-Hong Kong. Defina o nome do disco como EVS-Test2, digite SSD V2, IOPS para 5.000 e taxa de transferência para 500 MiB/s, tamanho para 100 GiB e período de assinatura para três meses. Adicione tags ao disco. Ative a renovação automática da assinatura. Você será cobrado pelo disco imediatamente após o pedido ser feito.)
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, } }
Exemplo de respostas
Código de status: 202
Accepted
{ "job_id" : "70a599e0-31e7-49b7-b260-868f441e862b", "volume_ids" : [ "e1fa3e72-8c92-4871-9152-bf66fef0afe9" ] }
Código de status: 400
Bad Request
{ "error" : { "message" : "XXXX", "code" : "XXX" } }
Código de amostra do SDK
O código de amostra do SDK é o seguinte.
Java
-
Criar um disco EVS compartilhado e criptografado no pool de armazenamento 1b6198f2-20a6-5dcc-aa21-58c1af5dc488 (Implemente o disco na AZ 1 de CN-Hong Kong. Defina o nome do disco como EVS-Test, o tipo de dispositivo como SCSI, o tipo de disco como I/O alta e o tamanho como 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()); } } }
-
Criar um disco EVS compartilhado (Implemente o disco na AZ 1 da região CN-Hong Kong. Defina o nome do disco como EVS-Test2, digite SSD V2, IOPS para 5.000 e taxa de transferência para 500 MiB/s, tamanho para 100 GiB e período de assinatura para três meses. Adicione tags ao disco. Ative a renovação automática da assinatura. Você será cobrado pelo disco imediatamente após o pedido ser feito.)
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
-
Criar um disco EVS compartilhado e criptografado no pool de armazenamento 1b6198f2-20a6-5dcc-aa21-58c1af5dc488 (Implemente o disco na AZ 1 de CN-Hong Kong. Defina o nome do disco como EVS-Test, o tipo de dispositivo como SCSI, o tipo de disco como I/O alta e o tamanho como 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)
-
Criar um disco EVS compartilhado (Implemente o disco na AZ 1 da região CN-Hong Kong. Defina o nome do disco como EVS-Test2, digite SSD V2, IOPS para 5.000 e taxa de transferência para 500 MiB/s, tamanho para 100 GiB e período de assinatura para três meses. Adicione tags ao disco. Ative a renovação automática da assinatura. Você será cobrado pelo disco imediatamente após o pedido ser feito.)
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
-
Criar um disco EVS compartilhado e criptografado no pool de armazenamento 1b6198f2-20a6-5dcc-aa21-58c1af5dc488 (Implemente o disco na AZ 1 de CN-Hong Kong. Defina o nome do disco como EVS-Test, o tipo de dispositivo como SCSI, o tipo de disco como I/O alta e o tamanho como 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) } }
-
Criar um disco EVS compartilhado (Implemente o disco na AZ 1 da região CN-Hong Kong. Defina o nome do disco como EVS-Test2, digite SSD V2, IOPS para 5.000 e taxa de transferência para 500 MiB/s, tamanho para 100 GiB e período de assinatura para três meses. Adicione tags ao disco. Ative a renovação automática da assinatura. Você será cobrado pelo disco imediatamente após o pedido ser feito.)
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) } }
Mais
Para obter o código de amostra do SDK de mais linguagens de programação, consulte a guia Código de amostra no API Explorer. O código de amostra do SDK pode ser gerado automaticamente.
Códigos de status
Código de status |
Descrição |
---|---|
202 |
Accepted |
400 |
Bad Request |
Códigos de erro
Consulte Códigos de erro.