View a markdown version of this page

Avvio di istanze con provisioning sincrono - Amazon EC2 Auto Scaling

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Avvio di istanze con provisioning sincrono

Puoi utilizzare l' LaunchInstances API per avviare in modo sincrono un numero specifico di istanze nel tuo gruppo Auto Scaling. L'API avvia le istanze nella zona di disponibilità o nella sottorete specificata e restituisce immediatamente le informazioni sull'istanza o sull'errore. IDs

Prerequisiti

Prima di poter utilizzare l' LaunchInstances API, è necessario disporre di:

  • Un gruppo Auto Scaling che utilizza un modello di avvio (le configurazioni di avvio non sono supportate)

  • È necessario disporre delle autorizzazioni per le seguenti azioni IAM:

    • autoscaling:LaunchInstances

    • ec2:CreateFleet

    • ec2:DescribeLaunchTemplateVersions

Avvia istanze con provisioning sincrono

È possibile avviare istanze con provisioning sincrono tramite. AWS CLI

AWS CLI

Per avviare istanze con provisioning sincrono:

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]

Esempi

Avvio di istanze in una zona di disponibilità specifica

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

Avvio di istanze in una sottorete specifica

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

Gestione delle risposte

Esempio di risposta riuscita:

{ "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": [] }

Esempio di risposta con errori

{ "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'" } ] }

Gestisci gli errori di avvio e i nuovi tentativi

Quando l' LaunchInstances API riscontra errori, puoi implementare strategie di ripetizione dei tentativi utilizzando token di idempotenza e politiche di ripetizione dei tentativi appropriate.

È possibile utilizzare il parametro client-token per riprovare le richieste. È inoltre possibile utilizzare le seguenti strategie di riprova:

  • RetryStrategy: none(impostazione predefinita) - Se la chiamata API fallisce, la capacità desiderata del gruppo Auto Scaling rimane invariata e non si verifica alcun tentativo automatico.

  • RetryStrategy: retry-with-group-configuration- Se la chiamata API fallisce, la capacità desiderata del gruppo Auto Scaling viene aumentata della quantità richiesta e Auto Scaling riproverà automaticamente ad avviare le istanze utilizzando la configurazione e i processi standard del gruppo.

Il comportamento dei nuovi tentativi dipende dal tipo di erroreRetryStrategy: retry-with-group-configuration:

  • Errori di convalida: la capacità desiderata non viene aumentata poiché l'operazione non può continuare. Ad esempio, parametri non validi o configurazioni non supportate.

  • Errori di capacità: la capacità desiderata è aumentata e Auto Scaling riproverà ad avviare le istanze in modo asincrono utilizzando i normali processi di scalabilità del gruppo.

Utilizzo dei token client per l'idempotenza

Il client-token parametro garantisce operazioni idempotenti e consente di ripetere in sicurezza le richieste di avvio.

Comportamenti chiave:

  • I token client hanno una durata di 8 ore dalla richiesta iniziale

  • Un nuovo tentativo con lo stesso token client entro 8 ore restituisce la risposta memorizzata nella cache anziché avviare nuove istanze

  • Dopo 8 ore, lo stesso token client avvierà una nuova operazione di avvio