Help us improve the AWS re:Post Knowledge Center by sharing your feedback in a brief survey. Your input can influence how we create and update our content to better support your AWS journey.
Comment résoudre les problèmes liés aux opérations par lots Amazon S3 ?
Lorsque je crée une tâche Opérations par lots Amazon Simple Storage Service (Amazon S3) pour les objets de mon compartiment, Amazon S3 renvoie une erreur. Ou bien, la tâche Opérations par lots Amazon S3 échoue.
Résolution
Pour suivre les échecs de tâche, demandez les détails de la tâche ou un rapport de fin de tâche. Après avoir déterminé la cause et résolu le problème, soumettez à nouveau la tâche Opérations par lots S3.
Remarque : Si des erreurs surviennent lorsque vous exécutez des commandes de l'interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre des erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez bien la version la plus récente de l'interface.
Le format du fichier manifeste .csv ou .json est incorrect
S3 Batch Operations prend en charge les fichiers manifestes d'inventaire .csv et .json. Si vous ne formatez pas correctement le fichier manifeste, vous devez créer une nouvelle tâche par lots dans Amazon S3 et spécifier le format correct.
Lorsque vous spécifiez le manifeste, effectuez les actions suivantes :
- Pour le rapport d'inventaire Amazon S3, utilisez un rapport au format .csv et spécifiez le fichier manifest.json associé au rapport d'inventaire.
- Pour les fichiers .csv, vous devez inclure le nom du compartiment et la clé d'objet dans chaque ligne du fichier manifeste. Vous pouvez également inclure la version de l'objet. Si vous incluez des ID de version dans le manifeste, vous devez spécifier des ID pour tous les objets.
Remarque : Vous devez encoder les clés d’objets en URL. - Si les objets se trouvent dans un compartiment versionné, vous devez spécifier les ID de version des objets. Dans le cas contraire, la tâche par lot échouera. Amazon S3 risque également d’appliquer la tâche par lot à la mauvaise version de l'objet.
Le fichier manifeste spécifie plusieurs noms de compartiments ou contient plusieurs lignes d'en-tête
Si tous les objets répertoriés dans le fichier manifeste n'existent pas dans le même compartiment, le message d'erreur suivant s'affiche :
« Raisons de l'échec : Il ne peut pas y avoir plus d'un compartiment par tâche. JOB_ID »
Assurez-vous que votre fichier manifeste ne spécifie qu'un seul nom de compartiment et ne contient pas de lignes d'en-tête.
Exemple de fichier manifeste contenant plusieurs lignes d'en-tête :
bucket,keymy-batch-bucket,object001.txt my-batch-bucket,object002.txt my-batch-bucket,object003.txt my-batch-bucket,object004.txt
Le rôle IAM n'est pas autorisé à lire le fichier manifeste
Si le rôle AWS Identity and Access Management (IAM) n'est pas autorisé à lire le manifeste, l'une des erreurs suivantes s'affiche :
« Reason for failure Reading the manifest is forbidden: AccessDenied » (Motif de l'échec La lecture du manifeste est interdite : AccessDenied) depuis l'AWS CLI.
-ou-
« Warning: Unable to get the manifest object's ETag. Specify a different object to continue » (Avertissement : Impossible d'obtenir l'ETag de l'objet manifeste. Spécifiez un autre objet pour continuer) depuis la console Amazon S3.
Le rôle IAM qui crée la tâche Opérations par lots S3 doit disposer de l'autorisation de lecture GetObject pour le fichier manifeste. Examinez les métadonnées de l'objet pour détecter d’éventuelles incompatibilités d'accès avec la propriété de l'objet S3. Recherchez également tout problème de prise en charge au niveau des clés AWS Key Management Service (AWS KMS) utilisées pour chiffrer le fichier manifeste.
Remarque : S3 Batch Operations prend en charge les rapports d’inventaire .csv chiffrés par AWS KMS. S3 Batch Operations ne prend pas en charge les fichiers manifestes .csv chiffrés par AWS KMS. Pour plus d’informations, consultez la section Configuration de l'inventaire à l'aide de la console Amazon S3.
La tâche par lots appartient à une autre région
Les tâches de copie S3 Batch Operations doivent se trouver dans la même région AWS que le compartiment de destination vers lequel les objets seront copiés. Par exemple, si le compartiment de destination se trouve dans la région us-west-2, sélectionnez us-west-2 comme région lorsque vous créez la tâche par lots.
Le compartiment cible pour votre rapport d'inventaire S3 est manquant
Le manifeste généré par les opérations par lot S3 doit disposer d’un compartiment cible. La politique du compartiment Amazon S3 doit également autoriser l'action s3:PutObject. Si la tâche envoie le rapport à un autre compte AWS, vérifiez que le compartiment cible autorise le rôle IAM à exécuter l'action s3:PutObject.
La politique d’approbation du rôle IAM est manquante
La politique d’approbation pour un rôle IAM définit les conditions requises afin que d'autres principaux endossent ce rôle. Pour autoriser le principal S3 Batch Operations à endosser le rôle IAM, attachez une politique d’approbation au rôle.
Exemple de politique :
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "batchoperations.s3.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
Remarque : Assurez-vous de spécifier un rôle IAM et non un utilisateur IAM.
Le rôle IAM ne dispose pas des autorisations nécessaires pour créer une tâche par lots
Vous devez accorder au rôle IAM les autorisations s3:CreateJob pour créer une tâche S3 Batch Operations. L'entité qui crée la tâche doit également disposer de l'autorisation iam:PassRole pour transmettre le rôle IAM que vous avez spécifié pour la tâche par lots. Pour plus d’informations, consultez la section Éléments de la politique JSON IAM : Ressource.
Le rôle IAM ne dispose pas des autorisations nécessaires pour effectuer des opérations de traitement par lots
Assurez-vous d'accorder au rôle IAM les autorisations appropriées pour effectuer des opérations spécifiques dans un traitement par lots.
Exemple de politique IAM avec les autorisations requises pour l'opération de copie :
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:PutObjectTagging" ], "Effect": "Allow", "Resource": "arn:aws:s3:::{{DestinationBucket}}/*" }, { "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectTagging", "s3:ListBucket" ], "Effect": "Allow", "Resource": [ "arn:aws:s3:::{{SourceBucket}}", "arn:aws:s3:::{{SourceBucket}}/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectVersion" ], "Resource": [ "arn:aws:s3:::{{ManifestBucket}}/*" ] }, { "Effect": "Allow", "Action": [ "s3:PutObject" ], "Resource": [ "arn:aws:s3:::{{ReportBucket}}/*" ] } ] }
Le SCP AWS Organizations refuse l'accès
Si vous utilisez AWS Organizations, vérifiez que la politique de contrôle des services (SCP) ne contient aucune instruction de rejet interdisant l'accès à Amazon S3. Sinon, vous risquez d’obtenir le message d'erreur Access Denied (Accès refusé) lorsque vous créez une tâche par lot.
Exemple de SCP qui refuse explicitement toutes les actions S3 :
{ "Version": "2012-10-17", "Statement": [ { "Principal": "*", "Effect": "Deny", "Action": "s3:*", "Resource": "*" } ] }
Pour appliquer une politique restrictive, ajoutez le rôle IAM endossé par S3 Batch Operations à la liste des autorisations.
Exemple de politique restrictive :
{ "Version": "2012-10-17", "Statement": [ { "Principal": "*", "Effect": "Deny", "Action": "s3:*", "Resource": "*", "Condition": { "StringNotLike": { "aws:userId": [ "AROAEXAMPLEID:*", "AIDAEXAMPLEID", "111111111111" ] } } } ] }
L'ID de version d'un objet est absent du manifeste
Si une tâche S3 Batch Operations rencontre un objet dans le manifeste dont le champ d'ID de version est vide, vous recevrez l'erreur suivante :
« Error: BUCKET_NAME,prefix/file_name,failed,400,InvalidRequest,Task failed due to missing VersionId » (Erreur : BUCKET_NAME,prefix/file_name, échec, 400, requête non valide, échec de la tâche en raison d'un ID de version manquant)
Si le format du manifeste utilise les ID de version au cours de l'opération, le champ d'ID de version ne peut pas être une chaîne vide. À la place, le champ d'ID de version doit être une chaîne « null ». Pour résoudre ce problème, convertissez les ID de version vides en chaînes nulles.
Remarque : S3 Batch Operations échoue uniquement pour l'objet spécifié, et non pour la tâche intégrale.
Amazon S3 ne fournit pas le rapport sur les tâches car vous utilisez la rétention Object Lock
Si vous configurez la rétention Object Lock S3 sur un compartiment de destination en mode gouvernance ou en mode conformité, vous recevez l'erreur suivante :
« Error: Reasons for failure. The job report could not be written to your bucket. Check your permissions. » (Erreur : Motifs de l'échec. Impossible d’écrire le rapport de tâche dans votre compartiment. Veuillez vérifier vos autorisations)
Amazon S3 ne prend pas en charge Object Lock dans le cadre de compartiments de destination configurés en mode de rétention. Lorsque le mode de rétention est configuré, le compartiment bénéficie d’une protection WORM (Write-Once-Read-Many). Pour résoudre ce problème, choisissez un compartiment de destination qui ne dispose pas de la fonction Object Lock.
Remarque : Seul le rapport d'achèvement échoue, pas la tâche. La tâche a donc été effectuée correctement et tous les objets ont été traités.
Les versions de l'ETag ne sont pas identiques
Si la valeur d’ETag dans la console Amazon S3 ou l'AWS CLI ne correspond pas à l'Etag du compartiment, le message d'erreur suivant s'affiche :
« Error reading the manifest. Caused by: ETag mismatch. Expected ETag: 69f52a4e9f797e987155d9c8f5880897 » (Erreur lors de la lecture du manifeste. Causée par : ETag incompatible. ETag attendu : 69f52a4e9f797e987155d9c8f5880897)
Lorsque vous sélectionnez le manifeste dans la tâche S3 Batch Operations, vous pouvez spécifier la clé de l'objet du manifeste, l’ETag ainsi qu’un ID de version facultatif. Assurez-vous que la valeur de ETag correspond à l'ETag de la dernière version de l'objet manifeste dans le compartiment S3. Dans l'onglet Opérations par lots de la console Amazon S3, examinez l’ETag de l’objet manifeste dans les propriétés du fichier manifeste. Dans l'AWS CLI, vérifiez la valeur de l'ETag transmise par la spécification du manifeste.
Remarque : Si vous créez une tâche S3 Batch Operations en tant que clone d'une tâche existante, mettez à jour l'ETag dans le manifeste cloné.
Erreurs HTTP 500 et 503
Si Amazon S3 ne peut pas traiter la requête, vous recevez un code de statut Erreur interne 500. Si le nombre de requêtes adressées à votre compartiment S3 est élevé, vous recevez le code de statut 503 Ralentir. Pour résoudre ces problèmes, consultez la section Comment résoudre une erreur HTTP 500 ou 503 provenant d'Amazon S3 ?
Remarque : Il est recommandé d'intégrer une logique de nouvelle tentative dans les applications qui adressent des requêtes à Amazon S3.
- Sujets
- Storage
- Langue
- Français

Contenus pertinents
- demandé il y a un an
- demandé il y a 2 ans
- demandé il y a un an
AWS OFFICIELA mis à jour il y a 9 mois
AWS OFFICIELA mis à jour il y a 4 ans