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. La tâche est alors prête à commencer à exécuter l'opération spécifiée sur 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 une confirmation, mais vous n'avez pas encore confirmé que vous souhaitez l'exécuter. 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 entre dans l'Suspendedétat immédiatement aprèsPreparing. 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. Pendant qu'une tâche est en coursActive, vous pouvez suivre sa progression à l'aide de la console Amazon S3 ou l'DescribeJobopération via le REST API AWS CLI, ou AWS SDKs. Une tâche sort de l'Activeétat lorsqu'elle n'exécute plus d'opérations sur des objets. Ce comportement peut se produire automatiquement, par exemple lorsqu'une tâche se termine avec succès ou échoue. Ce comportement peut également se produire à la suite d'actions de l'utilisateur, telles 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'un poste atteintComplete, il ne passe pas à un 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é l'annulation de la tâche, et S3 Batch Operations l'a correctement annulée. La tâche ne soumettra aucune nouvelle demande à Amazon S3. Cancelled est un état final. Une fois qu'une tâche est atteinteCancelled, elle ne passe pas à un 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 Suivi des échecs au travail. Failed est un état final. Une fois qu'un poste est atteintFailed, il ne sera pas transféré vers un autre État.

Mise à jour de l'état

Les AWS SDK for Java exemples suivants AWS CLI mettent à jour le statut d'une tâche Batch Operations. Pour plus d'informations sur l'utilisation de la console Amazon S3 pour gérer les tâches Batch Operations, consultezUtilisation de la console Simple Storage Service (Amazon S3) pour gérer vos tâches d'opérations par lot S3.

Pour utiliser les exemples de commandes suivants, remplacez espaces réservés aux entrées utilisateur avec vos propres informations.

  • Si vous n'avez pas spécifié le --no-confirmation-required paramètre dans votre create-job commande, la tâche reste suspendue jusqu'à ce que vous la confirmiez en définissant son statut surReady. Amazon S3 rend ensuite la tâche éligible à l'exécution.

    aws s3control update-job-status \ --region us-west-2 \ --account-id 123456789012 \ --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 123456789012 \ --job-id 00e123a4-c0d8-41f4-a0eb-b46f9ba5b07c \ --status-update-reason "No longer needed" \ --requested-job-status Cancelled

L'exemple suivant met à jour le statut d'une tâche S3 Batch Operations à l'aide du 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 d'achèvement, vous pouvez également capturer, examiner et auditer l'activité des opérations par lots en utilisant AWS CloudTrail. Dans la mesure où Batch Operations utilise les API opérations Amazon S3 existantes pour effectuer des tâches, celles-ci émettent également les mêmes événements que si vous les appeliez directement. Par conséquent, vous pouvez suivre et enregistrer la progression de votre tâche et de toutes ses tâches en utilisant les mêmes outils et processus de notification, de journalisation et d'audit que ceux que vous utilisez déjà avec Amazon S3. Pour plus d'informations, consultez les exemples dans les sections suivantes.

Note

Batch Operations génère à la fois des événements de gestion et de données CloudTrail lors de l'exécution des tâches. Le volume de ces événements varie en fonction du nombre de clés figurant dans le manifeste de chaque tâche. Pour plus d'informations, consultez la page de CloudTrail tarification, qui contient des exemples illustrant la façon dont les prix changent en fonction du nombre de sentiers 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.

Suivi des échecs au travail

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. S3 Batch Operations enregistre les codes d'échec et les raisons de l'é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 des tâches. 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

S3 Batch Operations fonctionne de manière asynchrone et les tâches ne s'exécutent pas nécessairement dans l'ordre dans lequel les objets sont répertoriés 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. Vous pouvez plutôt examiner le rapport d'achèvement de la tâche (si vous en avez demandé un) ou consulter vos journaux d' AWS CloudTrail événements pour déterminer 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. Tant que S3 Batch Operations appelle avec succès au moins une tâche, Amazon S3 génère un rapport d'achèvement une fois que la tâche a terminé d'exécuter les tâches, a échoué ou a été annulée. Vous pouvez configurer le rapport de fin de tâche pour y inclure toutes les tâches ou uniquement celles ayant échoué.

Le rapport d'achèvement inclut la configuration, le statut et les informations relatives à chaque tâche, notamment la clé et la version de l'objet, le statut, les codes d'erreur et les descriptions des erreurs éventuelles. 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. Les rapports d'achèvement sont chiffrés à l'aide d'un chiffrement côté serveur avec des clés gérées par Amazon S3 (SSE-S3). 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 d'achèvement, vous pouvez toujours surveiller et auditer votre tâche et ses tâches à l'aide d' CloudTrail Amazon CloudWatch. Pour plus d’informations, consultez les rubriques suivantes :