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.
Cette section décrit les erreurs d’exécution et la façon de les traiter. Elle décrit également les messages d’erreur et les codes spécifiques d’Amazon Rekognition.
Composants erreur
Lorsque votre programme envoie une demande, Amazon Rekognition tente de la traiter. Si la demande aboutit, Amazon Rekognition renvoie un code d’état HTTP de succès (200 OK
), ainsi que les résultats de l’opération demandée.
Si la demande échoue, Amazon Rekognition retourne une erreur. Chaque erreur possède trois composants :
-
Un code d’état HTTP (
400
, par exemple). -
Un nom d’exception (
InvalidS3ObjectException
, par exemple). -
Un message d’erreur (
Unable to get object metadata from S3. Check object key, region and/or access permissions.
, par exemple).
L'AWS SDKs se charge de propager les erreurs à votre application, afin que vous puissiez prendre les mesures appropriées. Par exemple, dans un programme Java, vous pouvez écrire une logique try-catch
de façon à gérer un ResourceNotFoundException
.
Si vous n’utilisez pas un kit AWS SDK, vous devez analyser le contenu de la réponse de bas niveau à partir d’Amazon Rekognition. Voici un exemple de réponse :
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."}
Codes et messages d’erreur
Voici une liste des exceptions retournées par Amazon Rekognition et regroupées par code d’état HTTP. Si OK to retry? a pour réponse Yes, vous pouvez soumettre à nouveau la même demande. Si OK to retry? a pour réponse No, vous devez résoudre le problème côté client avant de soumettre une nouvelle demande.
Code d’état HTTP 400
Un code de statut HTTP 400
indique un problème avec votre demande. Parmi les exemples de problème, on peut citer l’échec d’authentification, des paramètres obligatoires manquants ou le dépassement de débit provisionné d’une opération. Vous devez corriger le problème dans votre application avant de soumettre à nouveau la demande.
- AccessDeniedException
-
Message : Une erreur s'est produite (AccessDeniedException) lors de l'appel de l'opération : L'utilisateur : n'est pas autorisé à effectuer : sur la ressource :. <Operation><User ARN><Operation><Resource ARN>
Vous n’êtes pas autorisé à effectuer l’action. Utilisez l’Amazon Resource Name (ARN) d’un utilisateur ou d’un rôle IAM autorisé pour effectuer l’opération.
OK pour réessayer ? Non
- GroupFacesInProgressException
-
Message : Impossible de planifier la GroupFaces tâche. There is an existing group faces job for this collection.
Réessayer l’opération lorsque la tâche existante est terminée.
OK pour réessayer ? Non
- IdempotentParameterMismatchException
-
Message : Le ClientRequestToken : que vous avez fourni est déjà utilisé. <Token>
Un paramètre ClientRequestToken d'entrée a été réutilisé avec une opération, mais au moins l'un des autres paramètres d'entrée est différent de l'appel précédent à l'opération.
OK pour réessayer ? Non
- ImageTooLargeException
-
Message : Image size is too large.
La taille de l’image d’entrée dépasse la limite autorisée. Si vous appelez DetectProtectiveEquipment, la taille ou la résolution de l'image dépasse la limite autorisée. Pour de plus amples informations, veuillez consulter Directives et quotas dans Amazon Rekognition.
OK pour réessayer ? Non
- InvalidImageFormatException
-
Message : Request has invalid image format.
Le format d’image fourni n’est pas pris en charge. Utilisez un format d’image pris en charge (.JPEG et .PNG). Pour de plus amples informations, veuillez consulter Directives et quotas dans Amazon Rekognition.
OK pour réessayer ? Non
- InvalidPaginationTokenException
-
Messages
Jeton non valide
Jeton de pagination non valide
Le jeton de pagination inclus dans la demande n’est pas valide. Le jeton peut avoir expiré.
OK pour réessayer ? Non
- InvalidParameterException
-
Message : Request has invalid parameters.
Un paramètre d’entrée a enfreint une contrainte. Validez vos paramètres avant d’appeler à nouveau l’opération d’API.
OK pour réessayer ? Non
- S3 non valide ObjectException
-
Messages :
Request has invalid S3 object.
Unable to get object metadata from S3. Check object key, region and/or access permissions.
Amazon Rekognition n’est pas en mesure d’accéder à l’objet S3 spécifié dans la demande. Pour plus d’informations, consultez les informations sur la gestion des accès à AWS S3. Pour plus d’informations sur le dépannage, consultez Dépannage Amazon S3.
OK pour réessayer ? Non
- LimitExceededException
Messages :
Stream processor limit exceeded for account, limit - <Current Limit>.
<Number of Open Jobs> open Jobs for User <User ARN> Maximum limit: <Maximum Limit>
La limite de service Amazon Rekognition a été dépassée. Par exemple, si vous lancez un trop grand nombre de tâches Vidéo Amazon Rekognition simultanément, les appels pour démarrer les opérations, tels que
StartLabelDetection
déclenchent une exceptionLimitExceededException
(code de statut HTTP : 400) jusqu’à ce que le nombre de tâches exécutées simultanément soit inférieur à la limite de service Amazon Rekognition.OK pour réessayer ? Non
- ProvisionedThroughputExceededException
-
Messages :
Provisioned Rate exceeded.
S3 download limit exceeded.
Le nombre de demandes dépasse votre limite de débit. Pour de plus amples informations, veuillez consulter limites de service Amazon Rekognition.
Pour demander une augmentation de la limite, suivez les instructions à l’adresseCréez un dossier pour modifier les quotas TPS.
OK pour réessayer ? Oui
- ResourceAlreadyExistsException
-
Message : The collection id: <Collection Id> already exists.
Une collection avec l’ID spécifié existe déjà.
OK pour réessayer ? Non
- ResourceInUseException
-
Messages :
Stream processor name already in use.
Specified resource is in use.
Processor not available for stopping stream.
Cannot delete stream processor.
Réessayez lorsque la ressource est disponible.
OK pour réessayer ? Non
- ResourceNotFoundException
-
Message : Plusieurs messages en fonction de l’appel d’API.
La ressource spécifiée n’existe pas.
OK pour réessayer ? Non
- ThrottlingException
-
Message : Slow down; sudden increase in rate of requests.
Votre taux de demande d’augmentation est trop rapide. Diminuez le débit de vos demandes et augmentez-les progressivement. Nous vous recommandons de faire un retour en arrière exponentiel et de réessayer. Par défaut, ils AWS SDKs utilisent une logique de nouvelle tentative automatique et un recul exponentiel. Pour plus d’informations, consultez Nouvelles tentatives après erreur et interruptions exponentiellesdans AWS et Backoff exponentiel et Jitter
. OK pour réessayer ? Oui
- VideoTooLargeException
-
Message : Video size in bytes: <Video Size> is more than the maximum limit of: <Max Size> bytes.
La taille ou la durée de fichier du support fourni est trop volumineuse. Pour de plus amples informations, veuillez consulter Directives et quotas dans Amazon Rekognition.
OK pour réessayer ? Non
Code d’état HTTP 5xx
Un code d’état HTTP 5xx
indique un problème qui doit être résolu par AWS. Il s’agit peut être d’une erreur temporaire. Si c’est le cas, vous pouvez relancer la demande jusqu’à ce qu’elle aboutisse. Sinon, accédez au AWS Service Health Dashboard
- InternalServerError (HTTP 500)
-
Message : Internal server error
Amazon Rekognition a rencontré un problème de service. Renouvelez votre appel. Faites un retour en arrière exponentiel et réessayez. Par défaut, ils AWS SDKs utilisent une logique de nouvelle tentative automatique et un recul exponentiel. Pour plus d’informations, consultez Nouvelles tentatives après erreur et interruptions exponentiellesdans AWS et Backoff exponentiel et Jitter
. OK pour réessayer ? Oui
- ThrottlingException (HTTP 500)
-
Message : Service Unavailable
Amazon Rekognition est temporairement dans l’impossibilité de traiter la demande. Renouvelez votre appel. Nous vous recommandons de faire un retour en arrière exponentiel et de réessayer. Par défaut, ils AWS SDKs utilisent une logique de nouvelle tentative automatique et un recul exponentiel. Pour plus d’informations, consultez Nouvelles tentatives après erreur et interruptions exponentiellesdans AWS et Backoff exponentiel et Jitter
. OK pour réessayer ? Oui
Gestion des erreurs dans votre application
Pour que votre application fonctionne correctement, vous devez ajouter une logique destinée à capturer les erreurs et à y répondre. Les approches classiques incluent l’utilisation de blocs try-catch
ou d’instructions if-then
.
Les AWS SDKs effectuent leurs propres tentatives et vérifient les erreurs. Si vous rencontrez une erreur lors de l'utilisation de l'un des AWS SDKs, le code d'erreur et sa description peuvent vous aider à la résoudre.
Vous devez également voir un Request ID
dans la réponse. L’Request
ID
peut être utile si vous devez utiliser AWS Support pour diagnostiquer un problème.
L’extrait de code Java suivant tente de détecter des objets dans une image et exécute une gestion rudimentaire des erreurs. (Dans ce cas, il informe l’utilisateur que la demande a échoué.)
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());
}
Dans cet extrait de code, la construction try-catch
gère deux types différents d’exceptions :
-
AmazonRekognitionException
: cette exception se produit si la demande du client a été correctement transmise à Amazon Rekognition, mais qu’Amazon Rekognition n’a pas pu la traiter et a renvoyé une réponse d’erreur à la place. AmazonClientException
: cette exception se produit si le client n’a pas pu obtenir de réponse d’un service, ou si le client n’a pas pu analyser la réponse d’un service.