Umgang mit Fehlern in Elastic Transcoder - Amazon Elastic Transcoder

Sparen Sie Kosten und erhalten Sie mehr Funktionen mit AWS Elemental MediaConvert

MediaConvert ist ein neuerer dateibasierter Videotranskodierungsdienst, der eine umfassende Suite erweiterter Transcodierungsfunktionen bietet. On-Demand-Tarife beginnen bei 0,0075 USD/Minute. Lesen Sie mehr.

Verwenden Sie bereits Amazon Elastic Transcoder? Es ist einfach, darauf zu migrieren. MediaConvert Weitere Informationen finden Sie in dieser Übersicht, die wertvolle Informationen über den Migrationsprozess und Links zu weiteren Ressourcen enthält.

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.

Umgang mit Fehlern in Elastic Transcoder

Wenn Sie Anfragen an die Elastic Transcoder API senden und Antworten von dieser erhalten, können zwei Arten von API-Fehlern auftreten:

  • Client-Fehler: Client-Fehler werden mit dem HTTP-Antwortcode 4xx angegeben. Client-Fehler deuten darauf hin, dass Elastic Transcoder ein Problem mit der Client-Anfrage gefunden hat, z. B. einen Authentifizierungsfehler oder fehlende erforderliche Parameter. Beheben Sie das Problem in der Client-Anwendung, bevor Sie die Anforderung erneut senden.

  • Server-Fehler: Server-Fehler werden mit dem HTTP-Antwortcode 5xx angegeben. und müssen von Amazon behoben werden. Sie können die Anforderung wiederholen, bis kein Fehler mehr auftritt.

Für jeden API-Fehler gibt Elastic Transcoder die folgenden Werte zurück:

  • Einen Statuscode wie z. B. 400

  • Einen Fehlercode wie z. B. ValidationException

  • Eine Fehlermeldung wie z. B. Supplied AttributeValue is empty, must contain exactly one of the supported datatypes

Eine Liste der Fehlercodes, die Elastic Transcoder bei Client- und Serverfehlern zurückgibt, finden Sie unterAPI-Fehlercodes (Client- und Server-Fehler).

Außerdem kann es zu folgenden Situationen bezüglich des Workloads Elastic Transcoder bezüglich des Workloads kann. Weitere Informationen finden Sie unter Fehler während der Auftragsverarbeitung.

API-Fehlercodes (Client- und Server-Fehler)

HTTP-Statuscodes geben an, ob ein Vorgang erfolgreich war.

Ein Antwortcode 200 gibt an, dass der Vorgang erfolgreich war. Andere Antwortcodes weisen entweder auf einen Client-Fehler (4xx) oder einen Server-Fehler (5xx) hin.

In der folgenden Tabelle finden Sie die von Elastic Transcoder Einige Fehler werden behoben, indem Sie ganz einfach die Anforderung wiederholen. Die Tabelle zeigt, welche Fehler wahrscheinlich durch Wiederholversuche behoben werden. Der Wert in der Spalte "Erneut versuchen" bedeutet:

  • Ja: Senden Sie dieselbe Anforderung noch einmal.

  • Nein: Beheben Sie das Problem beim Client, bevor Sie eine neue Anforderung senden.

Weitere Informationen zum Wiederholen von Anforderungen finden Sie unter Wiederholversuche bei Fehlern und exponentielles Backoff.

HTTP-Statuscode Fehlercode Fehlermeldung Ursache Erneut versuchen
400 Conditional Check Failed Exception The conditional request failed. Beispiel: Der erwartete Wert stimmt mit dem im System gespeicherten Wert nicht überein. Nein
400 Incomplete Signature Exception The request signature does not conform to AWS standards. Die Signatur in der Anforderung enthielt nicht alle erforderlichen Komponenten. Siehe Inhalt des HTTP-Headers. Nein
403 Missing Authentication Token Exception The request must contain a valid (registered) AWS Access Key ID. Die Anforderung enthielt nicht das erforderliche x-amz-security-token. Siehe Senden von HTTP-Anforderungen an Elastic Transcoder. Nein
400 Validation Exception Verschiedene. Ein oder mehrere Werte in einer Anforderung fehlten oder waren ungültig. Ein Wert war zum Beispiel leer oder größer als der maximal zulässige Wert. Nein
403 AccessDenied Ausnahme
  • Deleting a system preset is not allowed: account=<accountId>, presetId=<presetId>.

  • General authentication failure. Der Client hat die Anforderung nicht richtig signiert. Siehe Signieren von Anforderungen.

Sie haben versucht, eine Systemvorgabe zu löschen, die Signatur in einem Aufruf der Elastic Transcoder API war ungültig, oder ein Benutzer ist nicht autorisiert, den Vorgang auszuführen.

Nein
404 ResourceNot Ausnahme gefunden
  • The specified <resource> could not be found: <resourceId>.

  • The specified job was not found: account=<accountId>, jobId=<jobId>.

  • The specified pipeline was not found: account=<accountId>, pipelineId=<pipelineId>

  • The specified preset was not found: account=<accountId>, presetId=<presetId>

Beispiel: Die Pipeline, der Sie einen Auftrag hinzuzufügen versuchen, ist nicht vorhanden oder wird noch erstellt. Nein
409 InUse Ressourcenausnahme
  • The <resource> was already in use: accountId=<accountId>, resourceId=<resourceId>.

  • The pipeline contains active jobs: account=<accountId>, pipeline=<pipelineId>.

Beispiel: Sie haben versucht, eine Pipeline zu löschen, die derzeit verwendet wird. Nein
429 Limit Exceeded Exception
  • The account already has the maximum number of pipelines allowed: account=<accountId>, maximum number of pipelines=<maximum>

  • The account already has the maximum number of presets allowed: account=<accountId>, maximum number of presets=<maximum>

  • The account already has the maximum number of jobs per pipeline in the backlog: account=<accountId>, maximum number of jobs in backlog for pipeline=<maximum>

Das aktuelle AWS-Konto hat die Grenzwerte für Elastic Transcoder Transcoder-Objekte überschritten. Weitere Informationen finden Sie unter Grenzwerte für die Anzahl der Elastic Transcoder-Pipelines, Jobs und Presets.
429 Provisioned Throughput Exceeded Exception You exceeded your maximum allowed provisioned throughput.

Beispiel: Die Anforderungsrate ist zu hoch. Die AWS-SDKs für Elastic Transcoder wiederholen automatisch Anforderungen, die diese Ausnahme empfangen. Sofern die Wiederholungswarteschlange nicht zu lang ist, wird die Anforderung letztendlich erfolgreich beantwortet. Verringern Sie die Häufigkeit der Anforderungen. Weitere Informationen finden Sie unter Wiederholversuche bei Fehlern und exponentielles Backoff.

Wenn Sie mithilfe von Abrufen den Status einer Anforderung bestimmen, wird empfohlen, den Status mithilfe von Benachrichtigungen zu bestimmen. Weitere Informationen finden Sie unter Benachrichtigungen über den Status eines Auftrags.

Ja
429 Throttling Exception Rate of requests exceeds the allowed throughput.

Sie senden Anforderungen zu schnell (z. B. Anforderungen zur Erstellung neuer Aufträge).

Wenn Sie mithilfe von Abrufen den Status einer Anforderung bestimmen, wird empfohlen, den Status mithilfe von Benachrichtigungen zu bestimmen. Weitere Informationen finden Sie unter Benachrichtigungen über den Status eines Auftrags.

Ja
500 Internal Failure The server encountered an internal error trying to fulfill the request. Beim Verarbeiten Ihrer Anforderung ist ein Server-Fehler aufgetreten. Ja
500 Internal Server Error The server encountered an internal error trying to fulfill the request. Beim Verarbeiten Ihrer Anforderung ist ein Server-Fehler aufgetreten. Ja
500 Internal Service Exception Bei dem Versuch, die Anforderung zu erfüllen, ist der Service auf eine unerwartete Ausnahme gestoßen. Ja
500 Service Unavailable Exception The service is currently unavailable or busy. Beim Verarbeiten Ihrer Anforderung ist ein unerwarteter Server-Fehler aufgetreten. Ja

Beispielantwort auf einen Fehler

Die folgende HTTP-Antwort gibt an, dass für inputBucket ein Wert "null" zurückgegeben wurde, wobei es sich nicht um einen gültigen Wert handelt.

HTTP/1.1 400 Bad Request x-amzn-RequestId: b0e91dc8-3807-11e2-83c6-5912bf8ad066 x-amzn-ErrorType: ValidationException Content-Type: application/json Content-Length: 124 Date: Mon, 26 Nov 2012 20:27:25 GMT {"message":"1 validation error detected: Value null at 'inputBucket' failed to satisfy constraint: Member must not be null"}

Fehler während der Auftragsverarbeitung

Wenn Elastic Transcoder bei der Verarbeitung Ihres Jobs auf einen Fehler stößt, wird der Fehler auf zwei Arten gemeldet:

  • Auftragsstatus und Ausgabestatus: Elastic Transcoder legt dasJob:Status Objekt und dasOutputs:Status Objekt für die fehlgeschlagene Ausgabe festError. Darüber hinaus setzt Elastic Transcoder dasOutputs:StatusDetail JSON-Objekt für die fehlgeschlagene Ausgabe auf einen Wert, der den Fehler erklärt.

  • SNS-Benachrichtigung: Wenn Sie die Pipeline so konfiguriert haben, dass eine SNS-Benachrichtigung gesendet wird, wenn Elastic Transcoder bei der Verarbeitung auf einen Fehler stößt, fügt Elastic Transcoder der Benachrichtigung ein JSON-Objekt im folgenden Format hinzu:

    { "state" : "PROGRESSING|COMPLETED|WARNING|ERROR", "errorCode" : "the code of any error that occurred", "messageDetails" : "the notification message you created in Amazon SNS", "version" : "API version that you used to create the job", "jobId" : "value of Job:Id object that Elastic Transcoder returns in the response to a Create Job request", "pipelineId" : "value of PipelineId object in the Create Job request", "input" : { job Input settings }, "outputKeyPrefix" : "prefix for file names in Amazon S3 bucket", "outputs": [ { applicable job Outputs settings, "status" : "Progressing|Complete|Warning|Error" }, {...} ], "playlists": [ { applicable job playlists settings } ], "userMetadata": { "metadata key": "metadata value" } }
Wert von errorCode Wert von messageDetails Ursache
1000 Validierungsfehler Während der Verarbeitung des Jobs stellte Elastic Transcoder fest, dass ein oder mehrere Werte in der Anfrage ungültig waren.
1001 Abhängigkeitsfehler Elastic Transcoder konnte die Playlist nicht generieren, da bei einer oder mehreren der Playlist-Abhängigkeiten ein Fehler aufgetreten ist.
2000 Übernehmen der Rolle nicht möglich Elastic Transcoder kann dieAWS Identity and Access Management Rolle, die imRole Objekt in der Pipeline für diesen Job angegeben ist, nicht übernehmen.
3000 Nicht klassifizierter Speicherfehler
3001 Eingabe ist nicht vorhanden Es ist keine Datei mit dem Namen vorhanden, den Sie im Input:Key-Objekt für diesen Auftrag angegeben haben. Die Datei muss in dem Amazon S3 S3-Bucket vorhanden sein, der in demInputBucket Objekt in der Pipeline für diesen Job angegeben ist.
3002 Ausgabe bereits vorhanden Es ist bereits eine Datei mit dem Namen vorhanden, den Sie im Objekt Outputs:Key (oder Output:Key) für diesen Auftrag angegeben haben. Die Datei kann nicht in dem Amazon S3 S3-Bucket existieren, der in demOutputBucket Objekt in der Pipeline für diesen Job angegeben ist.
3003 Verfügt nicht über Leseberechtigung Die IAM-Rolle, die in demRole Objekt in der Pipeline angegeben ist, das Sie für diesen Job verwendet haben, ist nicht berechtigt, aus dem Amazon S3 S3-Bucket zu lesen, der die Datei enthält, die Sie transkodieren möchten.
3004 Verfügt nicht über Schreibberechtigung Die IAM-Rolle, die in demRole Objekt in der Pipeline angegeben ist, das Sie für diesen Job verwendet haben, ist nicht berechtigt, in den Amazon S3 S3-Bucket zu schreiben, in dem Sie entweder transkodierte Dateien oder Miniaturansichtsdateien speichern möchten.
3005 Bucket ist nicht vorhanden Der angegebene S3-Bucket existiert nicht: bucket= {1}.
3006 Verfügt nicht über Schreibberechtigung Elastic Transcoder konnte den Schlüssel= {1} nicht in bucket= {2} schreiben, da sich der Schlüssel nicht in derselben Region wie der Bucket befindet
4000 Ungeeignete Eingabedatei Die Datei, die Sie imInput:Key Objekt für diesen Job angegeben haben, hat ein Format, das derzeit von Elastic Transcoder nicht unterstützt wird.
4001 Ungeeignete Eingabedatei Die Breite x Höhe der Datei, die Sie im Input:Key-Objekt für diesen Auftrag angegeben haben, überschreitet das zulässige Maximum an Breite x Höhe.
4002 Ungeeignete Eingabedatei Die Dateigröße der Datei, die Sie im Input:Key-Objekt für diesen Auftrag angegeben haben, überschreitet die zulässige Maximalgröße.
4003 Ungeeignete Eingabedatei Elastic Transcoder konnte die Datei, die Sie in einem derOutputs:Watermarks:InputKey Objekte für diesen Job angegeben haben, nicht interpretieren.
4004 Ungeeignete Eingabedatei Die Breite x Höhe einer Datei, die Sie in einem der Outputs:Watermarks:InputKey-Objekte für diesen Auftrag angegeben haben, überschreitet das zulässige Maximum an Breite x Höhe.
4005 Ungeeignete Eingabedatei Die Größe einer Datei, die Sie für eines der {1} Objekte angegeben haben, überschreitet die maximal zulässige Größe: bucket= {2}, key= {3}, size {4}, max size= {5}.
4006 Ungeeignete Eingabedatei Elastic Transcoder konnte die Eingabedatei nicht transkodieren, da das Format nicht unterstützt wird.
4007 Unbearbeitete Eingabedatei Elastic Transcoder ist auf einen Dateityp gestoßen, der allgemein unterstützt wird, aber die Datei konnte nicht korrekt verarbeitet werden. Dieser Fehler öffnete automatisch einen Support-Fall und wir untersuchen bereits die Problemursache.
4008 Ungeeignete Eingabedatei

Die zugrundeliegende Ursache ist eine fehlende Übereinstimmung zwischen der Voreinstellung und der Eingabedatei. Beispiele sind unter anderem:

  • Die Voreinstellung umfasst Audioeinstellungen, die Eingabedatei enthält jedoch keine Audioelemente.

  • Die Voreinstellung umfasst Videoeinstellungen, die Eingabedatei enthält jedoch keine Videoelemente.

4009 Ungeeignete Eingabedatei Elastic Transcoder konnte nicht Ihr gesamtes Albumcover in die Ausgabedatei einfügen, da Sie die maximale Anzahl von Cover-Streams überschritten haben.
4010 Ungeeignete Eingabedatei Elastic Transcoder konnte die von Ihnen angegebene Grafikdatei nicht interpretierenAlbumArt:Artwork:InputKey.
4011 Ungeeignete Eingabedatei Elastic Transcoder hat einen eingebetteten Artwork-Stream erkannt, konnte ihn aber nicht interpretieren.
4012 Ungeeignete Eingabedatei Das Abbild, das Sie für AlbumArt:Artwork angegeben haben, überschreitet das zulässige Maximum an Breite x Höhe: 4096 x 3072.
4013 Ungeeignete Eingabedatei Die Höhe x Breite des eingebetteten Covers überschreitet das zulässige Maximum an Breite x Höhe: 4096 x 3072.
4014 Ungeeignete Eingabe Der Wert, den Sie für die Startzeit eines Clips angegeben haben, liegt nach dem Ende der Eingabedatei. Elastic Transcoder konnte keine Ausgabedatei erstellen.
4015 Ungeeignete Eingabe Elastic Transcoder konnte keine Manifestdatei generieren, da die generierten Segmente nicht übereinstimmten.
4016 Ungeeignete Eingabe Elastic Transcoder konnte die Eingabedatei von {1} mit {2} nicht entschlüsseln.
4017 Ungeeignete Eingabe Der AES-Schlüssel wurde mit einem {2} -Bit-Verschlüsselungsschlüssel verschlüsselt. AES unterstützt nur 128-, 192- und 256-Bit-Verschlüsselungsschlüssel. MD5= {1}.
4018 Ungeeignete Eingabe Elastic Transcoder konnte den verschlüsselten Schlüssel mit MD5= {1} nicht entschlüsseln
4019 Ungeeignete Eingabe Elastic Transcoder konnte mit dem KMS-Schlüssel ARN {0} keinen Datenschlüssel generieren.
4020 Ungeeignete Eingabe Ihr Schlüssel muss 128 Bit für AES-128-Verschlüsselung sein. MD5= {1}, {2} Bits.
4021 Ungeeignete Eingabe Ihr Schlüssel muss 128 Bit lang sein für PlayReady DRM. MD5= {1}, Stärke = {2} Bit.
4022 Ungeeignete Eingabe Die kombinierte Größe der {1} angegebenen Mediendateien überschreitet die maximal zulässige Größe: bucket= {2}, size= {3}.
4023 Ungeeignete Eingabe Die für die Verkettung angegebenen {1} -Eingabedateien erzeugen keine Ausgabe mit einer konsistenten Auflösung mit der angegebenen Voreinstellung. Verwenden Sie eine Voreinstellung mit unterschiedlichen PaddingPolicy-, SizingPolicy-, MaxWidth- und MaxHeight-Einstellungen.
4024 Ungeeignete Eingabe Die {1} -Eingabedateien, die für die Verkettung angegeben sind, erzeugen keine Miniaturansichten mit einer konsistenten Auflösung mit der angegebenen Voreinstellung. Verwenden Sie eine Voreinstellung mit unterschiedlichen PaddingPolicy-, SizingPolicy-, MaxWidth- und MaxHeight-Thumbnail-Einstellungen.
4025 Ungeeignete Eingabe Mindestens eine Mediendatei (Eingabe # {1}) stimmt nicht mit den anderen überein. Alle Mediendateien müssen entweder Videoelemente oder keine Videoelemente aufweisen.
4026 Ungeeignete Eingabe Mindestens eine Mediendatei (Eingabe # {1}) stimmt nicht mit den anderen überein. Alle Mediendateien müssen entweder Audioelemente oder keine Audioelemente aufweisen.
4100 Ungeeignete Eingabedatei Elastic Transcoder hat eine eingebettete Untertitelspur erkannt, konnte sie jedoch nicht interpretieren.
4101 Ungeeignete Eingabedatei Elastic Transcoder konnte die angegebene Untertiteldatei für Amazon S3 bucket= {1}, key= {2} nicht interpretieren.
4102 Ungeeignete Eingabedatei Elastic Transcoder konnte die angegebene Untertiteldatei nicht interpretieren, da sie nicht UTF-8-codiert war: Amazon S3 bucket= {1}, key= {2}.
4103 Ungeeignete Eingabedatei Elastic Transcoder konnte nicht alle Ihre Untertitelspuren verarbeiten, da Sie {1}, die maximale Anzahl von Untertitelspuren, überschritten haben.
4104 Ungeeignete Eingabedatei Elastic Transcoder konnte keine Master-Playlist generieren, da die gewünschte Ausgabe {1} eingebettete Untertitel enthält, wobei das Maximum 4 ist.
4105 Ungeeignete Eingabedatei Elastic Transcoder kann Ihre Untertitel-Tracks nicht einbetten, da die Framerate {1} für CEA-708 nicht unterstützt wird. Es werden nur Frameraten [29.97, 30] unterstützt.
4106 Ungeeignete Eingabedatei Elastic Transcoder kann Ihre Untertitelspuren nicht einbetten, da das Format {1} nur {2} Untertitelspuren unterstützt.
9000 Interner Dienstfehler
9001 Interner Dienstfehler
9999 Interner Dienstfehler

Fehlererfassung

Damit Ihre Anwendung reibungslos ausgeführt wird, müssen Sie Logik zum Erfassen und Behandeln von Fehlern integrieren. Eine übliche Vorgehensweise ist es, Ihre Anforderung in einem try-Block oder einer if-then-Anweisung zu implementieren.

Die AWS SDKs führen eigene Wiederholversuche und Fehlerprüfungen aus. Wenn bei der Verwendung eines der AWS SDKs ein Fehler auftritt, finden Sie im Fehlercode und der Beschreibung weitere Hinweise. Prüfen Sie auch den Request ID-Wert. DerRequest ID Wert kann bei der Behebung von Problemen mit der Unterstützung von Elastic Transcoder helfen.

Das folgende Beispiel verwendet das AWS SDK for Java, um ein Element innerhalb eines try-Blocks zu löschen, und nutzt einen catch-Block, um auf den Fehler zu reagieren. In diesem Fall warnt es, dass die Anfrage fehlgeschlagen ist. Das Beispiel verwendet die AmazonServiceException-Klasse, um Informationen über Fehler bei Dateivorgängen abzurufen, einschließlich der Request ID. Das Beispiel verwendet außerdem die AmazonClientException-Klasse, falls die Anforderungen aus anderen Gründen nicht erfolgreich ist.

try { DeleteJobRequest request = new DeleteJobRequest(jobId); DeleteJobResult result = ET.deleteJob(request); System.out.println("Result: " + result); // Get error information from the service while trying to run the operation } catch (AmazonServiceException ase) { System.err.println("Failed to delete job " + jobId); // Get specific error information System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); // Get information in case the operation is not successful for other reasons } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, which means"+ " the client encountered " + "an internal error while trying to " + "communicate with Elastic Transcoder, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); }

Wiederholversuche bei Fehlern und exponentielles Backoff

Zahlreiche Komponenten im Netzwerk, wie z. B. DNS-Server, Switches und Load Balancer, können irgendwann im Lebenszyklus einer Anforderung Fehler generieren.

Die übliche Methode zum Umgang mit diesen Fehlermeldungen in einer vernetzten Umgebung besteht darin, Wiederholversuche in der Client-Anwendung zu implementieren. Diese Vorgehensweise erhöht die Zuverlässigkeit der Anwendung und senkt die Betriebskosten für die Entwickler.

Jedes AWS-SDK, das Elastic Transcoder unterstützt, implementiert eine automatische Wiederholungslogik. Beim AWS SDK for Java werden Anforderungen automatisch wiederholt. Sie können die Einstellungen für Wiederholversuche mit der ClientConfiguration-Klasse konfigurieren. Sie können beispielsweise in einigen Fällen die Wiederholversuchslogik deaktivieren, z. B für eine Webseite, die eine Anforderung mit minimaler Latenz und ohne Wiederholversuche versendet. Verwenden Sie die ClientConfiguration-Klasse und geben Sie einen Wert für maxErrorRetry von 0 ein, um die Wiederholversuche zu deaktivieren.

Wenn Sie kein AWS SDK verwenden, sollten ursprüngliche Anforderungen wiederholt werden, die Server-Fehler (5xx) erhalten. Client-Fehler (4xx, außer ThrottlingException oder ProvisionedThroughputExceededException) hingegen weisen darauf hin, dass direkt die Anforderung geändert werden muss, um das Problem zu beheben. Erst dann sollte sie wiederholt werden.

Anmerkung

Wenn Sie eine Abfrage durchführen, um den Status einer Anfrage zu ermitteln, und Elastic Transcoder den HTTP-Statuscode 429 mit dem FehlercodeProvisioned Throughput Exceeded Exception oder zurückgibtThrottling Exception, sollten Sie erwägen, Benachrichtigungen statt Abfragen zu verwenden, um den Status zu ermitteln. Weitere Informationen finden Sie unter Benachrichtigungen über den Status eines Auftrags.

Zusätzlich zu einfachen Wiederholversuchen wird zur besseren Flusssteuerung die Verwendung eines exponentiellen Backoff empfohlen. Die Idee hinter dem exponentiellen Backoff ist, bei aufeinander folgenden Fehlermeldungen progressiv längere Wartezeiten zwischen den Wiederholversuchen zu verwenden. Sie könnten z. B. vor dem ersten Wiederholversuch eine Sekunde verstreichen lassen, vor dem zweiten Wiederholversuch vier Sekunden, vor dem dritten Wiederholversuch 16 Sekunden usw. Wenn die Anforderung jedoch nach einer Minute nicht erfolgreich war, liegt das Problem möglicherweise an einem festen Limit und nicht an der Anforderungsrate. Vielleicht haben Sie z. B. die maximale Anzahl zulässiger Pipelines erreicht. Grenzen Sie die maximale Anzahl von Wiederholversuchen bis zu etwa einer Minute ein.

Nachfolgend sehen Sie einen Workflow, der die Logik für Wiederholversuche zeigt. Die Workflow-Logik bestimmt zuerst, ob der Fehler ein Serverfehler (5xx) ist. Wenn es sich bei dem Fehler um einen Serverfehler handelt, wiederholt der Code die ursprüngliche Anforderung.

currentRetry = 0 DO set retry to false execute Elastic Transcoder request IF Exception.errorCode = ProvisionedThroughputExceededException set retry to true ELSE IF Exception.httpStatusCode = 500 set retry to true ELSE IF Exception.httpStatusCode = 400 set retry to false fix client error (4xx) IF retry = true wait for (2^currentRetry * 50) milliseconds currentRetry = currentRetry + 1 WHILE (retry = true AND currentRetry < MaxNumberOfRetries) // limit retries