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.
Cohérence éventuelle sur Amazon EC2 API
L'Amazon EC2 API suit un modèle de cohérence éventuel, en raison de la nature distribuée du système prenant en charge leAPI. Cela signifie que le résultat d'une API commande que vous exécutez et qui affecte vos EC2 ressources Amazon peut ne pas être immédiatement visible pour toutes les commandes suivantes que vous exécuterez. Vous devez garder cela à l'esprit lorsque vous exécutez une API commande qui suit immédiatement une API commande précédente.
La cohérence éventuelle peut affecter la façon dont vous gérez vos ressources. Par exemple, si vous exécutez une commande pour créer une ressource, elle sera éventuellement visible par les autres commandes. Cela signifie que si vous exécutez une commande pour modifier ou décrire la ressource que vous venez de créer, son identifiant ne s'est peut-être pas propagé dans tout le système et vous recevrez un message d'erreur indiquant que la ressource n'existe pas.
Pour gérer une éventuelle cohérence, vous pouvez effectuer les opérations suivantes :
-
Vérifiez l'état de la ressource avant d'exécuter une commande pour la modifier. Exécutez la
Describe
commande appropriée à l'aide d'un algorithme de réduction exponentielle pour vous assurer de laisser suffisamment de temps à la commande précédente pour se propager dans le système. Pour ce faire, exécutez laDescribe
commande à plusieurs reprises, en commençant par un temps d'attente de quelques secondes, puis en augmentant progressivement jusqu'à cinq minutes. -
Ajoutez un temps d'attente entre les commandes suivantes, même si une
Describe
commande renvoie une réponse précise. Appliquez un algorithme de réduction exponentielle en commençant par quelques secondes d'attente, puis augmentez progressivement jusqu'à environ cinq minutes.
Exemples d'erreurs de cohérence éventuelles
Vous trouverez ci-dessous des exemples de codes d'erreur que vous pourriez rencontrer en raison d'une éventuelle cohérence.
-
InvalidInstanceID.NotFound
Si vous exécutez la
RunInstances
commande avec succès, puis que vous exécutez immédiatement une autre commande en utilisant l'ID d'instance fourni dans la réponse deRunInstances
, uneInvalidInstanceID.NotFound
erreur peut être renvoyée. Cela ne signifie pas que l'instance n'existe pas.Certaines commandes spécifiques susceptibles d'être affectées sont les suivantes :
-
DescribeInstances
: pour confirmer l'état réel de l'instance, exécutez cette commande à l'aide d'un algorithme de rétrogradation exponentielle. -
TerminateInstances
: Pour confirmer l'état de l'instance, exécutez d'abord laDescribeInstances
commande à l'aide d'un algorithme de rétrogradation exponentielle.Important
Si un
InvalidInstanceID.NotFound
message d'erreur s'affiche après l'exécutionTerminateInstances
, cela ne signifie pas que l'instance est ou sera interrompue. Votre instance est peut-être toujours en cours d'exécution. C'est pourquoi il est important de confirmer d'abord l'état de l'instance à l'aide deDescribeInstances
.
-
-
InvalidGroup.NotFound
Si vous exécutez correctement la
CreateSecurityGroup
commande, puis que vous exécutez immédiatement une autre commande en utilisant l'ID de groupe de sécurité fourni dans la réponse deCreateSecurityGroup
, uneInvalidGroup.NotFound
erreur peut être renvoyée. Pour confirmer l'état du groupe de sécurité, exécutez laDescribeSecurityGroups
commande à l'aide d'un algorithme de réduction exponentielle. -
InstanceLimitExceeded
Vous avez demandé un nombre d'instances supérieur à ce que votre limite d'instances actuelle autorise pour le type d'instance spécifié. Vous pourriez atteindre cette limite de façon inattendue si vous lancez et mettez fin à des instances rapidement, car les instances résiliées sont prises en compte dans votre limite d'instances pendant un certain temps après leur résiliation.