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 2022-11-08 GMT+08:00

Criação de um ECS (Pay-per-Use)

Função

Essa API é usada para criar um ou os mais ECS faturados no modo de pagamento por uso.

Esta é uma API assíncrona. Depois que a solicitação de criação do ECS for emitida, o sistema retornará job_id. A criação do ECS ainda está em andamento. Portanto, você precisa chamar a API descrita em Consulta do status de execução da tarefa para obter o status da tarefa. Quando o status muda para SUCCESS, o ECS é criado.

Saiba como autorizar e autenticar essa API antes de usá-la.

Antes de chamar essa API, você precisa obter Regiões e Endpoints.

Fazer login em um ECS pode ser autenticado usando um par de chaves ou senha. Para fins de segurança, é aconselhável usar a autenticação de par de chaves.

  • Par de chaves

    Um par de chaves é usado para autenticação de login de ECS.

    Método de chamada das API: Use o campo key_name para especificar o arquivo de chave usado para fazer login no ECS.

  • senha

    Se você escolher a senha inicial para autenticação em um ECS, poderá fazer login no ECS usando o nome de usuário e sua senha inicial. A senha inicial do usuário root é usada para autenticação no Linux, enquanto a do usuário Administrator é usada para autenticação no Windows.

    Método de chamada das API: Use o campo adminPass para especificar a senha de login inicial da conta de administrador. Para obter detalhes sobre como usar o campo adminPass, consulte Tabela 3. Se uma senha criptografada for necessária para fazer login em um ECS Linux criado usando uma imagem com o Cloud-Init instalado, você poderá usar o campo user_data para injetar a senha. Para mais detalhes, consulte Tabela 3.

    Se o campo user_data for especificado para um ECS Linux criado usando uma imagem com o Cloud-Init instalado, o campo adminPass se tornará inválido.

  • Palavra-passe da imagem

    Se você usar uma imagem privada do Linux para criar um ECS, poderá usar a senha da imagem para autenticação de login.

    Método de chamada das API: Se a senha da imagem for usada, os campos key_name e adminPass não precisam ser especificados.

URI

POST /v1/{project_id}/cloudservers

Tabela 1 descreve os parâmetros no URI.
Tabela 1 Descrição do parâmetro

Parâmetro

Obrigatório

Descrição

project_id

Sim

Especifica a ID do projeto.

Para obter detalhes de como conseguir o ID de domínio, consulte Obtenção de um ID de projeto.

Solicitação

Parâmetros de solicitação

Tabela 2 descreve os parâmetros de solicitação.

Tabela 2 Parâmetros de solicitação

Parâmetro

Obrigatório

Tipo

Descrição

server

Sim

Object

Especifica as informações de ECS. Para mais detalhes, consulte Tabela 3.

dry_run

Não

Boolean

Especifica se deve verificar a solicitação e criar o ECS.

  • true: indica que somente a solicitação é enviada, mas o ECS não será criado. Os itens de verificação incluem parâmetros obrigatórios e formato de solicitação.
    • Se a verificação falhar, o sistema retornará um erro.
    • Se a verificação for bem-sucedida, o sistema retornará o código de status 202.
  • false: indica que a solicitação é enviada e o ECS será criado se o resultado da verificação for o esperado.
Tabela 3 Parâmetros para a criação de um ECS

Parâmetro

Obrigatório

Tipo

Descrição

imageRef

Sim

String

Especifica a ID da imagem do sistema usada para criar os ECS. O ID está no formato Universally Unique Identifier (UUID).

flavorRef

Sim

String

Especifica o ID de variante do ECS a ser criado.

Para obter detalhes sobre as variações que foram lançadas, consulte "ECS Specifications and Types" no Guia de usuário do Elastic Cloud Server.

name

Sim

String

Especifica o nome de ECS.

Para obter detalhes, consulte Como posso definir nomes de ECS seqüenciais ao criar vários ECSs?

Requisitos de valor:

  • Consiste de 1 a 64 caracteres, incluindo letras, dígitos, sublinhados (_), hífens, pontos (.).
  • Se mais de um ECS for criado (o valor da count for 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 ECS. Se você especificar um número, o nome do primeiro novo ECS começará a partir do número especificado. Nesse caso, o nome de ECS contém no máximo 59 caracteres.
    NOTA:

    Os nomes de host de ECS estão em conformidade com as regras de nomeação RFC952 e RFC1123. Recomenda-se configurar nomes de host usando dígitos, letras (sensíveis a maiúsculas e minúsculas) e (-) de hífens. Os sublinhados (_) são convertidos em hífens (-) por padrão.

user_data

Não

String

Especifica os dados do usuário a serem injetados no ECS durante a criação. Texto e arquivos de texto podem ser injetados.

NOTA:
  • O conteúdo de user_data deve ser codificado com base64.
  • O tamanho máximo do conteúdo a ser injetado (antes da codificação) é de 32 KB.

Para obter mais informações sobre os dados do usuário a serem injetados, consulte Injetando dados do usuário nos ECS no Guia de usuário do Elastic Cloud Server.

Exemplos

Antes da codificação base64:

  • Linux
    #! /bin/bash
    echo user_test >> /home/user.txt
  • janelas
    rem cmd
    echo 111 > c:\aaa.txt

Após a codificação base64:

  • Linux
    IyEgL2Jpbi9iYXNoDQplY2hvIHVzZXJfdGVzdCAmZ3Q7Jmd0OyAvaG9tZS91c2VyLnR4dA==
  • janelas
    cmVtIGNtZAplY2hvIDExMSA+IGM6XGFhYS50eHQ=

adminPass

Não

String

Especifica a senha de login inicial da conta de administrador para fazer login em um ECS usando autenticação de senha. O administrador do Linux é root e o administrador do Windows é Administrator.

Requisitos de complexidade de senha:
  • Consiste de 8 a 26 caracteres.
  • A senha deve conter pelo menos três dos seguintes tipos de caracteres: letras maiúsculas, minúsculas, dígitos e caracteres especiais (!@$%^-_=+[{}]:,./?~#*).
  • A senha não pode conter o nome de usuário ou o nome de usuário ao contrário.
  • A senha do Windows ECS não pode conter o nome de usuário, o nome de usuário inverso ou mais de dois caracteres consecutivos no nome de usuário.

key_name

Não

String

Especifica o nome da chave SSH usada para efetuar login no ECS.

Chaves podem ser criadas usando a API de criação de chave (Criação e importação de um par de chaves SSH) ou obtidas usando a API de consulta de chave SSH (Consulta de pares de chaves SSH).

vpcid

Sim

String

Especifica o ID da VPC à qual o ECS pertence. O valor está no formato do UUID.

Você pode obter o ID da VPC no console de gerenciamento ou seguindo as instruções fornecidas em "Consultar as VPC" na Referência de API do Virtual Private Cloud.

nics

Sim

Array of objects

Especifica as informações da NIC do ECS. Para mais detalhes, consulte Tabela 4.

Limitações:

  • A rede da NIC primária deve pertencer à VPC especificada pelo vpcid. Quando você cria as NIC, a primeira NIC especificada é a NIC primária.
  • O valor deve ser o ID da sub-rede criada na VPC especificada pelo vpcid e no formato do UUID.
  • Um máximo de 12 NICs podem ser anexados a um ECS.
  • O número máximo das NIC varia dependendo das especificações do ECS. Para obter detalhes, consulte Especificações do ECS.

publicip

Não

Object

Especifica o EIP do ECS, que pode ser configurado das seguintes maneiras:

  • Não use: Nesse caso, esse parâmetro não está disponível.
  • Atribuir automaticamente: O sistema atribuirá automaticamente um EIP ao seu ECS.
  • Usar existente: Você precisa especificar um EIP existente para seu ECS.

Para mais detalhes, consulte Tabela 1.

count

Não

Integer

Especifica o número dos ECS a serem criados.

Limitações:

  • Se este parâmetro não for especificado, o valor padrão é 1.
  • Se a quota for suficiente, o valor máximo é de 500.

root_volume

Sim

Object

Especifica as configurações de disco do sistema de ECS.

Para mais detalhes, consulte Tabela 5.

data_volumes

Não

Array of objects

Especifica as configurações do disco de dados de ECS. Cada estrutura de dados representa um disco de dados a ser criado.

Um ECS pode ser anexado com um máximo de 59 discos de dados (certas sabores suportam apenas 23 discos de dados).

Para mais detalhes, consulte Tabela 6.

security_groups

Não

Array of objects

Especifica os grupos de segurança do ECS.

Se esse parâmetro for deixado em branco, o grupo de segurança padrão será vinculado ao ECS por padrão.

Para mais detalhes, consulte Tabela 2.

availability_zone

Não

String

Especifica o nome da AZ onde o ECS está localizado.

NOTA:

Se este parâmetro não for especificado, o sistema seleciona automaticamente uma AZ.

Você pode obter o valor desse parâmetro fazendo referência a Consulta das AZ ou Regiões e Endpoints.

batch_create_in_multi_az

Não

Boolean

Especifica se os ECSs podem ser implantados nas várias AZ aleatórias.

  • true: Os ECSs criados em lote são implantados nas várias AZ.
  • false: Os ECSs criados em lote são implantados em uma única AZ.

Este parâmetro é válido quando availability_zone é deixado em branco.

extendparam

Não

Object

Fornece as informações suplementares sobre o ECS a ser criado.

Para mais detalhes, consulte Tabela 8.

metadata

Não

Map<String,String>

Especifica os metadados do ECS a ser criado.

Você pode usar metadados para personalizar pares de chave-valor.

NOTA:
  • Um máximo de 10 pares de chave-valor podem ser injetados.
  • Uma chave de metadados consiste de 1 a 255 caracteres e contém apenas letras maiúsculas, minúsculas, dígitos, hífens (-) sublinhados: dois-pontos (:), e pontos decimais (.).
  • Um valor de metadados consiste em um máximo de 255 caracteres.

Para obter detalhes sobre pares chave-valor reservados, consulte Tabela 11.

os:scheduler_hints

Não

Object

Programações dos ECS, por exemplo, configurando um grupo de ECS.

Para mais detalhes, consulte Tabela 12.

tags

Não

Array of strings

Especifica tags de ECS.

Uma tag está no formato de "key.value", onde os comprimentos máximos de key e value são 36 e 43 caracteres, respectivamente.

Ao adicionar uma tag a um ECS, verifique se a tag está em conformidade com os seguintes requisitos:

NOTA:
  • Quando você cria os ECS, um ECS suporta até 10 tags.

description

Não

String

Especifica a descrição do ECS, que está vazia por padrão.

  • Pode conter no máximo 85 caracteres.
  • Não pode conter um colchete angular < ou >.

auto_terminate_time

Não

String

Este parâmetro não é suportado agora e estará disponível em breve.

Especifica a hora em que os recursos serão liberados automaticamente.

O valor está no formato "aaaa-MM-ddTHH:mm:ssZ" em UTC+0 e está em conformidade com a norma ISO8601.

Se o valor de segundo (ss) não for 00, o sistema automaticamente define o valor atual de minuto (mm).

O tempo mínimo de liberação é meia hora mais tarde do que o tempo atual.

O tempo máximo de liberação é de três anos mais tarde do que o tempo atual.

Por exemplo, defina o valor como 2020-09-25T12:05:00Z.

NOTA:

Essa função é suportada apenas pelos ECS pagos por uso.

Tabela 4 Descrição do campo nics

Parâmetro

Obrigatório

Tipo

Descrição

subnet_id

Sim

String

Especifica a sub-rede do ECS.

O valor deve ser o ID da sub-rede criada na VPC especificada pelo vpcid e no formato do UUID.

Você pode obter o valor do parâmetro chamando uma API da VPC para Consulta de detalhes da sub-rede.

ip_address

Não

String

Especifica o endereço IP da NIC usada pelo ECS. O valor é um endereço IPv4.

Limitações:

  • Se esse parâmetro for deixado em branco ou definido como "”, um endereço IP não utilizado na sub-rede será atribuído automaticamente como endereço IP da NIC.
  • Se este parâmetro for especificado, o seu valor tem de ser um endereço IP não utilizado no segmento de rede da sub-rede.
Tabela 5 descrição do campo root_volume

Parâmetro

Obrigatório

Tipo

Descrição

volumetype

Sim

String

Especifica o tipo de disco do sistema de ECS, que deve ser um dos tipos de disco disponíveis.

NOTA:

size

Não

Integer

Especifica o tamanho do disco do sistema, em GB. O valor varia de 1 a 1024.

Limitações:

  • O tamanho do disco do sistema deve ser maior ou igual ao tamanho mínimo do disco do sistema suportado pela imagem (atributo min_disk da imagem).
  • Se esse parâmetro não for especificado ou estiver definido como 0, o tamanho padrão do disco do sistema é o valor mínimo do disco do sistema na imagem (atributo min_disk da imagem).
    NOTA:

    Para obter o tamanho mínimo do disco do sistema (min_disk) de uma imagem, clique na imagem no console de gerenciamento para ver seus detalhes. Como alternativa, chame a API OpenStack nativa para consultar detalhes sobre uma imagem. Para obter detalhes, consulte "Consultar detalhes da imagem (OpenStack nativo)" na Referência de API Image Management Service.

extendparam

Não

Object

Fornece as informações do disco.

Para mais detalhes, consulte Descrição do Campo extendparam para Criação de Discos.

hw:passthrough

Não

Boolean

Especifica o tipo de dispositivo dos discos EVS a serem criados.
  • Se esse parâmetro for definido como false, os discos VBD serão criados.
  • Se esse parâmetro for definido como true, os discos SCSI serão criados.
  • Se esse parâmetro não for especificado ou definido como um caractere não booleano, os discos VBD serão criados por padrão.
NOTA:

Se esse parâmetro for definido como true ou não especificado para ECSs que executam variações SDI (incluindo c6x_4, c6ie_4 e c7), os discos SCSI serão criados.

Tabela 6 descrição do campo data_volumes

Parâmetro

Obrigatório

Tipo

Descrição

volumetype

Sim

String

Especifica o tipo do disco de dados de ECS, que deve ser um dos tipos de disco disponíveis.

NOTA:

size

Sim

Integer

Especifica o tamanho do disco de dados, em GB. O valor varia de 0 a 32768.

Quando utilizar uma imagem de disco de dados para criar um disco de dados, certifique-se de que o valor deste parâmetro é maior ou igual ao tamanho do disco de dados de origem que é utilizado para criar a imagem de disco de dados.

shareable

Não

Boolean

Especifica se o disco é compartilhado. O valor pode ser true (especifica um disco compartilhado) ou false (um disco EVS comum).

NOTA:

Este campo foi descartado. Use multiattach.

multiattach

Não

Boolean

Especifica as informações do disco compartilhado.

  • true: indica que o disco criado é um disco compartilhado.
  • false: indica que o disco criado é um disco EVS comum.
NOTA:

O campo shareable não é mais usado. Se ambos shareable e multiattach deve ser usado, certifique-se de que os valores dos dois campos são os mesmos. Se este parâmetro não for especificado, os discos EVS comuns são criados por padrão.

hw:passthrough

Não

Boolean

Especifica o tipo de dispositivo dos discos EVS a serem criados.
  • Se esse parâmetro for definido como false, os discos VBD serão criados.
  • Se esse parâmetro for definido como true, os discos SCSI serão criados.
  • Se esse parâmetro não for especificado ou definido como um caractere não booleano, os discos VBD serão criados por padrão.
NOTA:

Se esse parâmetro for definido como true ou não especificado para ECSs que executam variações SDI (incluindo c6x_4, c6ie_4 e c7), os discos SCSI serão criados.

extendparam

Não

Object

Fornece as informações do disco.

Para mais detalhes, consulte Tabela 7.

data_image_id

Não

String

Especifica a ID da imagem de dados. O valor está no formato UUID.

Se os discos de dados são criados usando uma imagem de disco de dados, este parâmetro é obrigatório e não suporta metadados.

metadata

Não

Object

Especifica os metadados do disco EVS. Certifique-se de que a key e o value nos metadados contenham no máximo 255 bytes.

Este campo é usado somente quando um disco criptografado é criado.

Se os discos de dados forem criados usando uma imagem de disco de dados, esse campo não poderá ser usado.

Para mais detalhes, consulte Descrição do campo de metadata para criação de discos.

Resposta

Parâmetro

Tipo

Descrição

job_id

String

Especifica a ID de tarefa retornada após entregar a tarefa. Você pode consultar o andamento da tarefa usando esse ID. Para obter detalhes sobre como consultar o status de execução da tarefa com base em job_id, consulte Gerenciamento de status da tarefa.

Para obter detalhes sobre respostas anormais, consulte Respostas (Tarefa).

Exemplo de solicitação

A plataforma de nuvem pública oferece vários tipos de ECS. O nome/ID do sabor varia de acordo com os tipos e especificações do ECS. Quando você usa as API para criar os ECS com especificações diferentes, os corpos de solicitação são os mesmos. Você só precisa alterar os valores de parâmetro no exemplo de solicitação a seguir com base nos parâmetros descritos em Solicitação.

  • Exemplo de solicitação de URL
    POST https://{endpoint}/v1/{project_id}/cloudservers
  • Um ECS com o ID de sabor s3.xlarge.2 deve ser criado, onde o ID da imagem é 1189efbf-d48b-46ad-a823-94b942e2a000, o tipo de disco é SSD, e o ID da VPC é 0dae26c9-9a70-4392-93f3-87d53115d171. Um exemplo de solicitação é o seguinte:
    {
        "server": {
            "availability_zone":"az1-dc1",
            "name": "newserver", 
            "imageRef": "1189efbf-d48b-46ad-a823-94b942e2a000", 
            "root_volume": {
                "volumetype": "SSD"
            }, 
            "data_volumes": [ 
                {
                    "volumetype": "SSD", 
                    "size": 100,
                    "multiattach": true,
                    "hw:passthrough": true
                }
            ], 
            "flavorRef": "s3.xlarge.2", 
            "vpcid": "0dae26c9-9a70-4392-93f3-87d53115d171", 
            "security_groups": [
                {
                    "id": "507ca48f-814c-4293-8706-300564d54620"
                }
            ], 
            "nics": [
                {
                    "subnet_id": "157ee789-03ea-45b1-a698-76c92660dd83"
                }
            ], 
            "publicip": {
                "eip": {
                    "iptype": "5_bgp",
                    "bandwidth": {
                        "size": 10, 
                        "sharetype": "PER"
                    }
                }
            }, 
            "key_name": "sshkey-123", 
            "count": 1, 
            "server_tags": [
                {
                    "key": "key1",
                    "value": "value1"
                }
            ],
            "metadata": {
                   "op_svc_userid": "8ea65f4099ba412883e2a0da72b96873",
                   "agency_name": "test"
            }
        }
    }
  • Um exemplo de corpo de solicitação de pré-verificação é o seguinte:
    {
        "dry_run": true 
        "server": {
            "availability_zone":"az1-dc1",
            "name": "newserver", 
            "imageRef": "1189efbf-d48b-46ad-a823-94b942e2a000", 
            "root_volume": {
                "volumetype": "SSD"
            }, 
            "data_volumes": [ ], 
            "flavorRef": "s3.xlarge.2", 
            "vpcid": "0dae26c9-9a70-4392-93f3-87d53115d171", 
            "security_groups": [
                {
                    "id": "507ca48f-814c-4293-8706-300564d54620"
                }
            ], 
            "nics": [
                {
                    "subnet_id": "157ee789-03ea-45b1-a698-76c92660dd83"
                }
            ], 
            "key_name": "sshkey-123", 
            "count": 1
        }
    }

Exemplo de resposta

{
    "job_id": "93c82933d6b7827d3016b8771f2070873"
}

Ou

{
    "error": {
        "code": "request body is illegal.", 
        "message": "Ecs.0005"
    }
}

Ou

{
    "error": {
        "message": "privateIp [%s] is not in this subnet [%s]",
        "code": "Ecs.0005",
        "details": [
            {
                "code": "Ecs.0039"
            }
        ]
    }
}

Valores retornados

Consulte Valores retornados para solicitações gerais.

Códigos de erro

Consulte Códigos de erro.