View a markdown version of this page

Lançamento de instâncias com provisionamento síncrono - Amazon EC2 Auto Scaling

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Lançamento de instâncias com provisionamento síncrono

Você pode usar a LaunchInstances API para executar de forma síncrona um número específico de instâncias em seu grupo de Auto Scaling. A API inicia instâncias na zona de disponibilidade ou sub-rede que você especifica e retorna imediatamente as informações da instância IDs ou do erro.

Pré-requisitos

Antes de usar a LaunchInstances API, você deve ter:

  • Um grupo de Auto Scaling que usa um modelo de execução (configurações de execução não são suportadas)

  • Você precisa ter permissões para as seguintes ações do IAM:

    • autoscaling:LaunchInstances

    • ec2:CreateFleet

    • ec2:DescribeLaunchTemplateVersions

Execute instâncias com provisionamento síncrono

Você pode iniciar instâncias com provisionamento síncrono por meio do. AWS CLI

AWS CLI

Para iniciar instâncias com provisionamento síncrono:

aws autoscaling launch-instances \ --auto-scaling-group-name group-name \ --requested-capacity number \ [--availability-zones zone-name] \ [--subnet-ids subnet-id] \ [--availability-zone-ids zone-id] \ [--retry-strategy none|retry-with-group-configuration] \ [--client-token token]

Exemplos

Lançamento de instâncias em uma zona de disponibilidade específica

aws autoscaling launch-instances \ --auto-scaling-group-name my-asg \ --requested-capacity 3 \ --availability-zones us-east-1a \ --retry-strategy retry-with-group-configuration

Lançamento de instâncias em uma sub-rede específica

aws autoscaling launch-instances \ --auto-scaling-group-name my-asg \ --requested-capacity 2 \ --subnet-ids subnet-12345678 \ --retry-strategy none \ --client-token my-unique-token-123

Lidando com respostas

Exemplo de uma resposta bem-sucedida:

{ "AutoScalingGroupName": "my-asg", "ClientToken": "my-unique-token-123", "Instances": [ { "InstanceType": "m5.xlarge", "AvailabilityZone": "us-east-1a", "AvailabilityZoneId": "use1-az1", "SubnetId": "subnet-12345678", "MarketType": "OnDemand", "InstanceIds": ["i-0123456789abcdef0", "i-0fedcba9876543210"] } ], "Errors": [] }

Exemplo de uma resposta com erros

{ "AutoScalingGroupName": "my-asg", "ClientToken": "my-unique-token-123", "Instances": [], "Errors": [ { "InstanceType": "m5.large", "AvailabilityZone": "us-east-1a", "AvailabilityZoneId": "use1-az1", "SubnetId": "subnet-12345678", "MarketType": "OnDemand", "ErrorCode": "InsufficientInstanceCapacity", "ErrorMessage": "There is not enough capacity to fulfill your request for instance type 'm5.large' in 'us-east-1a'" } ] }

Lidar com falhas de lançamento e novas tentativas

Quando a LaunchInstances API encontra falhas, você pode implementar estratégias de repetição usando tokens de idempotência e políticas de repetição apropriadas.

Você pode usar o parâmetro client-token para repetir as solicitações. Você também pode usar as seguintes estratégias de repetição:

  • RetryStrategy: none(padrão) - Se a chamada da API falhar, a capacidade desejada do grupo Auto Scaling permanecerá inalterada e nenhuma nova tentativa automática ocorrerá.

  • RetryStrategy: retry-with-group-configuration- Se a chamada de API falhar, a capacidade desejada do grupo de Auto Scaling será aumentada na quantidade solicitada, e o Auto Scaling tentará automaticamente iniciar instâncias novamente usando a configuração e os processos padrão do grupo.

O comportamento de repetição RetryStrategy: retry-with-group-configuration depende do tipo de falha:

  • Erros de validação: a capacidade desejada não é aumentada, pois a operação não pode continuar. Por exemplo, parâmetros inválidos ou configurações não suportadas.

  • Erros de capacidade: a capacidade desejada é aumentada e o Auto Scaling tentará executar novamente as instâncias de forma assíncrona usando os processos normais de escalabilidade do grupo.

Usando tokens de cliente para idempotência

O client-token parâmetro garante operações idempotentes e permite novas tentativas seguras de solicitações de lançamento.

Comportamentos principais:

  • Os tokens do cliente têm uma vida útil de 8 horas a partir da solicitação inicial

  • Tentar novamente com o mesmo token de cliente em 8 horas retorna a resposta em cache em vez de iniciar novas instâncias

  • Após 8 horas, o mesmo token de cliente iniciará uma nova operação de lançamento