Criação de uma política de AS (V2)
Função
Essa API é usada para criar uma política de AS para um grupo de AS ou largura de banda.
A diferença entre as APIs V2 e V1 para a criação de uma política de AS é que a V2 suporta a criação de uma política de AS para ajustar a largura de banda e diferenciar recursos de dimensionamento por seus tipos.
URI
POST /autoscaling-api/v2/{project_id}/scaling_policy
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_policy_name
Sim
String
Especifica o nome da política de AS. O nome contém apenas letras, dígitos, sublinhados (_) e hifens (-) e não pode exceder 64 caracteres.
scaling_resource_id
Sim
String
Especifica o ID do recurso de dimensionamento, que é o ID exclusivo de um grupo de AS ou largura de banda.
- Se scaling_resource_type for definido como SCALING_GROUP, esse parâmetro indicará o ID de grupo de AS exclusivo.
- Se scaling_resource_type for definido como BANDWIDTH, esse parâmetro indicará o ID exclusivo da largura de banda.
NOTA:
O AS não pode escalar larguras de banda anuais/mensais.
scaling_resource_type
Sim
String
Especifica o tipo de recurso de dimensionamento.
- Grupo de AS: SCALING_GROUP
- Largura de banda: BANDWIDTH
scaling_policy_type
Sim
String
Especifica o tipo de política de AS.
- ALARM (correspondente a alarm_id): indica que a ação de dimensionamento é acionada por um alarme.
- SCHEDULED (correspondente a scheduled_policy): indica que a ação de dimensionamento é acionada conforme agendado.
- RECURRENCE (correspondente a scheduled_policy): indica que a ação de dimensionamento é acionada periodicamente.
- INTERVAL_ALARM (correspondente a alarm_id): indica que a ação de dimensionamento é acionada por uma política de dimensionamento refinada.
alarm_id
Não
String
Especifica o ID da regra de alarme. Este parâmetro é obrigatório quando scaling_policy_type é definido como ALARM. Depois que esse parâmetro é especificado, o valor de scheduled_policy não entra em vigor.
Depois que você cria uma política de alarme, o sistema adiciona automaticamente uma atividade de disparo de alarme do tipo de dimensionamento automático ao campo alarm_actions na regra de alarme especificada pelo valor do parâmetro.
Você pode obter o valor do parâmetro consultando as regras de alarme do Cloud Eye.
scheduled_policy
Não
scheduled_policy object
Especifica a política de AS periódica ou agendada. Este parâmetro é obrigatório quando scaling_policy_type é definido como SCHEDULED ou RECURRENCE. Depois que este parâmetro é especificado, o valor de alarm_id não tem efeito. Para mais detalhes, consulte Tabela 3.
scaling_policy_action
Não
scaling_policy_action object
Especifica a ação de dimensionamento da política de AS. Para mais detalhes, consulte Tabela 4.
interval_alarm_actions
Não
Array of interval_alarm_actions objects
Especifica o intervalo de valores de uma política de alarme. Este parâmetro é válido e obrigatório quando scaling_policy_type é definido como INTERVAL_ALARM. Para mais detalhes, consulte Tabela 5.
cool_down_time
Não
Integer
Especifica o período de resfriamento (em segundos). O valor varia de 0 a 86400 e é de 300 por padrão.
description
Não
String
Especifica a descrição da política de AS. O valor pode conter de 1 a 256 caracteres.
Tabela 3 Descrição do campo scheduled_policy Parâmetro
Obrigatório
Tipo
Descrição
launch_time
Sim
String
Especifica a hora em que a ação de dimensionamento é acionada. O formato de tempo está em conformidade com o UTC.
- Se scaling_policy_type estiver definido como SCHEDULED, o formato de hora será YYYY-MM-DDThh:mmZ.
- Se scaling_policy_type for definido como RECURRENCE, o formato de hora será hh:mm.
recurrence_type
Não
String
Especifica o tipo de acionamento periódico. Este parâmetro é obrigatório quando scaling_policy_type é definido como RECURRENCE.
- Daily: indica que a ação de dimensionamento é acionada uma vez por dia.
- Weekly: indica que a ação de dimensionamento é acionada uma vez por semana.
- Monthly: indica que a ação de dimensionamento é acionada uma vez por mês.
recurrence_value
Não
String
Especifica o dia em que uma ação de dimensionamento periódica é acionada. Este parâmetro é obrigatório quando scaling_policy_type é definido como RECURRENCE.
- Se recurrence_type estiver definido como Daily, o valor será null, indicando que a ação de dimensionamento é acionada uma vez por dia.
- Se recurrence_type for definido como Weekly, o valor varia de 1 (domingo) a 7 (sábado). Os dígitos referem-se a datas em cada semana e separados por uma vírgula, como 1,3,5.
- Se recurrence_type for definido como Monthly, o valor varia de 1 a 31. Os dígitos referem-se às datas em cada mês e separados por uma vírgula, como 1,10,13,28.
NOTA:
Quando recurrence_type é definido como Daily, este parâmetro não tem efeito.
start_time
Não
String
Especifica a hora de início da ação de dimensionamento acionada periodicamente. O formato de tempo está em conformidade com o UTC. O valor padrão é a hora local.
O formato da hora é YYYY-MM-DDThh:mmZ.
end_time
Não
String
Especifica a hora de término da ação de dimensionamento acionada periodicamente. O formato de tempo está em conformidade com o UTC. Este parâmetro é obrigatório quando scaling_policy_type é definido como RECURRENCE. Quando a ação de dimensionamento é acionada periodicamente, a hora de término não pode ser anterior à hora atual e de início.
O formato da hora é YYYY-MM-DDThh:mmZ.
Tabela 4 Descrição do campo scaling_policy_action Parâmetro
Obrigatório
Tipo
Descrição
operation
Não
String
Especifica a operação a ser executada. A operação padrão é ADD.- Se scaling_resource_type for definido como SCALING_GROUP, as seguintes operações serão suportadas:
- ADD: indica a adição de instâncias.
- REMOVE/REDUCE: indica remover ou reduzir instâncias.
- SET: indica definir o número de instâncias para um valor especificado.
- Se scaling_resource_type for definido como BANDWIDTH, as seguintes operações serão suportadas:
- ADD: indica a adição de instâncias.
- REDUCE: indica a redução de instâncias.
- SET: indica a configuração do número de instâncias para um valor especificado.
size
Não
Integer
Especifica o tamanho da operação. O valor é um inteiro de 0 a 300. O valor padrão é 1. Este parâmetro pode ser definido como 0 somente quando operation é definida como SET.
- Se scaling_resource_type for definido como SCALING_GROUP, esse parâmetro indicará o número de instâncias. O valor é um número inteiro de 0 a 300 e o valor padrão é 1.
- Se scaling_resource_type estiver definido como BANDWIDTH, este parâmetro indica a largura de banda (Mbit/s). O valor é um inteiro de 1 a 300 e o valor padrão é 1.
- Se scaling_resource_type for definido como SCALING_GROUP, size ou percentage podem ser definidos.
percentage
Não
Integer
Especifica a porcentagem de instâncias a serem operadas. Se operation estiver definida como ADD, REMOVE ou REDUCE, o valor deste parâmetro será um número inteiro de 1 a 20000. Se operation for definida como SET, o valor é um inteiro de 0 a 20000.
- Se scaling_resource_type for definido como SCALING_GROUP, size ou percentage podem ser definidos. Se nem size nem percentage forem definidos, o valor padrão de size é 1.
- Se scaling_resource_type estiver definido como BANDWIDTH, percentage não estará disponível.
limits
Não
Integer
Especifica as restrições de operação.
Se scaling_resource_type estiver definido como BANDWIDTH e operation não for SET, este parâmetro terá efeito e a unidade será Mbit/s.
- Se operation estiver definida como ADD, este parâmetro indica a largura de banda máxima permitida.
- Se operation estiver definida como REDUCE, este parâmetro indica a largura de banda mínima permitida.
Tabela 5 Descrição do campo interval_alarm_actions Parâmetro
Obrigatório
Tipo
Descrição
lower_bound
Não
Double
Especifica o limite inferior do intervalo de valores. O valor é nulo por padrão.
Se o limite inferior do intervalo de valores for nulo, o limite superior deve ser menor ou igual a 0.
O limite inferior mínimo permitido é -1,174271E108.
upper_bound
Não
Double
Especifica o limite superior do intervalo de valores. O valor é nulo por padrão.
Se o limite superior do intervalo for nulo, o limite inferior deve ser maior ou igual a 0.
O limite máximo permitido é 1,174271E108.
operation
Não
String
Especifica a operação a ser executada. A operação padrão é ADD.
- Se scaling_resource_type for definido como SCALING_GROUP, as seguintes operações serão suportadas:
- ADD: indica a adição de instâncias.
- REMOVE/REDUCE: indica a remoção ou redução de instâncias.
- SET: indica a configuração do número de instâncias para um valor especificado.
- Se scaling_resource_type for definido como BANDWIDTH, as seguintes operações serão suportadas:
- ADD: indica a adição de instâncias.
- REDUCE: indica a redução de instâncias.
- SET: indica a configuração do número de instâncias para um valor especificado.
size
Não
Integer
Especifica o tamanho da operação. O valor é um inteiro de 0 a 300. O valor padrão é 1.
Este parâmetro pode ser definido como 0 somente quando operation é definida como SET.
- Se scaling_resource_type for definido como SCALING_GROUP, esse parâmetro indicará o número de instâncias. O valor é um número inteiro de 0 a 300 e o valor padrão é 1.
- Se scaling_resource_type estiver definido como BANDWIDTH, este parâmetro indica a largura de banda (Mbit/s). O valor é um inteiro de 1 a 300 e o valor padrão é 1.
- Se scaling_resource_type for definido como SCALING_GROUP, size ou percentage podem ser definidos.
percentage
Não
Integer
Especifica a porcentagem de instâncias a serem operadas. Quando a operação é ADD, REMOVE ou REDUCE, o valor é um número inteiro de 1 a 20000.
Quando a operação é SET, o valor é um inteiro de 0 a 20000.
- Se scaling_resource_type for definido como SCALING_GROUP, size ou percentage podem ser definidos. Se nem size nem percentage forem definidos, o valor padrão de size é 1.
- Se scaling_resource_type estiver definido como BANDWIDTH, percentage não estará disponível.
limits
Não
Integer
Especifica as restrições de operação.
Se scaling_resource_type estiver definido como BANDWIDTH e operation não for SET, este parâmetro terá efeito e a unidade será Mbit/s.
- Se operation estiver definida como ADD, este parâmetro indica a largura de banda máxima permitida.
- Se operation estiver definida como REDUCE, este parâmetro indica a largura de banda mínima permitida.
- O intervalo de valores de alarme de uma política de dimensionamento refinada é o limite da regra de alarme mais os limites superior e inferior do intervalo de valores.
- Se o limite inferior de um intervalo de valores for nulo, o limite inferior mínimo será -1,174271E108. Se o limite superior do intervalo for nulo, o limite superior máximo será 1,174271E108.
Por exemplo:
Defina a regra de alarme para uma política de AS para CPU usage ≥ 30% e adicione os seguintes intervalos de dois valores:
Scaling Action é definida como 30% ≤ CPU usage < 60%, add 1 instance. Então, lower_bound deve ser definido como 0 e upper_bound como 30.
Scaling Action é definida como 60% ≤ CPU usage < positive infinite, add 2 instances. Em seguida, lower_bound deve ser definido como 30 e upper_bound como 1,174271E108 ou null.
- Se nem o limite superior nem o limite inferior de um intervalo de valores for nulo, eles devem ser maiores ou iguais a, ou menores ou iguais a 0.
- Se várias políticas de dimensionamento refinado forem adicionadas, seus intervalos de valor não poderão se sobrepor.
- Se o operador de uma regra de alarme for =, nenhum intervalo pode ser adicionado.
- Exemplo de solicitação
Este exemplo mostra como criar uma política de alarme chamada hth_aspolicy_1 com as seguintes configurações: o ID da regra de alarme é al1513822380493GvlJKZwA8; quando o limite de alarme é alcançado de acordo com a regra de alarme, a largura de banda com ID 8ade64b5-d685-40b8-8582-4ce306ea37a6 será aumentada em 1 Mbit/s até que a largura de banda atinja 10 Mbit/s.
POST https://{Endpoint}/autoscaling-api/v2/{project_id}/scaling_policy { "alarm_id": "al1513822380493GvlJKZwA8", "cool_down_time": 900, "scaling_resource_id": "8ade64b5-d685-40b8-8582-4ce306ea37a6", "scaling_resource_type": "BANDWIDTH", "scaling_policy_action": { "size": 1, "operation": "ADD", "limits": 10 }, "scaling_policy_name": "hth_aspolicy_1", "scaling_policy_type": "ALARM" }
Mensagem de resposta
- Parâmetros de resposta
Tabela 6 Parâmetros de resposta Parâmetro
Tipo
Descrição
scaling_policy_id
String
Especifica o ID da política de AS.
- Exemplo de resposta
{ "scaling_policy_id": "0h327883-324n-4dzd-9c61-68d03ee191dd" }
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.