Eventuelle Konsistenz im Amazon EC2 API - Amazon Elastic Compute Cloud

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Eventuelle Konsistenz im Amazon EC2 API

Amazon EC2 API folgt aufgrund des verteilten Charakters des Systems, das das unterstützt, einem eventuellen Konsistenzmodell. API Das bedeutet, dass das Ergebnis eines von Ihnen API ausgeführten Befehls, der sich auf Ihre EC2 Amazon-Ressourcen auswirkt, möglicherweise nicht sofort für alle nachfolgenden Befehle sichtbar ist, die Sie ausführen. Sie sollten dies berücksichtigen, wenn Sie einen API Befehl ausführen, der unmittelbar auf einen vorherigen API Befehl folgt.

Eventuelle Konsistenz kann sich auf die Art und Weise auswirken, wie Sie Ihre Ressourcen verwalten. Wenn Sie beispielsweise einen Befehl ausführen, um eine Ressource zu erstellen, wird diese irgendwann für andere Befehle sichtbar sein. Wenn Sie also einen Befehl ausführen, um die Ressource, die Sie gerade erstellt haben, zu ändern oder zu beschreiben, hat sich ihre ID möglicherweise nicht im gesamten System verbreitet und Sie erhalten eine Fehlermeldung, dass die Ressource nicht existiert.

Um die eventuelle Konsistenz zu gewährleisten, können Sie wie folgt vorgehen:

  • Bestätigen Sie den Status der Ressource, bevor Sie einen Befehl ausführen, um sie zu ändern. Führen Sie den entsprechenden Describe Befehl mit einem exponentiellen Backoff-Algorithmus aus, um sicherzustellen, dass Sie genügend Zeit für die Ausbreitung des vorherigen Befehls im System einplanen. Führen Sie dazu den Describe Befehl wiederholt aus, wobei Sie mit einer Wartezeit von einigen Sekunden beginnen und die Wartezeit schrittweise auf bis zu fünf Minuten erhöhen.

  • Fügen Sie Wartezeiten zwischen aufeinanderfolgenden Befehlen hinzu, auch wenn ein Describe Befehl eine genaue Antwort zurückgibt. Wenden Sie einen exponentiellen Backoff-Algorithmus an, der mit einer Wartezeit von einigen Sekunden beginnt, und erhöhen Sie die Wartezeit schrittweise auf etwa fünf Minuten.

Beispiele für eventuelle Konsistenzfehler

Im Folgenden finden Sie Beispiele für Fehlercodes, auf die Sie aufgrund einer eventuellen Konsistenz stoßen können.

  • InvalidInstanceID.NotFound

    Wenn Sie den RunInstances Befehl erfolgreich ausführen und anschließend sofort einen weiteren Befehl mit der Instanz-ID ausführen, die in der Antwort von angegeben wurdeRunInstances, wird möglicherweise ein InvalidInstanceID.NotFound Fehler zurückgegeben. Das bedeutet nicht, dass die Instanz nicht existiert.

    Einige spezifische Befehle, die davon betroffen sein könnten, sind:

    • DescribeInstances: Um den tatsächlichen Status der Instanz zu überprüfen, führen Sie diesen Befehl mit einem exponentiellen Backoff-Algorithmus aus.

    • TerminateInstances: Um den Status der Instanz zu bestätigen, führen Sie zunächst den DescribeInstances Befehl mit einem exponentiellen Backoff-Algorithmus aus.

      Wichtig

      Wenn Sie nach dem Ausführen eine InvalidInstanceID.NotFound Fehlermeldung erhaltenTerminateInstances, bedeutet dies nicht, dass die Instanz beendet ist oder beendet wird. Ihre Instance könnte immer noch laufen. Aus diesem Grund ist es wichtig, zunächst den Status der Instanz mithilfe von zu überprüfenDescribeInstances.

  • InvalidGroup.NotFound

    Wenn Sie den CreateSecurityGroup Befehl erfolgreich ausführen und dann sofort einen weiteren Befehl mit der Sicherheitsgruppen-ID ausführen, die in der Antwort von angegeben wurdeCreateSecurityGroup, wird möglicherweise ein InvalidGroup.NotFound Fehler zurückgegeben. Um den Status der Sicherheitsgruppe zu überprüfen, führen Sie den DescribeSecurityGroups Befehl mit einem exponentiellen Backoff-Algorithmus aus.

  • InstanceLimitExceeded

    Sie haben mehr Instances angefordert, als Ihr aktuelles Instance-Limit für den angegebenen Instance-Typ zulässt. Sie könnten dieses Limit unerwartet erreichen, wenn Sie Instances schnell starten und beenden, da beendete Instances nach ihrer Kündigung noch eine Weile auf Ihr Instance-Limit angerechnet werden.