Criação de uma configuração de AS
Função
Esta API é usada para criar uma configuração de AS.
- Uma configuração de AS é um modelo que especifica especificações para as instâncias a serem adicionadas a um grupo de AS.
- A configuração de AS é desacoplada do grupo de AS. Uma configuração de AS pode ser usada por vários grupos de AS.
- Até 100 configurações de AS podem ser criadas para cada usuário.
URI
POST /autoscaling-api/v1/{project_id}/scaling_configuration
Parâmetro |
Obrigatório |
Tipo |
Descrição |
---|---|---|---|
project_id |
Sim |
String |
Especifica o ID do projeto. |
Mensagem de solicitação
- Parâmetros de solicitação
Tabela 2 Parâmetros de solicitação Parâmetro
Obrigatório
Tipo
Descrição
scaling_configuration_name
Sim
String
Especifica o nome da configuração de AS. O nome contém apenas letras, dígitos, sublinhados (_) e hifens (-) e não pode exceder 64 caracteres.
instance_config
Sim
Object
Especifica a configuração do ECS. Para mais detalhes, consulte Tabela 3.
Tabela 3 Descrição do campo instance_config Parâmetro
Obrigatório
Tipo
Descrição
instance_id
Não
String
Especifica o ID de ECS. Quando quiser criar uma configuração de AS a partir de um ECS, especifique este parâmetro. Neste caso, os campos flavorRef, imageRef, disk, tenancy, dedicated_host_id e security_groups não entram em vigor.
Se o campo instance_id não for especificado, os campos flavorRef, imageRef e disk serão obrigatórios.
flavorRef
Não
String
Especifica o ID de flavor do ECS. Um máximo de 10 flavors podem ser selecionados. Use uma vírgula (,) para separar vários IDs de flavor. Para saber como obter um ID de flavor de ECS, consulte .
imageRef
Não
String
Especifica o ID da imagem. Seu valor é o mesmo de image_id para especificar a imagem selecionada durante a criação do ECS. Para obter informações sobre imagens, consulte Consulta de imagens.
disk
Não
Array of disk objects
Especifica as informações do grupo de discos. Discos de sistema são obrigatórios e discos de dados são opcionais. Para mais detalhes, consulte Tabela 4.
key_name
Não
String
Especifica o nome do par de chaves SSH usado para efetuar logon no ECS.
Para obter detalhes sobre como obter um par de chaves, consulte Criação e importação de um par de chaves SSH.
NOTA:Se ambos key_name e user_data forem especificados, user_data somente injetará dados do usuário.
personality
Não
Array of personality objects
Especifica informações sobre o arquivo injetado. Somente arquivos de texto podem ser injetados. Um máximo de cinco arquivos podem ser injetados por vez e o tamanho máximo de cada arquivo é de 1 KB. Para mais detalhes, consulte Tabela 6.
public_ip
Não
public_ip object
Especifica o EIP do ECS. O EIP pode ser configurado de duas maneiras. Para mais detalhes, consulte Tabela 7.
- Não use um EIP. Nesse caso, esse parâmetro não está disponível.
- Atribua automaticamente um EIP. Você precisa especificar as informações sobre o novo EIP.
NOTA:
Se você ativar a política refinada e associar a configuração de AS a um EIP especificado a um grupo de AS, a política refinada concedida a você deverá conter o item de autorização que permite a ação vpc:publicIps:create.
user_data
Não
String
Especifica os dados do usuário a serem injetados durante o processo de criação do ECS. Texto, arquivos de texto e arquivos gzip podem ser injetados.
Restrições:
- O conteúdo a ser injetado deve ser codificado com base64. O tamanho máximo do conteúdo a ser injetado (antes da codificação) é de 32 KB.
- Se key_name não for especificado, os dados injetados por user_data são a senha do usuário root para efetuar logon no ECS por padrão.
- Este parâmetro é obrigatório quando você cria um ECS de Linux usando o modo de autenticação de senha. Seu valor é a senha inicial do usuário root.
Requisitos de complexidade de senha:
- Consiste de 8 a 26 caracteres.
- Contém pelo menos três dos seguintes tipos de caracteres: letras maiúsculas, minúsculas, dígitos e caracteres especiais (!@$%^-_=+[{}]:,./?).
Exemplos:
- Use uma senha de texto não criptografado (arriscada em segurança), por exemplo, Cloud.1234.
#! /bin/bash echo 'root:Cloud.1234' | chpasswd ;
- Use uma senha de texto cifrado (recomendado)
#! /bin/bash echo 'root:$6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig' | chpasswd -e
Na saída do comando anterior, $6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig é a senha do texto cifrado, que podem ser geradas da seguinte forma:
1. Gerar um valor de sal criptografado.
[root@test linux]# python -c "import crypt, getpass, pwd;print crypt.mksalt()" $6$V6azyeLwcD3CHlpY
2. Gerar uma senha de texto cifrado com base no valor de sal.
[root@test linux]# python -c "import crypt, getpass, pwd;print crypt.crypt('Cloud.1234','\$6\$V6azyeLwcD3CHlpY')" $6$V6azyeLwcD3CHlpY$BN3VVq18fmCkj66B4zdHLWevqcxlig
Exemplos:
- Linux
#! /bin/bash echo user_test >> /home/user.txt
- Windows
rem cmd echo 111 > c:\aaa.txt
NOTA:A injeção de dados não é compatível com ECSs que usam uma imagem do Linux e o modo de logon com senha.
metadata
Não
metadata object
Especifica os metadados do ECS. Para mais detalhes, consulte Tabela 10.
NOTA:- Este parâmetro é obrigatório quando um ECS do Windows com autenticação de senha é criado.
- Este parâmetro não permite que os usuários gravem dados. É obrigatório quando o ECS deve ser criado usando uma imagem do Windows.
security_groups
Não
Array of security_groups objects
Especifica grupos de segurança. Para mais detalhes, consulte Tabela 11.
Se o grupo de segurança for especificado tanto na configuração do AS como no grupo de AS, instâncias de ECS dimensionadas serão adicionadas ao grupo de segurança especificado na configuração do AS. Se o grupo de segurança não for especificado em nenhuma delas, instâncias de ECS dimensionadas serão adicionadas ao grupo de segurança padrão. Para sua conveniência, é aconselhável especificar o grupo de segurança na configuração do AS.
server_group_id
Não
String
Especifica o ID do grupo de ECS. Para obter mais informações, consulte .
tenancy
Não
String
Especifica que os ECSs são criados no DeHs. Opções:
- dedicated: especifica que os ECSs são criados no DeHs.
- Este parâmetro não é especificado.
dedicated_host_id
Não
String
Especifica o ID de um DeH.
NOTA:- Este parâmetro é válido somente quando tenancy é definida como dedicated.
- Se esse parâmetro for especificado, os ECSs serão criados em um DeH especificado.
- Se esse parâmetro não for especificado, o sistema seleciona automaticamente o DeH com o tamanho máximo de memória disponível nos DeHs que atendem aos requisitos de especificação para criar os ECSs, equilibrando a carga do DeHs.
multi_flavor_priority_policy
Não
String
Especifica a política de prioridade usada quando há vários flavors e instâncias a serem criados usando uma configuração de AS.
- PICK_FIRST (padrão): quando um ECS é adicionado para expansão de capacidade, o flavor de destino é determinado na ordem na lista flavorRef.
- COST_FIRST: quando um ECS é adicionado para expansão de capacidade, o flavor de destino é determinado para despesas mínimas.
market_type
Não
String
Especifica um modo de cobrança para um ECS. As opções são as seguintes:
- Pay-per-use, que não é especificado
- Spot pricing
Para um ECS de Linux, sua senha pode ser injetada apenas usando userdata. Para um ECS de Windows, sua senha pode ser injetada apenas usando metadados admin_pass.
Tabela 4 Descrição do campo disk Parâmetro
Obrigatório
Tipo
Descrição
size
Sim
Integer
Especifica o tamanho do disco. A unidade é GB.
O tamanho do disco do sistema varia de 1 a 1024 e deve ser maior ou igual ao tamanho mínimo (valor min_disk) do disco do sistema especificado na imagem.
O tamanho do disco de dados varia de 10 a 32768.
volume_type
Sim
String
Especifica o tipo de disco do sistema de ECS. O tipo de disco deve corresponder ao tipo de disco disponível.
- SATA: tipo de disco de I/O comum
- SAS: tipo de disco de alta I/O
- SSD: tipo de disco de I/O ultra-alta
- GPSSD: tipo de disco SSD de uso geral
- co-p1: tipo de disco de alta I/O (desempenho otimizado I)
- uh-l1: tipo de disco de I/O ultra-alta (latência otimizada)
Se o tipo de disco especificado não estiver disponível na AZ, haverá falha na criação do disco.
NOTA:Para ECSs HANA, HL1 e HL2, use discos co-p1 e uh-l1. Para outros ECSs, não use discos co-p1 ou uh-l1.
Para obter detalhes sobre tipos de disco, consulte Tipos de disco e desempenho de disco.
disk_type
Sim
String
Especifica um tipo de disco. As opções são as seguintes:
- DATA: indica um disco de dados.
- SYS: indica um disco do sistema.
NOTA:
A criptografia de disco do sistema não é suportada.
dedicated_storage_id
Não
String
Especifica um ID de dispositivo DSS para criar um disco de ECS.
NOTA:Especifique dispositivos DSS para todos os discos em uma configuração de AS ou não. Se os dispositivos DSS são especificados, todos os armazenamentos de dados devem pertencer à mesma AZ, e os tipos de disco suportados por um dispositivo DSS para um disco devem ser os mesmos que o valor volume_type.
data_disk_image_id
Não
String
Especifica o ID de uma imagem de disco de dados usada para exportar discos de dados de um ECS.
snapshot_id
Não
String
Especifica o ID do snapshot de backup em disco para restaurar o disco do sistema e os discos de dados usando um backup de ECS completo quando uma imagem de ECS completa é usada.
NOTA:Você pode obter o ID do snapshot de backup em disco usando o ID de backup de ECS completo em . Cada disco em uma configuração de AS deve corresponder a um backup em disco no backup de ECS completo por snapshot_id.
metadata
Não
metadata object
Especifica os metadados para a criação de discos. Para mais detalhes, consulte Tabela 5.
Tabela 5 Descrição do campo metadata para a criação de discos Parâmetro
Obrigatório
Tipo
Descrição
__system__encrypted
Não
String
Especifica a criptografia em metadata. O valor pode ser 0 (criptografia desativada) ou 1 (criptografia ativada).
Se este parâmetro não existir, o disco não será criptografado por padrão.
NOTA:A criptografia de disco do sistema não é suportada.
__system__cmkid
Não
String
Especifica o ID de CMK, que indica criptografia nos metadata. Este parâmetro é usado com __system__encrypted.
NOTA:- A criptografia de disco do sistema não é suportada.
- Para obter detalhes sobre como obter o ID de CMK, consulte Consulta da lista de CMKs.
Tabela 6 Descrição do campo personality Parâmetro
Obrigatório
Tipo
Descrição
path
Sim
String
Especifica o caminho do arquivo injetado.
- Para sistemas operacionais de Linux, especifique o caminho, por exemplo, /etc/foo.txt, para armazenar o arquivo injetado.
- Para o Windows, o arquivo injetado é armazenado automaticamente no diretório raiz da unidade C. Você só precisa especificar o nome do arquivo, por exemplo, foo. O nome do arquivo contém apenas letras e dígitos.
content
Sim
String
Especifica o conteúdo do arquivo injetado.
O valor deve ser a informação após o conteúdo do arquivo injetado ser codificado usando Base64.
Tabela 7 Descrição do campo public_ip Parâmetro
Obrigatório
Tipo
Descrição
eip
Sim
eip object
Especifica o EIP atribuído automaticamente ao ECS. Para mais detalhes, consulte Tabela 8.
Tabela 8 Descrição do campo eip Parâmetro
Obrigatório
Tipo
Descrição
ip_type
Sim
String
Especifica o tipo de EIP.
Valores enumerados do tipo de endereço IP:
- 5_bgp: indica BGP dinâmico.
- 5_sbgp: indica o BGP estático.
bandwidth
Sim
bandwidth object
Especifica a largura de banda de um endereço IP. Para mais detalhes, consulte Tabela 9.
Tabela 9 Descrição do campo bandwidth Parâmetro
Obrigatório
Tipo
Descrição
size
Não
Integer
Especifica a largura de banda (Mbit/s). O intervalo de valor para a largura de banda faturada por duração é de 1 a 2000 e para a largura de banda faturada por tráfego é de 1 a 300.
NOTA:- Se share_type for definido como PER, este parâmetro é obrigatório. Se share_type for definido como WHOLE, esse parâmetro é inválido.
- O intervalo específico pode variar dependendo da configuração em cada região. Você pode ver o intervalo de largura de banda de cada região no console de gerenciamento.
- A unidade mínima para largura de banda varia dependendo de intervalo de largura de banda.
- A unidade mínima é de 1 Mbit/s se o tamanho da largura de banda permitida varia de 0 a 300 Mbit/s (com 300 Mbit/s incluídos).
- A unidade mínima é de 50 Mbit/s se o tamanho da largura de banda permitida varia de 300 Mbit/s a 1000 Mbit/s (com 1000 Mbit/s incluídos).
- A unidade mínima é de 500 Mbit/s se o tamanho de largura de banda permitido for maior que 1000 Mbit/s.
share_type
Sim
String
Especifica o tipo de compartilhamento de largura de banda.
Valores enumerados do tipo de compartilhamento:
- PER: dedicado
- WHOLE: partilhado
charging_mode
Não
String
Especifica o modo de faturamento da largura de banda.
As opções são as seguintes:
- bandwidth: cobrado pela largura de banda.
- traffic: cobrado pelo tráfego.
Se o valor do parâmetro estiver fora das opções anteriores, a criação do ECS falhará.NOTA:- Se share_type for definido como PER, este parâmetro é obrigatório.
- Se share_type for definido como WHOLE, esse parâmetro é inválido.
id
Não
String
Especifica o ID da largura de banda. Ao usar uma largura de banda compartilhada, você pode selecionar uma largura de banda compartilhada existente para criar um EIP.
NOTA:- Se share_type for definido como PER, esse parâmetro é inválido.
- Se share_type for definido como WHOLE, este parâmetro é obrigatório.
Tabela 10 Descrição do campo metadata Parâmetro
Obrigatório
Tipo
Descrição
admin_pass
Não
String
Especifica a senha de logon inicial da conta de administrador para fazer logon 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.
- Contém pelo menos três dos seguintes tipos de caracteres: letras maiúsculas, letras minúsculas, dígitos e caracteres especiais !@$%^-_=+[{}]:,./?
- A senha não pode conter o nome de usuário ou o nome de usuário na ordem inversa.
- A senha do ECS de Windows não pode conter o nome de usuário, o nome de usuário em ordem inversa ou mais de dois caracteres consecutivos no nome de usuário.
- Exemplo de solicitação
Este exemplo mostra como criar uma configuração de AS com o nome as-config-tlzp, ID de imagem 627a1223-2ca3-46a7-8d5f-7aef22c74ee6, ID de flavor s3.xlarge.4, disco do sistema SATA de 40 GB e nome da chave SSH 100vm_key.
POST https://{Endpoint}/autoscaling-api/v1/{project_id}/scaling_configuration { "scaling_configuration_name": "as-config-tlzq", "instance_config": { "flavorRef": "s3.xlarge.4", "imageRef": "627a1223-2ca3-46a7-8d5f-7aef22c74ee6", "disk": [ { "size": 40, "volume_type": "SATA", "disk_type": "SYS" } ], "key_name": "100vm_key" , "security_groups": [{ "id": "6c22a6c0-b5d2-4a84-ac56-51090dcc33be" }], "multi_flavor_priority_policy": "PICK_FIRST" } }
Mensagem de resposta
- Parâmetros de resposta
Tabela 12 Parâmetros de resposta Parâmetro
Tipo
Descrição
scaling_configuration_id
String
Especifica o ID de configuração de AS.
- Exemplo de resposta
{ "scaling_configuration_id": "f8327883-6a07-4497-9a61-68c03e8e72a2" }
Valores retornados
- Normal
- Anormal
Valores retornados
Descrição
400 Bad Request
O servidor falhou ao processar a solicitação.
401 Unauthorized
Você deve digitar o nome de usuário e a senha para acessar a página solicitada.
403 Forbidden
Você está proibido de acessar a página solicitada.
404 Not Found
O servidor não conseguiu encontrar a página solicitada.
405 Method Not Allowed
Você não tem permissão para usar o método especificado na solicitação.
406 Not Acceptable
A resposta gerada pelo servidor não poderia ser aceita pelo cliente.
407 Proxy Authentication Required
Você deve usar o servidor proxy para autenticação para que a solicitação possa ser processada.
408 Request Timeout
A solicitação expirou o tempo limite.
409 Conflict
A solicitação não pôde ser processada devido a um conflito.
500 Internal Server Error
Falhou ao concluir a solicitação porque ocorre um erro de serviço interno.
501 Not Implemented
Falhou ao concluir a solicitação porque o servidor não suporta a função solicitada.
502 Bad Gateway
Falhou ao concluir a solicitação porque a solicitação é inválida.
503 Service Unavailable
Falhou ao concluir a solicitação porque o sistema não está disponível.
504 Gateway Timeout
Ocorreu um erro de tempo limite de gateway.
Códigos de erro
Consulte Códigos de erro.