Criação dos ECS
Função
Essa API é usada para criar um ou os mais ECS.
A API V1.1 suporta todas as funções (consulte Criação de um ECS (Pay-per-Use)) fornecidas pela API V1. Além disso, a API V1.1 suporta a criação dos ECS anuais/mensais.
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.
- 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. Para mais detalhes, consulte Tabela 2.
- 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 2. Se uma senha criptografada for necessária para fazer login em um 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 2.Se o campo user_data for especificado para um 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.
Restrições
- Certifique-se de que sua conta tenha saldo suficiente, pois essa API não suporta cupons. Se o saldo da conta for insuficiente, uma ordem pendente será gerada.
URI
- Formato URI
- 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âmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
server |
Sim |
Object |
Especifica as informações de ECS. Para mais detalhes, consulte Tabela 2. |
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 ECSs. O ID está no formato Universally Unique Identifier (UUID). Você pode obter o ID da imagem no console ou seguindo as instruções fornecidas em "Consulta de imagens" na Referência de API do Image Management Service. |
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 da ECS. Para obter detalhes, consulte Como posso definir nomes de ECS seqüenciais ao criar os vários ECS? Um nome deve obedecer às seguintes regras:
|
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 Injeção de 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). Nota: Se chargeMode no parâmetro extendparam de um ECS criado estiver definido como prePaid, o que indica que o ECS é faturado em pagamentos anuais/mensais, o parâmetro key_name deverá ser usado com o parâmetro de metadata. Para obter detalhes, consulte Descrição do campo de metadados para criação dos ECS e exemplo da solicitação 1. |
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 3. Nota:
|
publicip |
Não |
Object |
Especifica o EIP vinculado ao ECS, que pode ser configurado de uma das seguintes maneiras:
Para mais detalhes, consulte Descrição do Campo publicip. |
count |
Não |
Integer |
Especifica o número dos ECS a serem criados. Nota:
|
root_volume |
Sim |
Object |
Especifica as configurações de disco do sistema ECS. O disco do sistema e o disco de dados criados durante a criação de um ECS anual/mensal também estão em pagamentos anuais/mensais, e o período dos discos é o mesmo que o do ECS. Para mais detalhes, consulte Tabela 4. |
data_volumes |
Não |
Array of objects |
Especifica configurações de disco de dados 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 variantes suportam apenas 23 discos de dados). Para mais detalhes, consulte Tabela 5. |
security_groups |
Não |
Array of objects |
Especifica grupos de segurança do ECS. Limitações: 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 descrição do campo security_groups. |
availability_zone |
Não |
String |
Especifica a AZ em que 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. |
extendparam |
Não |
Object |
Especifica as informações suplementares do ECS. Para mais detalhes, consulte Tabela 9. |
metadata |
Não |
Map<String,String> |
Especifica os metadados do ECS. 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 as marcas de um 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:
|
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 no ID da tarefa, consulte Gerenciamento de status da tarefa. |
order_id |
String |
Especifica o ID do pedido. Este parâmetro é retornado para a criação de um ECS anual/mensal. |
serverIds |
Array of strings |
Especifica os ID de ECS.
NOTA:
Os detalhes sobre um ECS são obtidos por ID de ECS. Se o sistema retornar um erro 404, o ECS está sendo criado ou criando a ECS falha. |
Para obter detalhes sobre respostas anormais, consulte Respostas (Tarefa).
Exemplo de solicitação
- Exemplo de solicitação de URL
POST https://{endpoint}/v1.1/{project_id}/cloudservers
- Exemplo de solicitação 1 . (criando um ECS anual/mensal que é conectado usando um par de chaves)
{ "server": { "availability_zone":"az1-dc1", //AZ name "name": "newserver", "imageRef": "5ef3a512-1c65-418e-8764-a4413c2f9277", "root_volume": { "volumetype": "SSD" }, "data_volumes": [ { "volumetype": "SSD", "size": 100 }, { "volumetype": "SSD", "size": 100, "multiattach": true, "hw:passthrough": true } ], "flavorRef": "s2.small.1", "vpcid": "2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68", "security_groups": [ { "id": "6242ef48-4d35-49c8-8711-a6e54902e44a" } ], "nics": [ { "subnet_id": "ef039b60-6a14-42d1-963b-687b627fea08" } ], "publicip": { "eip": { "iptype": "5_sbgp", "bandwidth": { "size": 1, "sharetype": "PER" } } }, "key_name": "id_rsa", "count": 1, "metadata": { "op_svc_userid": "f79791beca3c48159ac2553fff22e166" }, "extendparam": { "chargingMode": "prePaid", "periodType": "month", "periodNum": 1, "isAutoRenew": "true", "isAutoPay": "true", "enterprise_project_id": "f8e0ecc8-3825-4ee8-9596-fb4258ffdcbb" }, "os:scheduler_hints": { "group": "cdbbfffe-ef18-47b4-a5c8-f61a984c0ecc" } } }
- Exemplo de solicitação 2 . (criar um ECS anual/mensal que está logado usando uma senha)
{ "server": { "availability_zone":"az1-dc1", //AZ name "name": "newserver", "adminPass": "P@ssw0rd123", "imageRef": "9b04ad7e-6d97-40bf-9d62-57873382eab0", "root_volume": { "volumetype": "SSD" }, "data_volumes": [ { "volumetype": "SSD", "size": 100 }, { "volumetype": "SSD", "size": 100, "multiattach": true, "hw:passthrough": true } ], "flavorRef": "s2.small.1", "vpcid": "2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68", "security_groups": [ { "id": "6242ef48-4d35-49c8-8711-a6e54902e44a" } ], "nics": [ { "subnet_id": "ef039b60-6a14-42d1-963b-687b627fea08" } ], "publicip": { "eip": { "iptype": "5_sbgp", "bandwidth": { "size": 1, "sharetype": "PER" } } }, "key_name": "", "count": 1, "metadata": {}, "extendparam": { "chargingMode": "prePaid", "periodType": "month", "periodNum": 1, "isAutoRenew": "true", "isAutoPay": "true", "enterprise_project_id": "f8e0ecc8-3825-4ee8-9596-fb4258ffdcbb" }, "os:scheduler_hints": { "group": "cdbbfffe-ef18-47b4-a5c8-f61a984c0ecc" } } }
- Exemplo de solicitação 3 (criação de um ECS anual/mensal com um EIP de pagamento por uso vinculado)
{ "server": { "availability_zone":"az1-dc1", //AZ name "name": "newserver", "imageRef": "5ef3a512-1c65-418e-8764-a4413c2f9277", "root_volume": { "volumetype": "SSD" }, "data_volumes": [ { "volumetype": "SSD", "size": 100 }, { "volumetype": "SSD", "size": 100, "multiattach": true, "hw:passthrough": true } ], "flavorRef": "s2.small.1", "vpcid": "2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68", "security_groups": [ { "id": "6242ef48-4d35-49c8-8711-a6e54902e44a" } ], "nics": [ { "subnet_id": "ef039b60-6a14-42d1-963b-687b627fea08" } ], "publicip": { "eip": { "iptype": "5_sbgp", "bandwidth": { "size": 1, "sharetype": "PER", "chargemode": "traffic" }, "extendparam": { "chargingMode": "postPaid" } } }, "key_name": "id_rsa", "count": 1, "metadata": { "op_svc_userid": "f79791beca3c48159ac2553fff22e166" }, "extendparam": { "chargingMode": "prePaid", "periodType": "month", "periodNum": 1, "isAutoRenew": "true", "isAutoPay": "true", "enterprise_project_id": "f8e0ecc8-3825-4ee8-9596-fb4258ffdcbb" }, "os:scheduler_hints": { "group": "cdbbfffe-ef18-47b4-a5c8-f61a984c0ecc" } } }
- Exemplo de solicitação 4 (criando um ECS anual/mensal com um EIP usando um limite de largura de banda compartilhado)
{ "server": { "availability_zone":"az1-dc1", //AZ name "name": "newserver", "imageRef": "5ef3a512-1c65-418e-8764-a4413c2f9277", "root_volume": { "volumetype": "SSD" }, "data_volumes": [ { "volumetype": "SSD", "size": 100 }, { "volumetype": "SSD", "size": 100, "multiattach": true, "hw:passthrough": true } ], "flavorRef": "s2.small.1", "vpcid": "2a6f4aa6-d93e-45f5-a8cb-b030dbf8cd68", "security_groups": [ { "id": "6242ef48-4d35-49c8-8711-a6e54902e44a" } ], "nics": [ { "subnet_id": "ef039b60-6a14-42d1-963b-687b627fea08" } ], "publicip": { "eip": { "iptype": "5_sbgp", "bandwidth": { "id": "a0d4b26f-699d-49a0-bcc8-6f707a925abf", "sharetype": "WHOLE" } } }, "key_name": "id_rsa", "count": 1, "metadata": { "op_svc_userid": "f79791beca3c48159ac2553fff22e166", "agency_name": "test" }, "extendparam": { "chargingMode": "prePaid", "periodType": "month", "periodNum": 1, "isAutoRenew": "true", "isAutoPay": "true", "enterprise_project_id": "f8e0ecc8-3825-4ee8-9596-fb4258ffdcbb" }, "os:scheduler_hints": { "group": "cdbbfffe-ef18-47b4-a5c8-f61a984c0ecc" } } }
- Exemplo de solicitação 6 (corpo de solicitação de pré-verificação)
{ "dry_run": true "server": { "availability_zone":"az1-dc1", "name": "server", "imageRef": "ff49b1f1-3e3e-4913-89c6-a026041661e8", "root_volume": { "volumetype": "SSD" }, "data_volumes": [], "flavorRef": "s2.large.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" } }
Exemplo de resposta
{ "job_id": "ff808082739334d80173943ec9b42130", "order_id": "CS2007281506xxxxx", "serverIds": [ "fe0528f0-5b1c-4c8c-9adf-e5d5047b8c17", "679854ae-a50d-40c9-8132-b19bf3a306a1" ] }
Ou
{ "error": { "code": "Ecs.0005", "message": "request body is illegal." } }
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.