Todos os produtos
Search
Central de documentação

Serverless App Engine:CreateApplicationScalingRule

Última atualização: Jun 28, 2026

Cria uma política de auto scaling de aplicação.

Descrição da operação

Notas de uso

  • Você pode criar até cinco políticas de elasticidade por aplicação.

  • Para cada política de elasticidade agendada, você pode criar até 20 pontos de disparo por dia.

  • Enquanto uma política de elasticidade estiver habilitada, não realize operações manuais na aplicação, como scaling, implantação, alteração de especificações, reinicialização ou parada. Para realizar essas operações, desabilite a política primeiro.

  • Você não pode adicionar ou habilitar uma política de elasticidade para uma aplicação que esteja passando por scale-out, scale-in, implantação (lote único, faseada ou canary), alteração de especificações, reinicialização ou parada.

  • Para escalar uma aplicação para mais de 50 instâncias, entre em contato com o suporte técnico do SAE para ser adicionado à whitelist. Para mais informações, consulte Fale conosco.

Experimente agora

Experimente esta API no OpenAPI Explorer, sem necessidade de assinatura manual. Chamadas bem-sucedidas geram automaticamente código SDK correspondente aos seus parâmetros. Faça o download com segurança de credenciais integrada para uso local.

Testar

Autorização RAM

A tabela abaixo descreve a autorização necessária para chamar esta API. Você pode defini-la em uma política do Resource Access Management (RAM). As colunas da tabela estão detalhadas abaixo:

  • Ação: As ações que podem ser usadas no elemento Action das instruções de política de permissão do RAM para conceder permissões para executar a operação.

  • API: A API que você pode chamar para executar a ação.

  • Nível de acesso: O nível de acesso predefinido concedido para cada API. Valores válidos: create, list, get, update e delete.

  • Tipo de recurso: O tipo de recurso que suporta autorização para executar a ação. Indica se a ação suporta permissão em nível de recurso. O recurso especificado deve ser compatível com a ação. Caso contrário, a política será ineficaz.

    • Para APIs com permissões em nível de recurso, os tipos de recursos obrigatórios são marcados com um asterisco (*). Especifique o Nome de Recurso Alibaba Cloud (ARN) correspondente no elemento Resource da política.

    • Para APIs sem permissões em nível de recurso, é exibido como Todos os Recursos. Use um asterisco (*) no elemento Resource da política.

  • Chave de condição: As chaves de condição definidas pelo serviço. A chave permite controle granular, aplicando-se somente a ações ou a ações associadas a recursos específicos. Além das chaves de condição específicas do serviço, o Alibaba Cloud fornece um conjunto de chaves de condição comuns aplicáveis a todos os serviços compatíveis com RAM.

  • Ação dependente: As ações dependentes necessárias para executar a ação. Para concluir a ação, o usuário RAM ou a função RAM deve ter permissões para executar todas as ações dependentes.

Ação

Nível de acesso

Tipo de recurso

Chave de condição

Ação dependente

sae:CreateApplicationScalingRule

create

*All Resource

*

Nenhuma Nenhuma

Sintaxe da solicitação

POST /pop/v1/sam/scale/applicationScalingRule HTTP/1.1

Parâmetros da solicitação

Parâmetro

Tipo

Obrigatório

Descrição

Exemplo

AppId

string

Sim

O ID da aplicação.

7171a6ca-d1cd-4928-8642-7d5cfe69****

ScalingRuleName

string

Sim

O nome da política de auto scaling. O nome deve ser exclusivo dentro de uma aplicação, começar com uma letra minúscula e conter apenas letras minúsculas, dígitos e hifens (-). O nome pode ter até 32 caracteres.

Nota

O nome da política não pode ser alterado após a criação.

timer-0800-2100

ScalingRuleType

string

Sim

O tipo da política de auto scaling. Valores válidos:

  • timing: auto scaling agendado.

  • metric: auto scaling baseado em métricas.

  • mix: auto scaling misto.

Nota
  • Se você definir este parâmetro como timing, o parâmetro ScalingRuleTimer será obrigatório.

  • Se você definir este parâmetro como metric, o parâmetro ScalingRuleMetric será obrigatório.

  • Se você definir este parâmetro como mix, o parâmetro ScalingRuleMetric será obrigatório. Você também pode configurar o parâmetro ScalingRuleTimer conforme necessário.

timing

ScalingRuleTimer

string

Não

Configurações para a política de auto scaling agendado. Este parâmetro é obrigatório se ScalingRuleType estiver definido como timing ou se você usar um SDK.

O parâmetro é uma string JSON que contém os seguintes campos:

  • beginDate e endDate: As datas de início e término do período de vigência da política.

    • Se ambos os campos estiverem definidos como null (padrão), a política será efetiva indefinidamente.

    • Se você especificar um intervalo de datas, por exemplo, beginDate é 2021-03-25 e endDate é 2021-04-25, a política será efetiva por um mês.

  • period: A regra de recorrência para a política de auto scaling agendado.

    • * * *: A política é executada em um horário especificado todos os dias.

    • * * Fri,Mon: A política é executada em um horário especificado em dias específicos da semana. Você pode selecionar vários dias. O horário está no fuso horário GMT+8. Valores válidos:

      • Sun: Domingo

      • Mon: Segunda-feira

      • Tue: Terça-feira

      • Wed: Quarta-feira

      • Thu: Quinta-feira

      • Fri: Sexta-feira

      • Sat: Sábado

    • 1,2,3,28,31 * *: A política é executada em um horário especificado em dias específicos do mês. Você pode selecionar vários dias. O valor pode ser de 1 a 31. Se um mês não tiver o dia especificado, por exemplo, o dia 31, a política não será executada nesse dia para aquele mês.

  • schedules: Os horários de disparo e o número correspondente de instâncias de destino. Você pode especificar no máximo 20 agendamentos. O parâmetro inclui os seguintes campos:

    • atTime: O horário de disparo no formato HH:mm. Por exemplo, 08:00.

    • targetReplicas: O número de destino de instâncias da aplicação. Valores válidos: 1 a 50.

      Nota

      Durante uma implantação rolling, recomendamos que você defina o número mínimo de instâncias prontas como 1 ou mais para evitar interrupções de serviço. Se você definir o número mínimo de instâncias prontas como 0, sua aplicação será interrompida durante uma atualização.

{"beginDate":null,"endDate":null,"period":"* * *","schedules":[{"atTime":"08:00","targetReplicas":10},{"atTime":"20:00","targetReplicas":3}]}

ScalingRuleMetric

string

Não

Configurações para a política de auto scaling baseado em métricas. Este parâmetro é obrigatório se ScalingRuleType estiver definido como metric ou mix.

O parâmetro é uma string JSON que contém os seguintes campos:

  • maxReplicas: O número máximo de instâncias da aplicação.

  • minReplicas: O número mínimo de instâncias da aplicação.

  • metricType: A métrica que aciona a política de auto scaling. Valores válidos:

    • CPU: Utilização de CPU.

    • MEMORY: Utilização de memória.

    • QPS: A média de consultas por segundo (QPS) por instância para uma aplicação Java em um período de 1 minuto.

    • RT: O tempo médio de resposta (RT) de todas as interfaces de serviço para uma aplicação Java em um período de 1 minuto.

    • tcpActiveConn: O número médio de conexões TCP ativas por instância em um período de 30 segundos.

    • SLB_QPS: A média de QPS por instância para uma instância SLB pública em um período de 15 segundos.

    • SLB_RT: O RT médio de uma instância SLB pública em um período de 15 segundos.

    • INTRANET_SLB_QPS: A média de QPS por instância para uma instância SLB interna em um período de 15 segundos.

    • INTRANET_SLB_RT: O RT médio de uma instância SLB interna em um período de 15 segundos.

  • metricTargetAverageUtilization: O valor de destino para a métrica especificada por metricType. A unidade deste valor depende de metricType.

    • Utilização de CPU de destino, em porcentagem.

    • Utilização de memória de destino, em porcentagem.

    • QPS de destino, em solicitações por segundo.

    • Tempo de resposta de destino, em milissegundos.

    • Número médio de conexões TCP ativas.

    • QPS de destino do SLB público, em solicitações por segundo.

    • Tempo de resposta de destino do SLB público, em milissegundos.

    • QPS de destino do SLB interno, em solicitações por segundo.

    • Tempo de resposta de destino do SLB interno, em milissegundos.

  • slbId: O ID da instância SLB.

  • slbProject: O projeto do Log Service.

  • slbLogstore: O Logstore do Log Service.

  • vport: A porta do listener SLB. Os protocolos HTTP e HTTPS são suportados.

  • scaleUpRules: As regras para escalar a aplicação horizontalmente (scale-out).

  • scaleDownRules: As regras para reduzir a aplicação horizontalmente (scale-in).

  • step: O tamanho do passo para scale-out ou scale-in. Este é o número máximo de instâncias que podem ser adicionadas ou removidas em uma única atividade de scaling.

  • disabled: Especifica se a aplicação deve ser impedida de realizar scale-in. Se definido como true, o número de instâncias da aplicação nunca será reduzido. Isso pode evitar riscos de negócio causados por scale-in durante horários de pico.

    • true: O scale-in está desabilitado.

    • false: O scale-in está habilitado. Este é o valor padrão.

  • stabilizationWindowSeconds: O período de cooldown para scale-out ou scale-in, em segundos. Valores válidos: 0 a 3600. O valor padrão é 0.

Nota

Você pode configurar uma ou mais métricas. Se você configurar várias métricas, a aplicação realizará scale-out quando qualquer uma das métricas atingir ou exceder seu valor de destino, até o número máximo de instâncias especificado. A aplicação realizará scale-in somente quando todas as métricas estiverem abaixo de seus valores de destino, até o número mínimo de instâncias especificado.

{"maxReplicas":3,"minReplicas":1,"metrics":[{"metricType":"CPU","metricTargetAverageUtilization":20},{"metricType":"MEMORY","metricTargetAverageUtilization":30},{"metricType":"tcpActiveConn","metricTargetAverageUtilization":20},{"metricType":"SLB_QPS","MetricTargetAverageUtilization":25,"slbId":"lb-xxx","slbProject":"aliyun-fc-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","slbLogstore":"function-log","vport":"80"},{"metricType":"SLB_RT","MetricTargetAverageUtilization":35,"slbId":"lb-xxx","slbProject":"aliyun-fc-cn-hangzhou-d95881d9-5d3c-5f26-a6b8-************","slbLogstore":"function-log","vport":"80"}],"scaleUpRules":{"step":"100","disabled":false,"stabilizationWindowSeconds":0},"scaleDownRules":{"step":"100","disabled":false,"stabilizationWindowSeconds":300}}

MinReadyInstances

integer

Não

O número mínimo de instâncias prontas. Valores válidos:

  • Se você definir este parâmetro como 0, a aplicação será interrompida durante uma atualização.

  • Se você definir este parâmetro como -1, o sistema definirá o valor como 25% do número atual de instâncias, arredondado para cima. Por exemplo, se a aplicação tiver 5 instâncias, o número mínimo de instâncias prontas será 2 (5 × 25% = 1,25, arredondado para 2).

Nota

Para garantir a continuidade do serviço durante uma implantação rolling, recomendamos definir o número mínimo de instâncias prontas como 1 ou mais.

3

MinReadyInstanceRatio

integer

Não

O número mínimo de instâncias prontas, especificado como uma porcentagem do número total de instâncias. Valores válidos:

  • -1: Indica que uma porcentagem não é usada. Neste caso, o valor de MinReadyInstances é utilizado.

  • 0~100: Uma porcentagem. O resultado é arredondado para cima. Por exemplo, se você definir este parâmetro como 50 (%) e a aplicação tiver 5 instâncias, o número mínimo de instâncias prontas será 3.

Nota

Se você especificar tanto MinReadyInstances quanto um MinReadyInstanceRatio diferente de -1, MinReadyInstanceRatio terá precedência. Por exemplo, se MinReadyInstances estiver definido como 5 e MinReadyInstanceRatio estiver definido como 50, o sistema usará 50 (%) para calcular o número mínimo de instâncias prontas.

-1

ScalingRuleEnable

boolean

Não

Especifica se a política de auto scaling deve ser habilitada. Valores válidos:

  • true: Habilitada.

  • false: Desabilitada.

true

EnableIdle

boolean

Não

Especifica se o modo ocioso deve ser habilitado para a aplicação.

Elementos de resposta

Elemento

Tipo

Descrição

Exemplo

object

O objeto de resposta.

RequestId

string

O ID da solicitação.

91F93257-7A4A-4BD3-9A7E-2F6EAE6D****

TraceId

string

O ID de rastreamento. Você pode usar este ID para consultar os detalhes de uma solicitação.

0a98a02315955564772843261e****

Data

object

Os dados retornados.

Timer

object

As configurações para a política de auto scaling agendado.

EndDate

string

The end date of the scheduled auto scaling policy.

  • If both BeginDate and EndDate are null, the policy is a long-term policy. This is the default.

  • For example, if you set BeginDate to 2021-03-25 and EndDate to 2021-04-25, the policy is active for one month.

2021-04-25

BeginDate

string

The start date of the scheduled auto scaling policy.

  • If both BeginDate and EndDate are null, the policy is a long-term policy. This is the default.

  • For example, if you set BeginDate to 2021-03-25 and EndDate to 2021-04-25, the policy is active for one month.

2021-03-25

Schedules

array<object>

The trigger points for the scheduled auto scaling policy.

object

The configuration for a single trigger within the schedule.

AtTime

string

The trigger time. The format is HH:mm.

08:00

TargetReplicas

integer

The target number of instances.

3

MaxReplicas

integer

The maximum number of instances.

10

MinReplicas

integer

The minimum number of instances.

5

Period

string

The recurrence pattern for the scheduled auto scaling policy. Valid values:

  • * * *: The policy is executed at a specified time every day.

  • * * Fri,Mon: The policy is executed at a specified time on specific days of the week. You can select multiple days. The time is in the GMT+8 time zone. Valid values:

    • Sun: Sunday

    • Mon: Monday

    • Tue: Tuesday

    • Wed: Wednesday

    • Thu: Thursday

    • Fri: Friday

    • Sat: Saturday

  • 1,2,3,28,31 * *: The policy is executed at a specified time on specific days of a month. You can select multiple days. The value can be from 1 to 31. If a specified day does not exist in a given month (for example, the 31st), the policy is not executed on that day.

* * *

UpdateTime

integer

A hora em que a política foi atualizada pela última vez, em milissegundos.

1616642248938

AppId

string

O ID da aplicação.

7171a6ca-d1cd-4928-8642-7d5cfe69****

CreateTime

integer

A hora em que a política foi criada, em milissegundos.

1616642248938

LastDisableTime

integer

A hora em que a política de auto scaling foi desabilitada pela última vez, em milissegundos.

1641882854484

ScaleRuleEnabled

boolean

Indica se a política de auto scaling está habilitada. Valores válidos:

  • true: A política está habilitada.

  • false: A política está desabilitada.

true

ScaleRuleType

string

O tipo da política de auto scaling. Valores válidos:

  • timing: auto scaling agendado.

  • metric: auto scaling baseado em métricas.

  • mix: auto scaling misto.

timing

Metric

object

As configurações para a política de auto scaling baseado em métricas.

Metrics

array<object>

An array of objects that define the metrics for the metric-based auto scaling policy.

object

The configuration for a single metric.

MetricTargetAverageUtilization

integer

The target value for the metric.

  • The target CPU utilization, in percentage.

  • The target memory utilization, in percentage.

  • The target QPS.

  • The target response time, in milliseconds.

  • The target average number of active TCP connections per second.

  • The target QPS for a public-facing SLB instance.

  • The target response time for a public-facing SLB instance, in milliseconds.

  • The target QPS for an internal-facing SLB instance.

  • The target response time for an internal-facing SLB instance, in milliseconds.

20

MetricType

string

The type of the metric that triggers the auto scaling policy. Valid values:

  • CPU: CPU utilization.

  • MEMORY: memory utilization.

  • QPS: The average QPS per instance over 1 minute for a Java application.

  • RT: The average response time across all service endpoints over 1 minute for a Java application.

  • tcpActiveConn: The average number of TCP active connections per instance over 30 seconds.

  • SLB_QPS: The average QPS per instance for a public SLB instance, measured over 15 seconds.

  • SLB_RT: The average response time for a public SLB instance, measured over 15 seconds.

  • INTRANET_SLB_QPS: The average QPS per instance for an internal-facing SLB instance, measured over 15 seconds.

  • INTRANET_SLB_RT: The average response time for an internal-facing SLB instance, measured over 15 seconds.

CPU

SlbProject

string

The Log Service project for SLB access logs.

test

SlbLogstore

string

The Log Service Logstore for SLB access logs.

test

Vport

string

The port of the SLB instance.

80

SlbId

string

The ID of the SLB instance.

lb-xxx

MaxReplicas

integer

The maximum number of instances.

3

MinReplicas

integer

The minimum number of instances.

1

ScaleRuleName

string

O nome da política de auto scaling.

test

EnableIdle

boolean

Indica se o modo ocioso está habilitado.

Message

string

A mensagem de resposta. Valores válidos:

  • Retorna success se a solicitação for bem-sucedida.

  • Retorna uma mensagem de erro se a solicitação falhar.

success

ErrorCode

string

O código de erro. Valores válidos:

  • Este parâmetro não é retornado se a solicitação for bem-sucedida.

  • Um código de erro é retornado se a solicitação falhar. Para mais informações, consulte a seção Códigos de erro neste tópico.

Code

string

O código de status HTTP. Valores válidos:

  • 2xx: A solicitação foi bem-sucedida.

  • 3xx: A solicitação foi redirecionada.

  • 4xx: Ocorreu um erro do cliente.

  • 5xx: Ocorreu um erro do servidor.

200

Success

boolean

Indica se a solicitação foi bem-sucedida. Valores válidos:

  • true: A chamada de API foi bem-sucedida.

  • false: A chamada de API falhou.

true

Exemplos

Resposta de sucesso

JSON formato

{
  "RequestId": "91F93257-7A4A-4BD3-9A7E-2F6EAE6D****",
  "TraceId": "0a98a02315955564772843261e****",
  "Data": {
    "Timer": {
      "EndDate": "2021-04-25",
      "BeginDate": "2021-03-25",
      "Schedules": [
        {
          "AtTime": "08:00",
          "TargetReplicas": 3,
          "MaxReplicas": 10,
          "MinReplicas": 5
        }
      ],
      "Period": "* * *"
    },
    "UpdateTime": 1616642248938,
    "AppId": "7171a6ca-d1cd-4928-8642-7d5cfe69****",
    "CreateTime": 1616642248938,
    "LastDisableTime": 1641882854484,
    "ScaleRuleEnabled": true,
    "ScaleRuleType": "timing",
    "Metric": {
      "Metrics": [
        {
          "MetricTargetAverageUtilization": 20,
          "MetricType": "CPU",
          "SlbProject": "test",
          "SlbLogstore": "test",
          "Vport": "80",
          "SlbId": "lb-xxx"
        }
      ],
      "MaxReplicas": 3,
      "MinReplicas": 1
    },
    "ScaleRuleName": "test",
    "EnableIdle": false
  },
  "Message": "success",
  "ErrorCode": "",
  "Code": "200",
  "Success": true
}

Códigos de erro

Código de status HTTP

Código de erro

Mensagem de erro

Descrição

400 InstanceExist.ScalingRuleName The specified ScalingRuleName already exists. The specified ScalingRuleName already exists.
400 InvalidScalingRuleDate.BeginAfterEnd The specified beginning time is later than the ending time. The specified begin date is later than the end date.
400 InvalidScalingRuleDate.Format The specified date is invalid. The specified date is invalid. The correct format is yyyy-MM-dd .
400 InvalidScalingRuleName.NotFound The specified ScalingRuleName does not exist. The specified ScalingRuleName does not exist.
400 InvalidScalingRuleTime.Conflict The specified scaling rule time is invalid. Another schedule has been set for the specified time range. Please set a different time. The specified scaling rule time is invalid. Another schedule has been set for the specified time range. Please set a different time.
400 InvalidScalingRuleTime.Format The specified time is invalid. The specified time is invalid. The correct format is HH:mm .
400 QuotaExceeded.ScalingRule The maximum number of application scaling rules is exceeded. The maximum number of application scaling rules is exceeded.
400 QuotaExceeded.ScalingRuleTime The maximum number of scaling policy trigger time is exceeded. Scaling rule time quota exceeded.
400 NoComputeResourceQuota.App.Exceed You can create %s instances for each application. Please submit a ticket to raise the quota. You can create %s instances for each application. please join the DingTalk group 32874633 for technical support.
400 NoComputeResourceQuota.Exceed Your compute resource is insufficient. Please contact us to raise the quota.
400 NoComputeResourceQuota.User.Exceed Your account is limited to create %s instances. Please submit a ticket to raise the quota. Your account is limited to create %s instances. please join the DingTalk group 32874633 for technical support.
400 System.Upgrading The system is being upgraded. Please try again later.
400 OperationDenied.SDKNotSupported Metrics is not supported in SDK
400 MinReadyInstances.Not.Smaller.Replicas The minimum number of available instances must be less than the number of application instances. The minimum number of available instances must be less than the number of application instances.
400 MinReadyInstanceRatio.Invalid The ratio of minimum available instances must be between 0 and 100.

Consulte Códigos de Erro para uma lista completa.

Notas de versão

Consulte Notas de Versão para uma lista completa.