Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Atualizado em 2024-09-10 GMT+08:00

Criação de uma instância

Função

Esta API é usada para criar uma instância

. Há suporte para os modos de cobrança de pagamento por uso e anual/mensal.

Método de chamada

Para obter detalhes, consulte Chamada de APIs.

URI

POST /v2/{engine}/{project_id}/instances

Tabela 1 Parâmetros de caminho

Parâmetro

Obrigatório

Tipo

Descrição

engine

Sim

String

Mecanismo de mensagens.

Padrão: kafka

project_id

Sim

String

ID do projeto. Para obter detalhes sobre como obtê-lo, consulte Obtenção de um ID de projeto.

Parâmetros de solicitação

Tabela 2 Parâmetros do corpo da solicitação

Parâmetro

Obrigatório

Tipo

Descrição

name

Sim

String

Nome da instância.

Um nome de instância pode conter de 4 a 64 caracteres. Apenas letras, dígitos, sublinhados (_) e hifens (-) são permitidos.

description

Não

String

Descrição de uma instância.

A descrição suporta até 1024 caracteres.

NOTA:

A barra invertida () e as aspas (") são caracteres especiais para mensagens JSON. Ao usar esses caracteres em um valor de parâmetro, adicione o caractere de escape () antes dos caracteres, por exemplo, \ e ".

engine

Sim

String

Mecanismo de mensagens. Valor: kafka.

engine_version

Sim

String

Versão do mecanismo de mensagens. Opções:

  • 1.1.0
  • 2.7
  • 3.x

broker_num

Sim

Integer

Número de corretores.

storage_space

Sim

Integer

Espaço de armazenamento de mensagens em GB. Intervalo de valores:

  • 300–300.000 GB para instâncias do Kafka c6.2u4g.cluster
  • 300–600.000 GB para instâncias do Kafka c6.4u8g.cluster
  • 300–1.500.000 GB para instâncias do Kafka c6.8u16g.cluster
  • 300–1.500.000 GB para instâncias do Kafka c6.12u24g.cluster
  • 300–1.500.000 GB para instâncias do Kafka c6.16u32g.cluster

access_user

Não

String

Este parâmetro é obrigatório quando ssl_enable é definido como true. Este parâmetro é inválido quando ssl_enable é definido como false.

Um nome de usuário deve começar com uma letra e apenas letras, dígitos, hifens (-) e sublinhados (_) são permitidos. Pode conter de 4 a 64 caracteres.

password

Não

String

Este parâmetro é obrigatório quando ssl_enable é definido como true. Este parâmetro é inválido quando ssl_enable é definido como false.

Senha da instância.

A senha deve atender aos seguintes requisitos de complexidade:

  • Pode conter de 8 a 32 caracteres.
  • Deve conter pelo menos três dos seguintes tipos de caracteres:
    • Letras minúsculas
    • Letras maiúsculas
    • Dígitos
    • Caracteres especiais incluem (`~!@#$ %^&*()-_=+|[{}]:'",<.>/?) e espaços, e não podem começar com um hífen (-).

vpc_id

Sim

String

ID de VPC

Para obtê-lo, faça logon no console da VPC e visualize o ID da VPC na página de detalhes da VPC.

security_group_id

Sim

String

ID do grupo de segurança ao qual a instância pertence.

Para obtê-lo, faça logon no console da VPC e visualize o ID do grupo de segurança na página de detalhes do grupo de segurança.

subnet_id

Sim

String

Informações da sub-rede.

Para obtê-lo, faça logon no console da VPC e clique na sub-rede de destino na página Subnets. Você pode visualizar o ID da rede na página exibida.

available_zones

Sim

Array of strings

ID da AZ onde os corretores de instância residem e que tem recursos disponíveis. Obtenha o ID da AZ consultando a Listagem de informações da AZ.

Esse parâmetro não pode ser vazio ou nulo.

Uma instância do Kafka pode ser implementada em 1 AZ ou pelo menos 3 AZs. Ao especificar as AZs para corretores, use vírgulas (,) para separar várias AZs.

product_id

Sim

String

ID do produto.

Você pode obter um ID de produto na Consulta à lista de especificações do produto.

kafka_manager_user

Não

String

Nome de usuário para efetuar logon no Kafka Manager. O nome de usuário consiste de 4 a 64 caracteres e pode conter letras, dígitos, hifens (-) e sublinhados (_).

kafka_manager_password

Não

String

Senha para efetuar logon no Kafka Manager.

A senha deve atender aos seguintes requisitos de complexidade:

  • Pode conter de 8 a 32 caracteres.
  • Deve conter pelo menos três dos seguintes tipos de caracteres:
    • Letras minúsculas
    • Letras maiúsculas
    • Dígitos
    • Caracteres especiais incluem (`~!@#$ %^&*()-_=+|[{}]:'",<.>/?) e espaços, e não podem começar com um hífen (-).

maintain_begin

Não

String

Hora em que a janela de manutenção é iniciada. O formato é HH:mm.

maintain_end

Não

String

Hora em que a janela de manutenção termina. O formato é HH:mm.

enable_publicip

Não

Boolean

Se permitir o acesso público. Por padrão, o acesso público está desativado.

  • true: ativado
  • false: desativado

publicip_id

Não

String

ID do EIP vinculado à instância.

Use vírgulas (,) para separar vários IDs de EIP.

Esse parâmetro é obrigatório se o acesso público estiver ativado (ou seja, enable_publicip estiver definido como true).

ssl_enable

Não

Boolean

Se ativar a criptografia SSL para acesso.

Essa configuração é corrigida assim que a instância é criada.

  • true: ativada
  • false: desativada

kafka_security_protocol

Não

String

Protocolo de segurança a ser usado após a ativação do SASL. Este parâmetro é obrigatório se a autenticação SASL estiver ativada (ssl_enable=true).

Se esse parâmetro for deixado em branco, a autenticação SASL_SSL será ativada por padrão.

Essa configuração é corrigida assim que a instância é criada.

  • SASL_SSL: os dados são criptografados com certificados SSL para transmissão de alta segurança.
  • SASL_PLAINTEXT: os dados são transmitidos em texto não criptografado com autenticação de nome de usuário e senha. Este protocolo usa o mecanismo SCRAM-SHA-512 e oferece alto desempenho.

sasl_enabled_mechanisms

Não

Array of strings

Mecanismo de autenticação a ser usado depois que o SASL for ativado. Este parâmetro é obrigatório se a autenticação SASL estiver ativada (ssl_enable=true).

Se este parâmetro for deixado em branco, a autenticação PLAIN será ativada por padrão.

Selecione ambos ou um dos seguintes mecanismos para a autenticação SASL. Opções:

  • PLAIN: verificação simples de nome de usuário e senha.
  • SCRAM-SHA-512: verificação da credencial do usuário, que é mais segura do que PLAIN.

retention_policy

Não

String

Ação a ser tomada quando o uso da memória atingir o limite de capacidade do disco.

O valor pode ser:

  • produce_reject: novas mensagens não podem ser criadas.
  • time_base: as mensagens mais antigas são excluídas.

ipv6_enable

Não

Boolean

Indica se deve ativar o IPv6. Esse parâmetro está disponível somente quando a VPC oferece suporte a IPv6.

Padrão: false

disk_encrypted_enable

Não

Boolean

Indica se a criptografia de disco deve ser ativada.

disk_encrypted_key

Não

String

Key de criptografia de disco. Se a criptografia de disco não estiver ativada, esse parâmetro será deixado em branco.

connector_enable

Não

Boolean

Se deve ativar o despejo de mensagens.

Por padrão, o despejo de mensagens está desativado.

enable_auto_topic

Não

Boolean

Se deve ativar a criação automática de tópicos.

  • true: ativada
  • false: desativada

Se estiver ativada, um tópico será criado automaticamente com 3 partições e 3 réplicas quando uma mensagem for criada ou recuperada de um tópico que não existe.

O valor padrão é false.

storage_spec_code

Sim

String

Especificação de I/O de armazenamento.

Intervalo de valores:

  • dms.physical.storage.high.v2: I/O alta
  • dms.physical.storage.ultra.v2: I/O ultra-alta

Para obter detalhes sobre como selecionar um tipo de disco, consulte "Tipos de disco e desempenho de disco" na Visão geral de serviço do EVS.

enterprise_project_id

Não

String

ID do projeto empresarial. Esse parâmetro é obrigatório para uma conta de projeto empresarial.

tags

Não

Array of TagEntity objects

Lista de tags.

arch_type

Não

String

Arquitetura da CPU. Atualmente com suporte: x86.

Intervalo de valores:

  • X86

vpc_client_plain

Não

Boolean

Acesso de texto não criptografado dentro da VPC.

bss_param

Não

BssParam object

Parâmetro relacionado ao modo de cobrança anual/mensal.

Se esse parâmetro for deixado em branco, o modo de cobrança é pagamento por uso por padrão. Se este parâmetro não for deixado em branco, o modo de cobrança é anual/mensal.

Tabela 3 TagEntity

Parâmetro

Obrigatório

Tipo

Descrição

key

Não

String

Chave de tag, que:

  • Deve ser especificada.
  • Deve ser exclusiva para a mesma instância.
  • Pode conter de 1 a 128 caracteres.
  • Pode conter letras, dígitos, espaços e caracteres especiais _.:=+-@
  • Não pode começar ou terminar com um espaço.

value

Não

String

Valor da tag.

  • Pode conter de 0 a 255 caracteres.
  • Pode conter letras, dígitos, espaços e caracteres especiais _.:=+-@
Tabela 4 BssParam

Parâmetro

Obrigatório

Tipo

Descrição

is_auto_renew

Não

Boolean

Se a renovação automática está ativada.

Opções:

  • true: a renovação automática está ativada.
  • false: a renovação automática não está ativada.

Por padrão, a renovação automática está desativada.

charging_mode

Não

String

Modo de cobrança.

Este parâmetro especifica um modo de pagamento.

Opções:

  • prePaid: cobrança anual/mensal.
  • postPaid: cobrança de pagamento por uso.

O valor padrão é postPaid.

is_auto_pay

Não

Boolean

Especifica se o pedido é pago automática ou manualmente.

Opções:

  • true: o pedido será pago automaticamente.
  • false: o pedido deve ser pago manualmente.

O modo de pagamento padrão é manual.

period_type

Não

String

Tipo de período de assinatura.

Opções:

  • month
  • year:

Este parâmetro é válido e obrigatório somente quando chargingMode estiver definido como prePaid. **

period_num

Não

Integer

Períodos assinados.

Opções:

  • Se periodType for month, o valor varia de 1 a 9.
  • Se periodType for year, o valor varia de 1 a 3.

Este parâmetro é válido e obrigatório apenas quando chargingMode está definido como prePaid.

Parâmetros de resposta

Código de status: 200

Tabela 5 Parâmetros do corpo de resposta

Parâmetro

Tipo

Descrição

instance_id

String

ID da instância.

Exemplo de solicitações

  • Criação de uma instância do Kafka de pagamento por uso cuja versão é 2.7, as especificações são 2 vCPUs | 4 GB x 3 e o espaço de armazenamento é de 300 GB
    POST https://{endpoint}/v2/{engine}/{project_id}/instances
    
    {
      "name" : "kafka-test",
      "description" : "",
      "engine" : "kafka",
      "engine_version" : "2.7",
      "storage_space" : 300,
      "vpc_id" : "********-9b4a-44c5-a964-************",
      "subnet_id" : "********-8fbf-4438-ba71-************",
      "security_group_id" : "********-e073-4aad-991f-************",
      "available_zones" : [ "********706d4c1fb0eb72f0********" ],
      "product_id" : "c6.2u4g.cluster",
      "ssl_enable" : true,
      "kafka_security_protocol" : "SASL_SSL",
      "sasl_enabled_mechanisms" : [ "SCRAM-SHA-512" ],
      "storage_spec_code" : "dms.physical.storage.ultra.v2",
      "broker_num" : 3,
      "arch_type" : "X86",
      "enterprise_project_id" : "0",
      "access_user" : "********",
      "password" : "********",
      "enable_publicip" : true,
      "tags" : [ {
        "key" : "aaa",
        "value" : "111"
      } ],
      "retention_policy" : "time_base",
      "disk_encrypted_enable" : true,
      "disk_encrypted_key" : "********-b953-4875-a743-************",
      "publicip_id" : "********-88fc-4a8c-86d0-************,********-16af-455d-8d54-************,********-3d69-4367-95ab-************",
      "vpc_client_plain" : true,
      "enable_auto_topic" : true
    }
  • Criação de uma instância anual/mensal do Kafka cuja versão é 2.7, as especificações são 2 vCPUs | 4 GB x 3 e o espaço de armazenamento é de 300 GB
    POST https://{endpoint}/v2/{engine}/{project_id}/instances
    
    {
      "name" : "kafka-test1",
      "description" : "",
      "engine" : "kafka",
      "engine_version" : "2.7",
      "storage_space" : 300,
      "vpc_id" : "********-9b4a-44c5-a964-************",
      "subnet_id" : "********-8fbf-4438-ba71-************",
      "security_group_id" : "********-e073-4aad-991f-************",
      "available_zones" : [ "********706d4c1fb0eb72f0********" ],
      "product_id" : "c6.2u4g.cluster",
      "ssl_enable" : true,
      "kafka_security_protocol" : "SASL_SSL",
      "sasl_enabled_mechanisms" : [ "SCRAM-SHA-512" ],
      "storage_spec_code" : "dms.physical.storage.ultra.v2",
      "broker_num" : 3,
      "arch_type" : "X86",
      "enterprise_project_id" : "0",
      "access_user" : "********",
      "password" : "********",
      "enable_publicip" : true,
      "tags" : [ {
        "key" : "aaa",
        "value" : "111"
      } ],
      "retention_policy" : "time_base",
      "publicip_id" : "********-88fc-4a8c-86d0-************,********-16af-455d-8d54-************,********-3d69-4367-95ab-************",
      "vpc_client_plain" : true,
      "enable_auto_topic" : true,
      "bss_param" : {
        "charging_mode" : "prePaid",
        "period_type" : "month",
        "period_num" : 1,
        "is_auto_pay" : true
      }
    }

Exemplo de respostas

Código de status: 200

Instância criada com sucesso.

{
  "instance_id" : "8959ab1c-7n1a-yyb1-a05t-93dfc361b32d"
}

Código de exemplo do SDK

O código de exemplo do SDK é o seguinte.

Java

  • Criação de uma instância do Kafka de pagamento por uso cuja versão é 2.7, as especificações são 2 vCPUs | 4 GB x 3 e o espaço de armazenamento é de 300 GB
     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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    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.kafka.v2.region.KafkaRegion;
    import com.huaweicloud.sdk.kafka.v2.*;
    import com.huaweicloud.sdk.kafka.v2.model.*;
    
    import java.util.List;
    import java.util.ArrayList;
    
    public class CreateInstanceByEngineSolution {
    
        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);
    
            KafkaClient client = KafkaClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(KafkaRegion.valueOf("<YOUR REGION>"))
                    .build();
            CreateInstanceByEngineRequest request = new CreateInstanceByEngineRequest();
            request.withEngine(CreateInstanceByEngineRequest.EngineEnum.fromValue("{engine}"));
            CreateInstanceByEngineReq body = new CreateInstanceByEngineReq();
            List<TagEntity> listbodyTags = new ArrayList<>();
            listbodyTags.add(
                new TagEntity()
                    .withKey("aaa")
                    .withValue("111")
            );
            List<CreateInstanceByEngineReq.SaslEnabledMechanismsEnum> listbodySaslEnabledMechanisms = new ArrayList<>();
            listbodySaslEnabledMechanisms.add(CreateInstanceByEngineReq.SaslEnabledMechanismsEnum.fromValue("SCRAM-SHA-512"));
            List<String> listbodyAvailableZones = new ArrayList<>();
            listbodyAvailableZones.add("********706d4c1fb0eb72f0********");
            body.withVpcClientPlain(true);
            body.withArchType("X86");
            body.withTags(listbodyTags);
            body.withEnterpriseProjectId("0");
            body.withStorageSpecCode(CreateInstanceByEngineReq.StorageSpecCodeEnum.fromValue("dms.physical.storage.ultra.v2"));
            body.withEnableAutoTopic(true);
            body.withDiskEncryptedKey("********-b953-4875-a743-************");
            body.withDiskEncryptedEnable(true);
            body.withRetentionPolicy(CreateInstanceByEngineReq.RetentionPolicyEnum.fromValue("time_base"));
            body.withSaslEnabledMechanisms(listbodySaslEnabledMechanisms);
            body.withKafkaSecurityProtocol("SASL_SSL");
            body.withSslEnable(true);
            body.withPublicipId("********-88fc-4a8c-86d0-************,********-16af-455d-8d54-************,********-3d69-4367-95ab-************");
            body.withEnablePublicip(true);
            body.withProductId("c6.2u4g.cluster");
            body.withAvailableZones(listbodyAvailableZones);
            body.withSubnetId("********-8fbf-4438-ba71-************");
            body.withSecurityGroupId("********-e073-4aad-991f-************");
            body.withVpcId("********-9b4a-44c5-a964-************");
            body.withPassword("********");
            body.withAccessUser("********");
            body.withStorageSpace(300);
            body.withBrokerNum(3);
            body.withEngineVersion("2.7");
            body.withEngine(CreateInstanceByEngineReq.EngineEnum.fromValue("kafka"));
            body.withDescription("");
            body.withName("kafka-test");
            request.withBody(body);
            try {
                CreateInstanceByEngineResponse response = client.createInstanceByEngine(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());
            }
        }
    }
    
  • Criação de uma instância anual/mensal do Kafka cuja versão é 2.7, as especificações são 2 vCPUs | 4 GB x 3 e o espaço de armazenamento é de 300 GB
     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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    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.kafka.v2.region.KafkaRegion;
    import com.huaweicloud.sdk.kafka.v2.*;
    import com.huaweicloud.sdk.kafka.v2.model.*;
    
    import java.util.List;
    import java.util.ArrayList;
    
    public class CreateInstanceByEngineSolution {
    
        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);
    
            KafkaClient client = KafkaClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(KafkaRegion.valueOf("<YOUR REGION>"))
                    .build();
            CreateInstanceByEngineRequest request = new CreateInstanceByEngineRequest();
            request.withEngine(CreateInstanceByEngineRequest.EngineEnum.fromValue("{engine}"));
            CreateInstanceByEngineReq body = new CreateInstanceByEngineReq();
            BssParam bssParambody = new BssParam();
            bssParambody.withChargingMode(BssParam.ChargingModeEnum.fromValue("prePaid"))
                .withIsAutoPay(true)
                .withPeriodType(BssParam.PeriodTypeEnum.fromValue("month"))
                .withPeriodNum(1);
            List<TagEntity> listbodyTags = new ArrayList<>();
            listbodyTags.add(
                new TagEntity()
                    .withKey("aaa")
                    .withValue("111")
            );
            List<CreateInstanceByEngineReq.SaslEnabledMechanismsEnum> listbodySaslEnabledMechanisms = new ArrayList<>();
            listbodySaslEnabledMechanisms.add(CreateInstanceByEngineReq.SaslEnabledMechanismsEnum.fromValue("SCRAM-SHA-512"));
            List<String> listbodyAvailableZones = new ArrayList<>();
            listbodyAvailableZones.add("********706d4c1fb0eb72f0********");
            body.withBssParam(bssParambody);
            body.withVpcClientPlain(true);
            body.withArchType("X86");
            body.withTags(listbodyTags);
            body.withEnterpriseProjectId("0");
            body.withStorageSpecCode(CreateInstanceByEngineReq.StorageSpecCodeEnum.fromValue("dms.physical.storage.ultra.v2"));
            body.withEnableAutoTopic(true);
            body.withRetentionPolicy(CreateInstanceByEngineReq.RetentionPolicyEnum.fromValue("time_base"));
            body.withSaslEnabledMechanisms(listbodySaslEnabledMechanisms);
            body.withKafkaSecurityProtocol("SASL_SSL");
            body.withSslEnable(true);
            body.withPublicipId("********-88fc-4a8c-86d0-************,********-16af-455d-8d54-************,********-3d69-4367-95ab-************");
            body.withEnablePublicip(true);
            body.withProductId("c6.2u4g.cluster");
            body.withAvailableZones(listbodyAvailableZones);
            body.withSubnetId("********-8fbf-4438-ba71-************");
            body.withSecurityGroupId("********-e073-4aad-991f-************");
            body.withVpcId("********-9b4a-44c5-a964-************");
            body.withPassword("********");
            body.withAccessUser("********");
            body.withStorageSpace(300);
            body.withBrokerNum(3);
            body.withEngineVersion("2.7");
            body.withEngine(CreateInstanceByEngineReq.EngineEnum.fromValue("kafka"));
            body.withDescription("");
            body.withName("kafka-test1");
            request.withBody(body);
            try {
                CreateInstanceByEngineResponse response = client.createInstanceByEngine(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

  • Criação de uma instância do Kafka de pagamento por uso cuja versão é 2.7, as especificações são 2 vCPUs | 4 GB x 3 e o espaço de armazenamento é de 300 GB
     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
    # coding: utf-8
    
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkkafka.v2.region.kafka_region import KafkaRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkkafka.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")
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId) \
    
        client = KafkaClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(KafkaRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = CreateInstanceByEngineRequest()
            request.engine = "{engine}"
            listTagsbody = [
                TagEntity(
                    key="aaa",
                    value="111"
                )
            ]
            listSaslEnabledMechanismsbody = [
                "SCRAM-SHA-512"
            ]
            listAvailableZonesbody = [
                "********706d4c1fb0eb72f0********"
            ]
            request.body = CreateInstanceByEngineReq(
                vpc_client_plain=True,
                arch_type="X86",
                tags=listTagsbody,
                enterprise_project_id="0",
                storage_spec_code="dms.physical.storage.ultra.v2",
                enable_auto_topic=True,
                disk_encrypted_key="********-b953-4875-a743-************",
                disk_encrypted_enable=True,
                retention_policy="time_base",
                sasl_enabled_mechanisms=listSaslEnabledMechanismsbody,
                kafka_security_protocol="SASL_SSL",
                ssl_enable=True,
                publicip_id="********-88fc-4a8c-86d0-************,********-16af-455d-8d54-************,********-3d69-4367-95ab-************",
                enable_publicip=True,
                product_id="c6.2u4g.cluster",
                available_zones=listAvailableZonesbody,
                subnet_id="********-8fbf-4438-ba71-************",
                security_group_id="********-e073-4aad-991f-************",
                vpc_id="********-9b4a-44c5-a964-************",
                password="********",
                access_user="********",
                storage_space=300,
                broker_num=3,
                engine_version="2.7",
                engine="kafka",
                description="",
                name="kafka-test"
            )
            response = client.create_instance_by_engine(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • Criação de uma instância anual/mensal do Kafka cuja versão é 2.7, as especificações são 2 vCPUs | 4 GB x 3 e o espaço de armazenamento é de 300 GB
     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
    73
    74
    75
    76
    77
    # coding: utf-8
    
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdkkafka.v2.region.kafka_region import KafkaRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdkkafka.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")
        projectId = "{project_id}"
    
        credentials = BasicCredentials(ak, sk, projectId) \
    
        client = KafkaClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(KafkaRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = CreateInstanceByEngineRequest()
            request.engine = "{engine}"
            bssParambody = BssParam(
                charging_mode="prePaid",
                is_auto_pay=True,
                period_type="month",
                period_num=1
            )
            listTagsbody = [
                TagEntity(
                    key="aaa",
                    value="111"
                )
            ]
            listSaslEnabledMechanismsbody = [
                "SCRAM-SHA-512"
            ]
            listAvailableZonesbody = [
                "********706d4c1fb0eb72f0********"
            ]
            request.body = CreateInstanceByEngineReq(
                bss_param=bssParambody,
                vpc_client_plain=True,
                arch_type="X86",
                tags=listTagsbody,
                enterprise_project_id="0",
                storage_spec_code="dms.physical.storage.ultra.v2",
                enable_auto_topic=True,
                retention_policy="time_base",
                sasl_enabled_mechanisms=listSaslEnabledMechanismsbody,
                kafka_security_protocol="SASL_SSL",
                ssl_enable=True,
                publicip_id="********-88fc-4a8c-86d0-************,********-16af-455d-8d54-************,********-3d69-4367-95ab-************",
                enable_publicip=True,
                product_id="c6.2u4g.cluster",
                available_zones=listAvailableZonesbody,
                subnet_id="********-8fbf-4438-ba71-************",
                security_group_id="********-e073-4aad-991f-************",
                vpc_id="********-9b4a-44c5-a964-************",
                password="********",
                access_user="********",
                storage_space=300,
                broker_num=3,
                engine_version="2.7",
                engine="kafka",
                description="",
                name="kafka-test1"
            )
            response = client.create_instance_by_engine(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

  • Criação de uma instância do Kafka de pagamento por uso cuja versão é 2.7, as especificações são 2 vCPUs | 4 GB x 3 e o espaço de armazenamento é de 300 GB
     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
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        kafka "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/kafka/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/kafka/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/kafka/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 := kafka.NewKafkaClient(
            kafka.KafkaClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.CreateInstanceByEngineRequest{}
    	request.Engine = model.GetCreateInstanceByEngineRequestEngineEnum().ENGINE
    	keyTags:= "aaa"
    	valueTags:= "111"
    	var listTagsbody = []model.TagEntity{
            {
                Key: &keyTags,
                Value: &valueTags,
            },
        }
    	var listSaslEnabledMechanismsbody = []model.CreateInstanceByEngineReqSaslEnabledMechanisms{
            model.GetCreateInstanceByEngineReqSaslEnabledMechanismsEnum().SCRAM_SHA_512,
        }
    	var listAvailableZonesbody = []string{
            "********706d4c1fb0eb72f0********",
        }
    	vpcClientPlainCreateInstanceByEngineReq:= true
    	archTypeCreateInstanceByEngineReq:= "X86"
    	enterpriseProjectIdCreateInstanceByEngineReq:= "0"
    	enableAutoTopicCreateInstanceByEngineReq:= true
    	diskEncryptedKeyCreateInstanceByEngineReq:= "********-b953-4875-a743-************"
    	diskEncryptedEnableCreateInstanceByEngineReq:= true
    	retentionPolicyCreateInstanceByEngineReq:= model.GetCreateInstanceByEngineReqRetentionPolicyEnum().TIME_BASE
    	kafkaSecurityProtocolCreateInstanceByEngineReq:= "SASL_SSL"
    	sslEnableCreateInstanceByEngineReq:= true
    	publicipIdCreateInstanceByEngineReq:= "********-88fc-4a8c-86d0-************,********-16af-455d-8d54-************,********-3d69-4367-95ab-************"
    	enablePublicipCreateInstanceByEngineReq:= true
    	passwordCreateInstanceByEngineReq:= "********"
    	accessUserCreateInstanceByEngineReq:= "********"
    	descriptionCreateInstanceByEngineReq:= ""
    	request.Body = &model.CreateInstanceByEngineReq{
    		VpcClientPlain: &vpcClientPlainCreateInstanceByEngineReq,
    		ArchType: &archTypeCreateInstanceByEngineReq,
    		Tags: &listTagsbody,
    		EnterpriseProjectId: &enterpriseProjectIdCreateInstanceByEngineReq,
    		StorageSpecCode: model.GetCreateInstanceByEngineReqStorageSpecCodeEnum().DMS_PHYSICAL_STORAGE_ULTRA,
    		EnableAutoTopic: &enableAutoTopicCreateInstanceByEngineReq,
    		DiskEncryptedKey: &diskEncryptedKeyCreateInstanceByEngineReq,
    		DiskEncryptedEnable: &diskEncryptedEnableCreateInstanceByEngineReq,
    		RetentionPolicy: &retentionPolicyCreateInstanceByEngineReq,
    		SaslEnabledMechanisms: &listSaslEnabledMechanismsbody,
    		KafkaSecurityProtocol: &kafkaSecurityProtocolCreateInstanceByEngineReq,
    		SslEnable: &sslEnableCreateInstanceByEngineReq,
    		PublicipId: &publicipIdCreateInstanceByEngineReq,
    		EnablePublicip: &enablePublicipCreateInstanceByEngineReq,
    		ProductId: "c6.2u4g.cluster",
    		AvailableZones: listAvailableZonesbody,
    		SubnetId: "********-8fbf-4438-ba71-************",
    		SecurityGroupId: "********-e073-4aad-991f-************",
    		VpcId: "********-9b4a-44c5-a964-************",
    		Password: &passwordCreateInstanceByEngineReq,
    		AccessUser: &accessUserCreateInstanceByEngineReq,
    		StorageSpace: int32(300),
    		BrokerNum: int32(3),
    		EngineVersion: "2.7",
    		Engine: model.GetCreateInstanceByEngineReqEngineEnum().KAFKA,
    		Description: &descriptionCreateInstanceByEngineReq,
    		Name: "kafka-test",
    	}
    	response, err := client.CreateInstanceByEngine(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • Criação de uma instância anual/mensal do Kafka cuja versão é 2.7, as especificações são 2 vCPUs | 4 GB x 3 e o espaço de armazenamento é de 300 GB
      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
     73
     74
     75
     76
     77
     78
     79
     80
     81
     82
     83
     84
     85
     86
     87
     88
     89
     90
     91
     92
     93
     94
     95
     96
     97
     98
     99
    100
    101
    102
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        kafka "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/kafka/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/kafka/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/kafka/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 := kafka.NewKafkaClient(
            kafka.KafkaClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.CreateInstanceByEngineRequest{}
    	request.Engine = model.GetCreateInstanceByEngineRequestEngineEnum().ENGINE
    	chargingModeBssParam:= model.GetBssParamChargingModeEnum().PRE_PAID
    	isAutoPayBssParam:= true
    	periodTypeBssParam:= model.GetBssParamPeriodTypeEnum().MONTH
    	periodNumBssParam:= int32(1)
    	bssParambody := &model.BssParam{
    		ChargingMode: &chargingModeBssParam,
    		IsAutoPay: &isAutoPayBssParam,
    		PeriodType: &periodTypeBssParam,
    		PeriodNum: &periodNumBssParam,
    	}
    	keyTags:= "aaa"
    	valueTags:= "111"
    	var listTagsbody = []model.TagEntity{
            {
                Key: &keyTags,
                Value: &valueTags,
            },
        }
    	var listSaslEnabledMechanismsbody = []model.CreateInstanceByEngineReqSaslEnabledMechanisms{
            model.GetCreateInstanceByEngineReqSaslEnabledMechanismsEnum().SCRAM_SHA_512,
        }
    	var listAvailableZonesbody = []string{
            "********706d4c1fb0eb72f0********",
        }
    	vpcClientPlainCreateInstanceByEngineReq:= true
    	archTypeCreateInstanceByEngineReq:= "X86"
    	enterpriseProjectIdCreateInstanceByEngineReq:= "0"
    	enableAutoTopicCreateInstanceByEngineReq:= true
    	retentionPolicyCreateInstanceByEngineReq:= model.GetCreateInstanceByEngineReqRetentionPolicyEnum().TIME_BASE
    	kafkaSecurityProtocolCreateInstanceByEngineReq:= "SASL_SSL"
    	sslEnableCreateInstanceByEngineReq:= true
    	publicipIdCreateInstanceByEngineReq:= "********-88fc-4a8c-86d0-************,********-16af-455d-8d54-************,********-3d69-4367-95ab-************"
    	enablePublicipCreateInstanceByEngineReq:= true
    	passwordCreateInstanceByEngineReq:= "********"
    	accessUserCreateInstanceByEngineReq:= "********"
    	descriptionCreateInstanceByEngineReq:= ""
    	request.Body = &model.CreateInstanceByEngineReq{
    		BssParam: bssParambody,
    		VpcClientPlain: &vpcClientPlainCreateInstanceByEngineReq,
    		ArchType: &archTypeCreateInstanceByEngineReq,
    		Tags: &listTagsbody,
    		EnterpriseProjectId: &enterpriseProjectIdCreateInstanceByEngineReq,
    		StorageSpecCode: model.GetCreateInstanceByEngineReqStorageSpecCodeEnum().DMS_PHYSICAL_STORAGE_ULTRA,
    		EnableAutoTopic: &enableAutoTopicCreateInstanceByEngineReq,
    		RetentionPolicy: &retentionPolicyCreateInstanceByEngineReq,
    		SaslEnabledMechanisms: &listSaslEnabledMechanismsbody,
    		KafkaSecurityProtocol: &kafkaSecurityProtocolCreateInstanceByEngineReq,
    		SslEnable: &sslEnableCreateInstanceByEngineReq,
    		PublicipId: &publicipIdCreateInstanceByEngineReq,
    		EnablePublicip: &enablePublicipCreateInstanceByEngineReq,
    		ProductId: "c6.2u4g.cluster",
    		AvailableZones: listAvailableZonesbody,
    		SubnetId: "********-8fbf-4438-ba71-************",
    		SecurityGroupId: "********-e073-4aad-991f-************",
    		VpcId: "********-9b4a-44c5-a964-************",
    		Password: &passwordCreateInstanceByEngineReq,
    		AccessUser: &accessUserCreateInstanceByEngineReq,
    		StorageSpace: int32(300),
    		BrokerNum: int32(3),
    		EngineVersion: "2.7",
    		Engine: model.GetCreateInstanceByEngineReqEngineEnum().KAFKA,
    		Description: &descriptionCreateInstanceByEngineReq,
    		Name: "kafka-test1",
    	}
    	response, err := client.CreateInstanceByEngine(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    

Mais

Para obter o código de exemplo do SDK de mais linguagens de programação, consulte a guia Código de exemplo no API Explorer. O código de exemplo do SDK pode ser gerado automaticamente.

Códigos de status

Código de status

Descrição

200

Instância criada com sucesso.

Códigos de erro

Consulte Códigos de erro.