Todos os produtos
Search
Central de documentação

Resource Orchestration Service:ALIYUN::ESS::ScalingGroup

Última atualização: Jun 27, 2026

O recurso ALIYUN::ESS::ScalingGroup cria um grupo de dimensionamento, composto por instâncias ECS para o mesmo cenário de aplicação. O grupo só entra em vigor após a ativação com ALIYUN::ESS::ScalingGroupEnable, que dispara atividades e executa regras de dimensionamento.

Sintaxe

{
  "Type": "ALIYUN::ESS::ScalingGroup",
  "Properties": {
    "MultiAZPolicy": String,
    "DesiredCapacity": Integer,
    "NotificationConfigurations": List,
    "ProtectedInstances": List,
    "LaunchTemplateId": String,
    "LaunchTemplateVersion": String,
    "ScalingGroupName": String,
    "VSwitchIds": List,
    "DefaultCooldown": Integer,
    "MinSize": Integer,
    "GroupDeletionProtection": Boolean,
    "MaxSize": Integer,
    "InstanceId": String,
    "VSwitchId": String,
    "LoadBalancerIds": List,
    "StandbyInstances": List,
    "RemovalPolicys": List,
    "HealthCheckType": String,
    "DBInstanceIds": List,
    "Tags": List,
    "OnDemandPercentageAboveBaseCapacity": Integer,
    "CompensateWithOnDemand": Boolean,
    "ContainerGroupId": String,
    "ScalingPolicy": String,
    "SpotInstanceRemedy": Boolean,
    "SpotInstancePools": Integer,
    "OnDemandBaseCapacity": Integer,
    "GroupType": String,
    "LaunchTemplateOverrides": List,
    "AllocationStrategy": String,
    "AzBalance": Boolean,
    "MaxInstanceLifetime": Integer,
    "CustomPolicyARN": String,
    "SpotAllocationStrategy": String,
    "HealthCheckTypes": List,
    "ServerGroups": List,
    "ResourceGroupId": String
  }
}

Propriedades

Nome da propriedade

Tipo

Obrigatório

Atualizável

Descrição

Restrições

MinSize

Integer

Sim

Sim

Número mínimo de instâncias ECS no grupo de dimensionamento.

Valores válidos: 0 a 1000.

O Auto Scaling cria instâncias automaticamente quando a quantidade fica abaixo deste valor.

MaxSize

Integer

Sim

Sim

Número máximo de instâncias ECS no grupo de dimensionamento.

Valores válidos: 0 a 1000.

O Auto Scaling remove instâncias automaticamente quando a quantidade excede este valor.

ScalingGroupName

String

Não

Sim

Nome de exibição do grupo de dimensionamento.

O nome deve ter entre 2 e 64 caracteres. Deve começar com um dígito, uma letra ou um caractere chinês. Pode conter letras, caracteres chineses, dígitos, sublinhados (_), hifens (-) e pontos (.).

O nome deve ser exclusivo na mesma região e sob a mesma conta Alibaba Cloud.

Valor padrão: o ID do grupo de dimensionamento.

LaunchTemplateId

String

Não

Sim

ID do modelo de execução usado para criar instâncias.

Nenhuma

LaunchTemplateVersion

String

Não

Sim

Versão do modelo de execução ECS.

Valores válidos:

  • Um número fixo de versão do modelo.

  • Default: Sempre utiliza a versão padrão do modelo.

  • Latest: Sempre utiliza a versão mais recente do modelo.

RemovalPolicys

List

Não

Sim

Políticas para remover instâncias ECS do grupo de dimensionamento.

Valores válidos:

  • OldestInstance (Padrão): Remove a instância ECS adicionada ao grupo de dimensionamento há mais tempo.

  • NewestInstance: Remove a instância ECS adicionada ao grupo de dimensionamento mais recentemente.

  • OldestScalingConfiguration (Padrão): Remove instâncias ECS criadas com base na configuração de dimensionamento mais antiga.

VSwitchId

String

Não

Sim

ID do vSwitch.

Nenhuma

LoadBalancerIds

List

Não

Sim

IDs das instâncias SLB.

Array JSON com até cinco IDs de instância slb, separados por vírgulas (,).

DefaultCooldown

Integer

Não

Sim

Tempo de resfriamento após a conclusão de uma atividade de dimensionamento.

Valores válidos: 0 a 86.400.

Unidade: segundos.

Valor padrão: 300.

Durante o resfriamento, o grupo de dimensionamento rejeita outras atividades de dimensionamento. Aplica-se apenas a atividades disparadas por tarefas baseadas em eventos do CloudMonitor.

DBInstanceIds

List

Não

Sim

IDs das instâncias ApsaraDB RDS.

Array JSON com até oito IDs de instância RDS, separados por vírgulas (,).

VSwitchIds

List

Não

Sim

IDs de múltiplos vSwitches.

Até cinco IDs de vSwitch. Substitui VSwitchId quando ambos são especificados. Os vSwitches seguem uma ordem de prioridade; se a criação da instância falhar em uma zona de maior prioridade, o próximo vSwitch será utilizado.

MultiAZPolicy

String

Não

Sim

Política de dimensionamento para instâncias ECS em um grupo de dimensionamento multizona.

Valores válidos:

  • PRIORITY: Dimensiona instâncias com base nos vSwitches definidos. Se não for possível criar uma instância ECS na zona do vSwitch de maior prioridade, o vSwitch de próxima prioridade será usado automaticamente.

  • BALANCE: Distribui instâncias ECS uniformemente pelas zonas especificadas para o grupo de dimensionamento.

  • COST_OPTIMIZED: Cria instâncias em ordem crescente de preço unitário de vCPU. Prioriza instâncias spot quando vários tipos de instância usam faturamento spot. Recorre a instâncias pay-as-you-go se as instâncias spot estiverem indisponíveis.

NotificationConfigurations

List

Não

Sim

Configurações de notificação para eventos e alterações de recursos.

Propriedades de NotificationConfigurations.

ProtectedInstances

List

Não

Sim

Quantidade de instâncias ECS protegidas no grupo de dimensionamento.

É possível especificar até 1.000 instâncias.

StandbyInstances

List

Não

Sim

Quantidade de instâncias ECS em espera no grupo de dimensionamento.

É possível especificar até 1.000 instâncias.

HealthCheckTypes

List

Não

Sim

Tipos de verificação de integridade para o grupo de dimensionamento.

Valores válidos:

  • NONE: Nenhuma verificação de integridade é realizada.

  • ECS: Realiza verificações de integridade nas instâncias do grupo de dimensionamento. Este valor ativa verificações de integridade de instância tanto para grupos de dimensionamento ECS quanto ECI.

  • LOAD_BALANCER: Determina o status de integridade de uma instância com base nos resultados da verificação de integridade do balanceador de carga. CLB não é suportado.

HealthCheckType

String

Não

Sim

Tipo de verificação de integridade.

Valores válidos:

  • ECS

  • NONE

GroupDeletionProtection

Boolean

Não

Sim

Ativa ou desativa a proteção contra exclusão para o grupo de dimensionamento.

Valores válidos:

  • true: Ative a proteção contra exclusão. O grupo de dimensionamento não pode ser excluído.

  • false (Padrão): Desativa a proteção contra exclusão.

DesiredCapacity

Integer

Não

Sim

Número esperado de instâncias ECS no grupo de dimensionamento. O Auto Scaling mantém a contagem de instâncias neste valor.

O valor deve ser maior ou igual a MinSize e menor ou igual a MaxSize.

InstanceId

String

Não

Não

ID de uma instância ECS a partir da qual o sistema deriva uma configuração de dimensionamento durante a criação do grupo.

Nenhuma

Tags

List

Não

Sim

As tags.

É possível adicionar até 20 tags.

Propriedades de Tags.

OnDemandPercentageAboveBaseCapacity

Integer

Não

Sim

Porcentagem de instâncias on-demand entre as instâncias que excedem a capacidade base.

Após atingir OnDemandBaseCapacity, esta porcentagem aplica-se às instâncias adicionais além da base.

Valores válidos: 0 a 100.

CompensateWithOnDemand

Boolean

Não

Sim

Indica se devem ser criadas instâncias on-demand para atender à contagem necessária de instâncias ECS.

Efetivo apenas quando MultiAZPolicy é COST_OPTIMIZED. Crie instâncias on-demand quando instâncias spot estão indisponíveis devido a restrições de preço ou estoque.

Valores válidos:

  • true (Padrão): Sim.

  • false: Não.

ContainerGroupId

String

Não

Não

ID da instância ECI.

Nenhuma

ScalingPolicy

String

Não

Não

Modo de recuperação do grupo de dimensionamento.

Valores válidos:

  • recycle: As instâncias são paradas.

  • release: As instâncias são liberadas.

ScalingPolicy define o modo de recuperação. O comportamento real de remoção é determinado pelo parâmetro RemovePolicy de RemoveInstances.

SpotInstanceRemedy

Boolean

Não

Sim

Ative instâncias spot suplementares.

Valores válidos:

  • true: Ative instâncias spot suplementares.

    Quando ativado, o grupo de dimensionamento cria uma instância de substituição quando uma instância spot está prestes a ser recuperada.

  • false: Desativa instâncias spot suplementares.

SpotInstancePools

Integer

Não

Sim

Número de tipos de instância disponíveis.

O grupo de dimensionamento equilibra instâncias spot entre os tipos de instância de menor custo.

Valores válidos: 1 a 10.

OnDemandBaseCapacity

Integer

Não

Sim

Número mínimo de instâncias on-demand exigido pelo grupo de dimensionamento.

Valores válidos: 0 a 1000.

O sistema prioriza a criação de instâncias on-demand quando a contagem está abaixo deste valor.

GroupType

String

Não

Não

Tipo de instâncias gerenciadas pelo grupo de dimensionamento.

Valores válidos:

  • ECS (Padrão): O grupo de dimensionamento gerencia instâncias ECS.

  • ECI: O grupo de dimensionamento gerencia instâncias ECI.

LaunchTemplateOverrides

List

Não

Sim

Substituições de tipo de instância que estendem o modelo de execução.

Nenhuma

AllocationStrategy

String

Não

Sim

Política de alocação de capacidade.

Determina como o grupo de dimensionamento seleciona tipos de instância para atender aos requisitos de capacidade. Aplica-se tanto à capacidade on-demand quanto preemptível. Efetivo apenas quando MultiAZPolicy é COMPOSABLE.

Valores válidos:

  • priority (Padrão): Crie instâncias na ordem dos tipos de instância configurados.

  • lowestPrice: Crie instâncias em ordem crescente de preço unitário de vCPU dos tipos de instância.

AzBalance

Boolean

Não

Sim

Distribui uniformemente a capacidade do grupo de dimensionamento entre várias zonas.

Efetivo apenas quando MultiAZPolicy é COMPOSABLE.

Valores válidos:

  • true: A capacidade do grupo de dimensionamento é distribuída uniformemente entre várias zonas.

  • false (Padrão): A capacidade do grupo de dimensionamento não é distribuída uniformemente entre várias zonas.

MaxInstanceLifetime

Integer

Não

Sim

Tempo de vida máximo de uma instância no grupo de dimensionamento.

Unidade: segundos.

Valores válidos: 86400 a Integer.maxValue.

Valor padrão: null.

CustomPolicyARN

String

Não

Sim

ARN da função de política de redução de escala personalizada.

Este parâmetro é efetivo apenas quando a primeira política de remoção em RemovalPolicies está definida como CustomPolicy.

SpotAllocationStrategy

String

Não

Sim

Política de alocação para capacidade spot.

Estratégia de distribuição para capacidade spot. Efetivo apenas quando MultiAZPolicy é COMPOSABLE.

Valores válidos:

  • priority (Padrão): Crie instâncias na ordem dos tipos de instância configurados.

  • lowestPrice: Crie instâncias em ordem crescente de preço unitário de vCPU dos tipos de instância.

ServerGroups

List

Não

Não

Configurações de grupo de servidores do Server Load Balancer.

Propriedades de ServerGroups.

ResourceGroupId

String

Não

Sim

ID do grupo de recursos.

Nenhuma

Sintaxe de ServerGroups

"ServerGroups": [
  {
    "Type": String,
    "ServerGroupId": String,
    "Weight": Number,
    "Port": Number
  }
]  

Propriedades de ServerGroups

Nome da propriedade

Tipo

Obrigatório

Atualizável

Descrição

Restrições

Type

String

Sim

Não

Tipo de grupo de servidores do Server Load Balancer.

Valores válidos:

  • ALB: Application Load Balancer.

  • NLB: Network Load Balancer.

ServerGroupId

String

Sim

Não

ID do grupo de servidores do Server Load Balancer.

Nenhuma

Weight

Number

Sim

Não

Peso da instância ECS ou ECI como servidor backend.

Valores válidos: 0 a 100.

Um peso maior significa que mais solicitações são roteadas para a instância. Um peso 0 significa que a instância não recebe solicitações.

Port

Number

Sim

Não

Número da porta da instância ECS ou ECI backend.

Valores válidos: 1 a 65535.

Sintaxe de NotificationConfigurations

"NotificationConfigurations": [
  {
    "NotificationArn": String,
    "NotificationTypes": List
  }
]  

Propriedades de NotificationConfigurations

Nome da propriedade

Tipo

Obrigatório

Atualizável

Descrição

Restrições

NotificationArn

String

Sim

Não

Destinatário da notificação para ganchos de ciclo de vida. Suporta filas ou tópicos do Simple Message Queue (anteriormente MNS).

Valores válidos:

  • Formato de fila SMQ: acs:ess:{region}:{account-id}:queue/{queuename}.

  • Formato de tópico SMQ: acs:ess:{region}:{account-id}:topic/{topicname}.

NotificationTypes

List

Sim

Não

Tipos de notificação para eventos do Auto Scaling e alterações de recursos.

Nenhuma

Sintaxe de Tags

"Tags": [
  {
    "Key": String,
    "Value": String
  }
]  

Propriedades de Tags

Nome da propriedade

Tipo

Obrigatório

Atualizável

Descrição

Restrições

Key

String

Sim

Não

Chave da tag.

A chave deve ter entre 1 e 128 caracteres. Não pode começar com aliyun ou acs: e não pode conter http:// ou https://.

Value

String

Não

Não

Valor da tag.

O valor pode ter entre 0 e 128 caracteres. Não pode começar com aliyun ou acs: e não pode conter http:// ou https://.

Sintaxe de LaunchTemplateOverrides

"LaunchTemplateOverrides": [
  {
    "InstanceType": String,
    "WeightedCapacity": Integer,
    "SpotPriceLimit": Number
  }
]  

Propriedades de LaunchTemplateOverrides

Nome da propriedade

Tipo

Obrigatório

Atualizável

Descrição

Restrições

InstanceType

String

Não

Sim

Tipo de instância ECS.

Para dimensionar com base na capacidade do tipo de instância, especifique este parâmetro e LaunchTemplateOverrides.WeightedCapacity.

Substitui o tipo de instância no modelo de execução.

Nota

Este parâmetro é efetivo apenas quando um modelo de execução é especificado pelo parâmetro LaunchTemplateId.

WeightedCapacity

Integer

Não

Sim

Peso do tipo de instância.

Para dimensionar com base na capacidade do tipo de instância, especifique LaunchTemplateOverrides.InstanceType e este parâmetro.

Representa a capacidade de uma única instância deste tipo. Um peso maior significa que menos instâncias são necessárias para atender à capacidade esperada.

Defina pesos com base em métricas de desempenho, como contagem de vCPU e tamanho de memória.

Por exemplo:

  • Capacidade atual: 0.

  • Capacidade esperada: 6.

  • Capacidade de ecs.c5.xlarge: 4.

Para atender à capacidade esperada, o grupo de dimensionamento aumentará a escala com duas instâncias ecs.c5.xlarge.

Valores válidos: 1 a 500.

Nota

Durante um aumento de escala, a capacidade do grupo de dimensionamento não pode exceder MaxSize mais o peso máximo de um único tipo de instância.

SpotPriceLimit

Number

Não

Sim

Preço máximo para uma instância spot.

Preço máximo para uma instância spot do tipo especificado por LaunchTemplateOverrides.InstanceType.

Nota

Este parâmetro é efetivo apenas quando um modelo de execução é especificado pelo parâmetro LaunchTemplateId.

Valor de retorno

Fn::GetAtt

  • ScalingGroupId: O ID do grupo de dimensionamento.

  • ScalingGroupName: O nome do grupo de dimensionamento.

  • Arn: O Alibaba Cloud Resource Name (ARN).

Exemplos

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  VSwitch:
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    Type: String
    Label:
      zh-cn: VSwitch ID
      en: VSwitch ID
  LaunchTemplateId:
    AssociationProperty: ALIYUN::ECS::LaunchTemplate::LaunchTemplateId
    Type: String
Resources:
  ScalingGroup:
    Type: ALIYUN::ESS::ScalingGroup
    Properties:
      VSwitchId:
        Ref: VSwitch
      LaunchTemplateId:
        Ref: LaunchTemplateId
      MaxSize: 3
      ScalingGroupName: TestScalingGroup
      MinSize: 0
Outputs:
  ScalingGroupId:
    Description: The ID of the scaling group.
    Value:
      Fn::GetAtt:
        - ScalingGroup
        - ScalingGroupId
  ScalingGroupName:
    Description: The name of the scaling group.
    Value:
      Fn::GetAtt:
        - ScalingGroup
        - ScalingGroupName
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "VSwitch": {
      "AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
      "Type": "String",
      "Label": {
        "zh-cn": "VSwitch ID",
        "en": "VSwitch ID"
      }
    },
    "LaunchTemplateId":{
      "AssociationProperty":"ALIYUN::ECS::LaunchTemplate::LaunchTemplateId",
      "Type":"String"
    }
  },
  "Resources": {
    "ScalingGroup": {
      "Type": "ALIYUN::ESS::ScalingGroup",
      "Properties": {
        "VSwitchId": {
          "Ref": "VSwitch"
        },
        "LaunchTemplateId": {
          "Ref": "LaunchTemplateId"
        },
        "MaxSize": 3,
        "ScalingGroupName": "TestScalingGroup",
        "MinSize": 0
      }
    }
  },
  "Outputs": {
    "ScalingGroupId": {
      "Description": "The ID of the scaling group.",
      "Value": {
        "Fn::GetAtt": [
          "ScalingGroup",
          "ScalingGroupId"
        ]
      }
    },
    "ScalingGroupName": {
      "Description": "The name of the scaling group.",
      "Value": {
        "Fn::GetAtt": [
          "ScalingGroup",
          "ScalingGroupName"
        ]
      }
    }
  }
}

Quando um grupo de dimensionamento tem apenas uma configuração de dimensionamento que depende de outros recursos, defina DependsOn no grupo de dimensionamento para criar a dependência de recurso necessária.

Neste exemplo, ScalingGroup depende de SecurityGroup porque ScalingConfiguration o exige.

ROSTemplateFormatVersion: '2015-09-01'
Parameters:
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
  VSwitchId:
    AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
    Type: String
    AssociationPropertyMetadata:
      VpcId: ${VpcId}
Resources:
  ScalingGroupEnable:
    Type: ALIYUN::ESS::ScalingGroupEnable
    Properties:
      ScalingConfigurationId:
        Ref: ScalingConfiguration
      ScalingGroupId:
        Ref: ScalingGroup
      ScalingRuleArisExecuteVersion: 0
  SecurityGroup:
    Type: ALIYUN::ECS::SecurityGroup
    Properties:
      SecurityGroupName:
        Ref: ALIYUN::StackName
      VpcId:
        Ref: VpcId
      SecurityGroupIngress:
        - PortRange: '-1/-1'
          Priority: 1
          SourceCidrIp: 0.0.X.X/0
          IpProtocol: all
          NicType: internet
      SecurityGroupEgress:
        - PortRange: '-1/-1'
          Priority: 1
          IpProtocol: all
          DestCidrIp: 0.0.X.X/0
          NicType: internet
        - PortRange: '-1/-1'
          Priority: 1
          IpProtocol: all
          DestCidrIp: 0.0.X.X/0
          NicType: intranet
  ScalingConfiguration:
    Type: ALIYUN::ESS::ScalingConfiguration
    DependsOn: ScalingGroup
    Properties:
      InstanceType: ecs.g6e.large
      ImageId: centos_7_04_64_20G_alibase_201701015.vhd
      SystemDiskCategory: cloud_essd
      SystemDiskSize: 100
      ScalingConfigurationName:
        Ref: ALIYUN::StackName
      ScalingGroupId:
        Ref: ScalingGroup
      SecurityGroupId:
        Ref: SecurityGroup
  ScalingGroup:
    Type: ALIYUN::ESS::ScalingGroup
    DependsOn: SecurityGroup
    Properties:
      MaxSize: 3
      MinSize: 0
      DefaultCooldown: 15
      VSwitchId:
        Ref: VSwitchId
Outputs: {}