

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
<a name="launching-instances-synchronous-provisioning"></a>

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
<a name="prerequisites-synchronous-provisioning"></a>

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
<a name="launch-instances-cli"></a>

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

### AWS CLI
<a name="aws-cli-launch-instances"></a>

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
<a name="examples-launch-instances"></a>

**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
<a name="handling-responses"></a>

**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
<a name="handle-launch-failures-retries"></a>

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
<a name="client-tokens-sp"></a>

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