Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Lancement d'instances avec provisionnement synchrone
Vous pouvez utiliser l' LaunchInstances API pour lancer de manière synchrone un nombre spécifique d'instances dans votre groupe Auto Scaling. L'API lance des instances dans la zone de disponibilité ou le sous-réseau que vous spécifiez et renvoie immédiatement les informations relatives à l'instance IDs ou à l'erreur.
Conditions préalables
Avant de pouvoir utiliser l' LaunchInstances API, vous devez disposer des éléments suivants :
-
Un groupe Auto Scaling qui utilise un modèle de lancement (les configurations de lancement ne sont pas prises en charge)
-
Vous devez disposer d'autorisations pour les actions IAM suivantes :
-
autoscaling:LaunchInstances -
ec2:CreateFleet -
ec2:DescribeLaunchTemplateVersions
-
Lancer des instances avec un provisionnement synchrone
Vous pouvez lancer des instances avec un provisionnement synchrone via le. AWS CLI
AWS CLI
Pour lancer des instances avec un provisionnement synchrone :
aws autoscaling launch-instances \ --auto-scaling-group-namegroup-name\ --requested-capacitynumber\ [--availability-zoneszone-name] \ [--subnet-idssubnet-id] \ [--availability-zone-idszone-id] \ [--retry-strategynone|retry-with-group-configuration] \ [--client-tokentoken]
Exemples
Lancement d'instances dans une zone de disponibilité spécifique
aws autoscaling launch-instances \ --auto-scaling-group-namemy-asg\ --requested-capacity3\ --availability-zonesus-east-1a\ --retry-strategyretry-with-group-configuration
Lancement d'instances dans un sous-réseau spécifique
aws autoscaling launch-instances \ --auto-scaling-group-namemy-asg\ --requested-capacity2\ --subnet-idssubnet-12345678\ --retry-strategynone\ --client-tokenmy-unique-token-123
Gestion des réponses
Exemple de réponse réussie :
{ "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": [] }
Exemple de réponse comportant des erreurs
{ "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'" } ] }
Gérer les échecs de lancement et les nouvelles tentatives
Lorsque l' LaunchInstances API rencontre des échecs, vous pouvez mettre en œuvre des stratégies de nouvelle tentative à l'aide de jetons d'idempotencie et de politiques de nouvelle tentative appropriées.
Vous pouvez utiliser le paramètre client-token pour réessayer les demandes. Vous pouvez également utiliser les stratégies de nouvelle tentative suivantes :
-
RetryStrategy: none(par défaut) - Si l'appel d'API échoue, la capacité souhaitée du groupe Auto Scaling reste inchangée et aucune nouvelle tentative automatique n'est effectuée. -
RetryStrategy: retry-with-group-configuration- Si l'appel d'API échoue, la capacité souhaitée du groupe Auto Scaling est augmentée du montant demandé, et Auto Scaling réessaiera automatiquement de lancer des instances en utilisant la configuration et les processus standard du groupe.
Le comportement des nouvelles tentatives RetryStrategy: retry-with-group-configuration dépend du type d'échec :
-
Erreurs de validation : la capacité souhaitée n'est pas augmentée car l'opération ne peut pas se poursuivre. Par exemple, des paramètres non valides ou des configurations non prises en charge.
-
Erreurs de capacité : la capacité souhaitée est augmentée et Auto Scaling réessaiera de lancer des instances de manière asynchrone en utilisant les processus de dimensionnement habituels du groupe.
Utilisation de jetons clients pour l'idempuissance
Le client-token paramètre garantit des opérations idempotentes et permet de réessayer en toute sécurité les demandes de lancement.
Comportements clés :
-
Les jetons clients ont une durée de vie de 8 heures à compter de la demande initiale
-
Une nouvelle tentative avec le même jeton client dans les 8 heures renvoie la réponse mise en cache au lieu de lancer de nouvelles instances
-
Après 8 heures, le même jeton client lancera une nouvelle opération de lancement