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
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.
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.
|
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:
|
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:
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:
Após a codificação base64:
|
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:
|
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:
|
publicip |
Não |
Object |
Especifica o EIP do ECS, que pode ser configurado das seguintes maneiras:
Para mais detalhes, consulte Tabela 1. |
count |
Não |
Integer |
Especifica o número dos ECS a serem criados. Limitações:
|
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.
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:
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:
|
description |
Não |
String |
Especifica a descrição do ECS, que está vazia por padrão.
|
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. |
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:
|
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:
|
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.
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. |
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.
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.
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
Códigos de erro
Consulte Códigos de erro.