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à.
Eventuale coerenza nell'API Amazon EC2
L' EC2 API Amazon segue un eventuale modello di coerenza, dovuto alla natura distribuita del sistema che supporta l'API. Ciò significa che il risultato di un comando API che esegui che influisce sulle tue EC2 risorse Amazon potrebbe non essere immediatamente visibile a tutti i comandi successivi che esegui. È necessario tenerlo a mente quando si esegue un comando API che segue immediatamente un comando API precedente.
L'eventuale coerenza può influire sul modo in cui gestisci le tue risorse. Ad esempio, se si esegue un comando per creare una risorsa, alla fine questa sarà visibile agli altri comandi. Ciò significa che se si esegue un comando per modificare o descrivere la risorsa appena creata, è possibile che il relativo ID non si sia propagato in tutto il sistema e si verificherà un errore che indica che la risorsa non esiste.
Per gestire la coerenza finale, procedi nel modo seguente:
-
Confermate lo stato della risorsa prima di eseguire un comando per modificarla. Esegui il comando
Describeappropriato utilizzando un algoritmo di backoff esponenziale per assicurarti di concedere tempo sufficiente per la propagazione del comando precedente nel sistema. A tale scopo, esegui ilDescribecomando ripetutamente, iniziando con un paio di secondi di attesa e aumentando gradualmente fino a qualche minuto di attesa. -
Aggiungi il tempo di attesa tra i comandi successivi, anche se un comando
Describerestituisce una risposta accurata. Applica un algoritmo di backoff esponenziale a partire da un paio di secondi di attesa e aumenta gradualmente fino a qualche minuto di attesa.
Eventuali esempi di errori di coerenza
Di seguito sono riportati alcuni esempi di codici di errore che potrebbero verificarsi a causa dell'eventuale coerenza.
-
InvalidInstanceID.NotFoundSe si esegue correttamente il
RunInstancescomando e quindi si esegue immediatamente un altro comando utilizzando l'ID di istanza fornito nella risposta diRunInstances, è possibile che venga restituito unInvalidInstanceID.NotFounderrore. Ciò non significa che l'istanza non esista.Alcuni comandi specifici che potrebbero essere interessati sono:
-
DescribeInstances: per confermare lo stato effettivo dell'istanza, esegui questo comando utilizzando un algoritmo di backoff esponenziale. -
TerminateInstances: per confermare lo stato dell'istanza, eseguite innanzitutto ilDescribeInstancescomando utilizzando un algoritmo di backoff esponenziale.Importante
Se si
InvalidInstanceID.NotFoundverifica un errore dopo l'esecuzioneTerminateInstances, ciò non significa che l'istanza sia o verrà terminata. L'istanza potrebbe essere ancora in esecuzione. Questo è il motivo per cui è importante confermare innanzitutto lo stato dell'istanza utilizzandoDescribeInstances.
-
-
InvalidGroup.NotFoundSe si esegue correttamente il
CreateSecurityGroupcomando e quindi si esegue immediatamente un altro comando utilizzando l'ID del gruppo di sicurezza fornito nella risposta diCreateSecurityGroup, è possibile che venga restituito unInvalidGroup.NotFounderrore. Per confermare lo stato del gruppo di sicurezza, esegui ilDescribeSecurityGroupscomando utilizzando un algoritmo di backoff esponenziale. -
InstanceLimitExceededHai richiesto un numero di istanze superiore a quello consentito dal limite di istanze corrente per il tipo di istanza specificato. Potresti raggiungere questo limite in modo imprevisto se avvii e chiudi le istanze rapidamente, poiché le istanze terminate contano ai fini del limite di istanze per un certo periodo dopo la loro chiusura.