Fehlerbehandlung - Amazon Rekognition

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.

Fehlerbehandlung

Dieser Abschnitt beschreibt Laufzeitfehler und wie sie gehandhabt werden können. Es beschreibt auch Fehlermeldungen und Codes, die spezifisch für Amazon Rekognition sind.

Fehlerkomponenten

Wenn Ihr Programm eine Anfrage sendet, versucht Amazon Rekognition, sie zu verarbeiten. Wenn die Anfrage erfolgreich ist, gibt Amazon Rekognition einen HTTP-Erfolgsstatuscode zurück (200 OK), zusammen mit den Ergebnissen der angeforderten Operation.

Wenn die Anfrage nicht erfolgreich ist, gibt Amazon Rekognition einen Fehler zurück. Jeder Fehler hat drei Komponenten:

  • Einen HTTP-Statuscode (z. B. 400).

  • Einen Ausnahmenamen (z. B. InvalidS3ObjectException).

  • Eine Fehlermeldung (z. B. Unable to get object metadata from S3. Check object key, region and/or access permissions.).

Die AWS SDKs kümmern sich um Propagierungsfehler in der Anwendung, sodass Sie entsprechende Maßnahmen ergreifen können. Sie können beispielsweise in einem Java-Programm eine try-catch-Logik schreiben, um eine ResourceNotFoundException zu verarbeiten.

Wenn Sie kein AWS-SDK verwenden, müssen Sie den Inhalt der Low-Level-Antwort von Amazon Rekognition analysieren. Nachfolgend finden Sie ein Beispiel einer solchen Antwort:

HTTP/1.1 400 Bad Request Content-Type: application/x-amz-json-1.1 Date: Sat, 25 May 2019 00:28:25 GMT x-amzn-RequestId: 03507c9b-7e84-11e9-9ad1-854a4567eb71 Content-Length: 222 Connection: keep-alive {"__type":"InvalidS3ObjectException","Code":"InvalidS3ObjectException","Logref":"5022229e-7e48-11e9-9ad1-854a4567eb71","Message":"Unable to get object metadata from S3. Check object key, region and/or access permissions."}

Fehlermeldungen und Codes

Im Folgenden finden Sie eine Liste der Ausnahmen, die Amazon Rekognition zurückgibt, gruppiert nach HTTP-Statuscode. Wenn OK, um es erneut zu versuchen? Ja ist, können Sie die gleiche Anforderung erneut senden. Wenn OK, um es erneut zu versuchen? auf Nein eingestellt ist, müssen Sie das Problem clientseitig lösen, bevor Sie eine neue Anforderung absenden.

HTTP-Statuscode 400

Der HTTP-Statuscode 400 weist auf ein Problem mit der Anforderung hin. Einige Beispiele für Probleme sind Authentifizierungsfehler, fehlende erforderliche Parameter oder die Überschreitung des für einen Vorgang bereitgestellten Durchsatzes. Sie müssen das Problem zuerst in der Anwendung beheben, bevor Sie die Anforderung erneut senden.

AccessDeniedException

Nachricht:Ein Fehler ist aufgetreten (AccessDeniedException) beim Aufrufen der <Operation>Operation: Benutzer: <User ARN>ist nicht autorisiert, Folgendes auszuführen: <Operation>auf Ressource:<Resource ARN>.

Sie sind nicht berechtigt, die Aktion auszuführen. Verwenden Sie den Amazon-Ressourcennamen (ARN) der IAM-Rolle oder eines autorisierten Benutzers, um den Vorgang auszuführen.

Erneut versuchen? Nein

GroupFacesInProgressException

Nachricht:Planung konnte nicht vorgenommen werdenGroupFacesBeruf. Für diese Sammlung gibt es einen bestehenden Job von Group Faces.

Wiederholen Sie die Operation, nachdem der vorhandene Auftrag ausgeführt wurde.

Erneut versuchen? Nein

IdempotentParameterMismatchException

Nachricht:DerClientRequestToken: <Token>Sie haben geliefert, ist bereits in Gebrauch.

EINClientRequestTokenDer Eingabeparameter wurde bei einer Operation wiederverwendet, aber mindestens einer der anderen Eingabeparameter unterscheidet sich vom vorherigen Aufruf der Operation.

Erneut versuchen? Nein

ImageTooLargeException

Meldung: Image size is too large

Die Größe des Eingabebildes überschreitet die zulässige Grenze. Wenn du anrufstDetectProtectiveEquipment, die Bildgröße oder Auflösung überschreitet den zulässigen Grenzwert. Weitere Informationen finden Sie unter Richtlinien und Kontingente in Amazon Rekognition.

Erneut versuchen? Nein

InvalidImageFormatException

Meldung: Request has invalid image format

Das angegebene Bildformat wird nicht unterstützt. Verwenden Sie ein unterstütztes Bildformat (.JPEG oder .PNG). Weitere Informationen finden Sie unter Richtlinien und Kontingente in Amazon Rekognition.

Erneut versuchen? Nein

InvalidPaginationTokenException

Nachrichten

  • Ungültiges Token

  • Ungültiges Paginierungs-Token

Das Paginierungs-Token in der Anforderung ist ungültig. Das Token ist möglicherweise abgelaufen.

Erneut versuchen? Nein

InvalidParameterException

Meldung: Request has invalid parameters.

Ein Eingabeparameter verletzt eine Beschränkung. Validieren Sie die Parameter, bevor Sie die API-Operation erneut aufrufen.

Erneut versuchen? Nein

Ungültige 3ObjectException

Meldungen:

  • Request has invalid S3 object.

  • Objektmetadaten konnten nicht von S3 abgerufen werden. Überprüfen Sie den Objektschlüssel, die Region und/oder die Zugriffsberechtigungen.

Amazon Rekognition kann nicht auf das S3-Objekt zugreifen, das in der Anfrage angegeben wurde. Weitere Informationen finden Sie unter Übersicht über die Verwaltung von Zugriffsberechtigungen für Ihre Amazon S3-Ressourcen. Informationen zur Fehlerbehebung finden Sie unter Amazon S3-Fehlerbehebung.

Erneut versuchen? Nein

LimitExceededException

Meldungen:

  • Stream processor limit exceeded for account, limit - <Current Limit>.

  • <Anzahl ausstehender Aufträge> open Jobs for User <Benutzer-ARN> Maximum limit: <Maximum>

Ein Amazon Rekognition-Service Limit wurde überschritten. Wenn Sie beispielsweise zu viele Amazon Rekognition Video-Jobs gleichzeitig starten, werden Aufrufe zum Starten von Vorgängen wieStartLabelDetection, erhebe eineLimitExceededExceptionAusnahme (HTTP-Statuscode: 400), bis die Anzahl der gleichzeitig ausgeführten Jobs unter dem Amazon Rekognition-Service-Limit liegt.

Erneut versuchen? Nein

ProvisionedThroughputExceededException

Meldungen:

  • Provisioned Rate exceeded.

  • S3 download limit exceeded.

Die Anzahl der Anforderungen hat das Durchsatzlimit überschritten. Weitere Informationen finden Sie unterBeschränkungen für den Amazon Rekognition-Service.

Um eine Erhöhung des Limits zu beantragen, folgen Sie den Anweisungen unterErstellen Sie einen Fall, um TPS-Kontingente zu ändern.

Erneut versuchen? Ja

ResourceAlreadyExistsException

Meldung: The collection id: <Collection Id> already exists.

Eine Sammlung mit der angegebenen ID ist bereits vorhanden.

Erneut versuchen? Nein

ResourceInUseException

Meldungen:

  • Stream processor name already in use.

  • Specified resource is in use.

  • Processor not available for stopping stream.

  • Cannot delete stream processor.

Wiederholen Sie die Operation, wenn die Ressource verfügbar ist.

Erneut versuchen? Nein

ResourceNotFoundException

Meldung: Various messages depending on the API call.

Die angegebene Ressource ist nicht vorhanden.

Erneut versuchen? Nein

ThrottlingException

Meldung: Slow down; sudden increase in rate of requests.

Die Zunahme der Anforderungsrate ist zu hoch. Reduzieren Sie die Anforderungsrate und steigern Sie sie dann langsam. Wir empfehlen, die Anforderungsrate exponentiell zu reduzieren und es dann erneut zu versuchen. Die AWS-SDKs verwenden standardmäßig eine Logik für automatische Wiederholung und exponentielle Reduzierung der Anforderungsrate. Weitere Informationen finden Sie unter Wiederholversuche bei Fehlern und exponentielles Backoff in AWS und Exponentielles Backoff und Jitter.

Erneut versuchen? Ja

VideoTooLargeException

Meldung: Video size in bytes: <Video-Größe> is more than the maximum limit of: <Maximalgröße> bytes.

Die Dateigröße oder die Dauer der bereitgestellten Medien ist zu groß. Weitere Informationen finden Sie unter Richtlinien und Kontingente in Amazon Rekognition.

Erneut versuchen? Nein

HTTP-Statuscode 5xx

Der HTTP-Statuscode 5xx weist auf ein Problem hin, das von AWS behoben werden muss. Dies kann ein vorübergehender Fehler sein. Wenn dies der Fall ist, können Sie Ihre Anforderung wiederholen, bis sie korrekt ausgeführt wird. Andernfalls rufen Sie das AWS Service Health Dashboard auf, um zu sehen, ob es Betriebsprobleme mit dem Service gibt.

InternalServerError(HTTP 500)

Meldung: Internal server error

Amazon Rekognition hat ein Service-Problem festgestellt. Wiederholen Sie den Aufruf. Reduzieren Sie die Anforderungsrate exponentiell und versuchen Sie es erneut. Die AWS-SDKs verwenden standardmäßig eine Logik für automatische Wiederholung und exponentielle Reduzierung der Anforderungsrate. Weitere Informationen finden Sie unter Wiederholversuche bei Fehlern und exponentielles Backoff in AWS und Exponentielles Backoff und Jitter.

Erneut versuchen? Ja

ThrottlingException(HTTP 500)

Meldung: Service Unavailable

Amazon Rekognition kann die Anforderung vorübergehend nicht verarbeiten. Wiederholen Sie den Aufruf. Wir empfehlen, die Anforderungsrate exponentiell zu reduzieren und es dann erneut zu versuchen. Die AWS-SDKs verwenden standardmäßig eine Logik für automatische Wiederholung und exponentielle Reduzierung der Anforderungsrate. Weitere Informationen finden Sie unter Wiederholversuche bei Fehlern und exponentielles Backoff in AWS und Exponentielles Backoff und Jitter.

Erneut versuchen? Ja

Fehlerbehandlung in Ihrer Anwendung

Damit Ihre Anwendung reibungslos ausgeführt wird, müssen Sie Logik zum Erfassen und Behandeln von Fehlern integrieren. Typische Ansätze umfassen die Verwendung von try-catch-Blöcken oder if-then-Anweisungen.

Die AWS SDKs führen eigene Wiederholversuche und Fehlerprüfungen aus. Wenn bei der Verwendung eines der AWS SDKs ein Fehler auftritt, kann der Fehlercode und die Beschreibung zur Fehlerbehebung beitragen.

Sie sollten auch eine Request ID in der Antwort sehen. Die Request ID kann hilfreich sein, wenn Sie mit AWS Support ein Problem diagnostizieren müssen.

Der folgende Java-Codeausschnitt versucht, Objekte in einem Bild zu erkennen. Er führt eine rudimentäre Fehlerbehandlung durch. (In diesem Fall wird der Benutzer arüber informiert, dass die Anforderung fehlgeschlagen ist.)

try { DetectLabelsResult result = rekognitionClient.detectLabels(request); List <Label> labels = result.getLabels(); System.out.println("Detected labels for " + photo); for (Label label: labels) { System.out.println(label.getName() + ": " + label.getConfidence().toString()); } } catch(AmazonRekognitionException e) { System.err.println("Could not complete operation"); System.err.println("Error Message: " + e.getMessage()); System.err.println("HTTP Status: " + e.getStatusCode()); System.err.println("AWS Error Code: " + e.getErrorCode()); System.err.println("Error Type: " + e.getErrorType()); System.err.println("Request ID: " + e.getRequestId()); } catch (AmazonClientException ace) { System.err.println("Internal error occurred communicating with Rekognition"); System.out.println("Error Message: " + ace.getMessage()); }

In diesem Codeausschnitt behandelt das try-catch-Konstrukt zwei unterschiedliche Arten von Ausnahmen:

  • AmazonRekognitionException—Diese Ausnahme tritt auf, wenn die Client-Anfrage korrekt an Amazon Rekognition übertragen wurde, Amazon Rekognition die Anfrage jedoch nicht verarbeiten konnte und stattdessen eine Fehlerantwort zurückgegeben hat.

  • AmazonClientException— Diese Ausnahme tritt auf, wenn der Client keine Antwort von einem Dienst erhalten konnte oder wenn der Client die Antwort eines Dienstes nicht analysieren konnte.