Suivi de l'état de la tâche et des rapports de fin de tâche - Amazon Simple Storage Service

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.

Suivi de l'état de la tâche et des rapports de fin de tâche

Grâce aux opérations par lot S3, vous pouvez afficher et mettre à jour l'état d'une tâche, ajouter des notifications et effectuer la journalisation, suivre les échecs de tâche et générer des rapports de fin de tâches.

Statuts de la tâche

Après la création et l'exécution d'une tâche, celle-ci passe par une série d'états. Le tableau suivant décrit les états et les transitions possibles entre eux.

État Description Transitions
New Une tâche commence à l'état New lorsque vous la créez. Une tâche passe automatiquement au statut Preparing quand Amazon S3 commence à traiter l'objet de manifeste.
Preparing Amazon S3 traite l'objet manifeste et d'autres paramètres de tâche pour configurer et exécuter la tâche. Une tâche passe automatiquement au statut Ready une fois qu'Amazon S3 a terminé de traiter l'objet de manifeste et les autres paramètres. Elle peut ensuite exécuter l'opération spécifiée pour les objets répertoriés dans le manifeste.

Si la tâche nécessite une confirmation avant l'exécution, ce qui est, par exemple, le cas lors de la création d'une tâche avec la console Amazon S3, celle-ci passe du statut Preparing à Suspended. Elle reste dans l'état Suspended jusqu'à ce que vous confirmiez son exécution.

Suspended La tâche nécessite que vous confirmiez son exécution. Seules les tâches créées avec la console Amazon S3 nécessitent une confirmation. Une tâche créée à l'aide de la console passe à l'état Suspended juste après Preparing. Une fois que vous confirmez que vous souhaitez exécuter la tâche et que la tâche passe à l'était Ready, elle ne revient jamais à l'état Suspended. Une fois que vous confirmez que vous souhaitez exécuter la tâche, son état devient Ready.
Ready Amazon S3 peut commencer à exécuter les opérations demandées pour les objets. Une tâche passe automatiquement au statut Active quand Amazon S3 commence à l'exécuter. La durée pendant laquelle une tâche reste dans l'état Ready dépend du niveau de priorité et de la durée des autres tâches qui sont déjà en cours d'exécution.
Active Amazon S3 effectue l'opération demandée pour les objets répertoriés dans le manifeste. Tant qu'une tâche a l'état Active, vous pouvez surveiller sa progression à l'aide de la console Amazon S3 ou de l'opération DescribeJob via l'API REST, la AWS CLI ou les kits AWS SDK. Une tâche quitte l'état Active lorsque plus aucune opération n'est exécutée sur les objets. Cela peut se produire automatiquement, par exemple lorsqu'une tâche aboutit ou échoue. Toutefois, cela peut également être le résultat d'une action utilisateur, telle que l'annulation d'une tâche. L'état dans lequel passe la tâche dépend de la raison de la transition.
Pausing La tâche passe d'un certain état à Paused. Une tâche passe automatiquement à l'état Paused quand l'étape Pausing est terminée.
Paused Une tâche peut passer à l'état Paused si vous soumettez une autre tâche de priorité plus élevée alors que cette tâche est exécutée. Une tâche Paused retourne automatiquement à l'état Active lorsque les tâches de priorité plus élevée qui bloquent l'exécution de cette tâche se terminent, échouent ou sont suspendues.
Complete La tâche a fini d'effectuer l'opération demandée sur tous les objets répertoriés dans le manifeste. L'opération peut avoir abouti ou échoué pour chaque objet. Si vous avez configuré la tâche de sorte à générer un rapport de fin de tâche, ce rapport est disponible dès que la tâche passe à l'état Complete. Complete est un état final. Une fois qu'une tâche atteint l'état Complete, elle ne passe plus à aucun autre état.
Cancelling La tâche passe à l'état Cancelled. Une tâche passe automatiquement à l'état Cancelled quand l'étape Cancelling est terminée.
Cancelled Vous avez demandé que la tâche soit annulée, ce qui a été fait par la fonctionnalité d'opérations par lot S3. Cette tâche n'enverra plus de nouvelles demandes à Amazon S3. Cancelled est un état final. Après qu'une tâche atteint l'état Cancelled, elle ne passe plus à aucun autre état.
Failing La tâche passe à l'état Failed. Une tâche passe automatiquement à l'état Failed une fois que l'étape Failing est terminée.
Failed La tâche a échoué et n'est plus en cours d'exécution. Pour de plus amples informations sur les échecs de tâche, veuillez consulter Échec de suivi de la tâche. Failed est un état final. Après qu'une tâche atteint l'état Failed, elle ne passe plus à aucun autre état.

Mise à jour de l'état

Les exemples de la AWS CLI et du kit SDK pour Java mettent à jour de l'état d'une tâche d'opérations par lot. Pour en savoir plus sur l'utilisation de la console S3 pour gérer les tâches d'opérations par lot, veuillez consulter Utilisation de la console Simple Storage Service (Amazon S3) pour gérer vos tâches d'opérations par lot S3.

  • Si vous n'avez pas spécifié le paramètre --no-confirmation-required dans l'exemple create-job précédent, la tâche reste à l'état suspendu jusqu'à ce que vous confirmiez cette tâche en définissant son statut sur Ready. Amazon S3 rend ensuite la tâche éligible à l'exécution.

    aws s3control update-job-status \ --region us-west-2 \ --account-id 181572960644 \ --job-id 00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c \ --requested-job-status 'Ready'

  • Annulez la tâche en définissant son statut sur Cancelled.

    aws s3control update-job-status \ --region us-west-2 \ --account-id 181572960644 \ --job-id 00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c \ --status-update-reason "No longer needed" \ --requested-job-status Cancelled

L'exemple suivant met à jour l'état d'une tâche d'opérations par lot S3 à l'aide du kit AWS SDK for Java.

Pour de plus amples informations sur l'état d'une tâche, veuillez consulter Suivi de l'état de la tâche et des rapports de fin de tâche.

package aws.example.s3control; import com.amazonaws.AmazonServiceException; import com.amazonaws.SdkClientException; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.s3control.AWSS3Control; import com.amazonaws.services.s3control.AWSS3ControlClient; import com.amazonaws.services.s3control.model.UpdateJobStatusRequest; import static com.amazonaws.regions.Regions.US_WEST_2; public class UpdateJobStatus { public static void main(String[] args) { String accountId = "Account ID"; String jobId = "00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c"; try { AWSS3Control s3ControlClient = AWSS3ControlClient.builder() .withCredentials(new ProfileCredentialsProvider()) .withRegion(US_WEST_2) .build(); s3ControlClient.updateJobStatus(new UpdateJobStatusRequest() .withAccountId(accountId) .withJobId(jobId) .withRequestedJobStatus("Ready")); } catch (AmazonServiceException e) { // The call was transmitted successfully, but Amazon S3 couldn't process // it and returned an error response. e.printStackTrace(); } catch (SdkClientException e) { // Amazon S3 couldn't be contacted for a response, or the client // couldn't parse the response from Amazon S3. e.printStackTrace(); } } }

Notifications et journalisation

En plus de demander des rapports de fin de tâche, vous pouvez également capturer, examiner et auditer l'activité d'opérations par lot à l'aide d AWS CloudTrail. Puisque les opérations par lot utilisent des API Amazon S3 existantes pour exécuter des tâches, ces dernières émettent également les mêmes événements que si vous les appeliez directement. Ainsi, vous pouvez suivre et enregistrer la progression de votre tâche et l'ensemble de ses tâches à l'aide des mêmes outils et processus de notification, de journalisation et d'audit que vous utilisez déjà avec Amazon S3. Pour plus d'informations, consultez les exemples dans les sections suivantes.

Note

Amazon S3 Batch Operations génère à la fois des événements de gestion et de données dans CloudTrail pendant l'exécution d'une tâche. Le volume de ces événements évolue avec le nombre de clés dans le manifeste de chaque tâche. Pour plus d'informations, consultez la page de la tarification de CloudTrail, qui contient des exemples de modification des tarifs en fonction du nombre de journaux de suivi que vous avez configurés dans votre compte. Pour découvrir comment configurer et journaliser des événements en fonction de vos besoins, veuillez consulter la section Création de votre premier journal d'activité du Guide de l'utilisateur AWS CloudTrail.

Pour de plus amples informations sur les évènements Amazon S3, veuillez consulter Notifications d'événements Amazon S3.

Échec de suivi de la tâche

Si une tâche d'opérations par lot S3 rencontre un problème qui l'empêche de s'exécuter avec succès, comme le fait de ne pas pouvoir lire le manifeste spécifié, elle échoue. Lorsqu'une tâche échoue, elle génère un ou plusieurs codes d'échec ou causes d'échec. La fonctionnalité d'opérations par lot S3 stocke les codes et les causes d'échec avec la tâche afin que vous puissiez les consulter en demandant les détails de la tâche. Si vous avez demandé un rapport de fin de tâche, ce dernier inclut également les codes et les raisons d'échec.

Pour empêcher les tâches d'exécuter un grand nombre d'opérations infructueuses, Amazon S3 impose un seuil d'échec à chaque tâche d'opérations par lot. Lorsqu'une tâche a exécuté au moins 1 000 tâches, Amazon S3 surveille le taux d'échec. Si, à un moment donné, le taux d'échec (le nombre de tâches ayant échoué par rapport au nombre total de tâches exécutées) dépasse 50 %, la tâche échoue. Lorsqu'une tâche échoue parce qu'elle dépasse ce seul, vous pouvez identifier la cause de cet échec. Il se peut, par exemple, que vous ayez inclus par erreur des objets dans le manifeste qui ne sont pas dans le compartiment spécifié. Après avoir corrigé les erreurs, vous pouvez renvoyer la tâche.

Note

La fonctionnalité d'opérations par lot S3 fonctionne de manière asynchrone et n'exécute pas nécessairement les tâches dans l'ordre d'apparition des objets dans le manifeste. Dès lors, vous ne pouvez pas utiliser l'ordre du manifeste pour déterminer les tâches d'objets qui réussissent et celles qui échouent. À la place, vous pouvez examiner le rapport de fin de tâche (si vous en avez demandé un) ou consulter vos tâches d'événements AWS CloudTrail pour identifier la source des échecs.

Rapports de fin de tâche

Lorsque vous créez une tâche, vous pouvez demander un rapport de fin de tâche. Si la fonctionnalité d'opérations par lot S3 appelle avec succès au moins une tâche, Amazon S3 génère un rapport de fin de tâche après avoir terminé l'exécution des tâches, après avoir échoué ou après avoir été annulé. Vous pouvez configurer le rapport de fin de tâche pour y inclure toutes les tâches ou uniquement celles ayant échoué.

Le rapport de fin de tâche inclut la configuration et le statut des tâches, ainsi que des informations sur chaque tâche dont la clé d'objet et la version, le statut, les codes d'erreur et les descriptions des erreurs. Toutefois, les rapports de fin de tâche fournissent un moyen facile de consulter les résultats de vos tâches dans un format consolidé sans nécessiter de configuration supplémentaire. Pour obtenir un exemple de rapport de fin de tâche, veuillez consulter Exemples : Rapports de fin de tâche d'opérations par lot S3.

Si vous ne configurez pas de rapport de fin de tâche, vous pouvez continuer à surveiller et à auditer votre tâches et ses sous-tâches à l'aide de CloudTrail et d'Amazon CloudWatch. Pour plus d'informations, consultez la section suivante.