Journaux d'achèvement des tâches dans AWS PCS - AWS PCS

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.

Journaux d'achèvement des tâches dans AWS PCS

Les journaux d'achèvement des tâches vous fournissent des informations clés sur vos tâches du AWS Parallel Computing Service (AWS PCS) lorsqu'elles sont terminées, sans frais supplémentaires. Vous pouvez utiliser d'autres AWS services pour accéder à vos données de journal et les traiter, tels qu'Amazon CloudWatch Logs, Amazon Simple Storage Service (Amazon S3) et Amazon Data Firehose AWS  ; PCS enregistre les métadonnées relatives à vos tâches, telles que les suivantes.

  • ID et nom du job

  • Informations sur les utilisateurs et les groupes

  • État du poste (tel queCOMPLETED,FAILED,CANCELLED)

  • Partition utilisée

  • Limites de temps

  • Heures de début, de fin, de soumission et heures d'éligibilité

  • Liste et nombre de nœuds

  • Nombre de processeurs

  • Répertoire de travail

  • Utilisation des ressources (processeur, mémoire)

  • Codes de sortie

  • Détails des nœuds (noms, instances IDs, types d'instances)

Prérequis

Le principal IAM qui gère le cluster AWS PCS doit autoriser l'pcs:AllowVendedLogDeliveryForResourceaction.

L'exemple de politique IAM suivant accorde les autorisations requises.

JSON
{ "Version": "2012-10-17", "Statement": [ { "Sid": "PcsAllowVendedLogsDelivery", "Effect": "Allow", "Action": ["pcs:AllowVendedLogDeliveryForResource"], "Resource": [ "arn:aws:pcs:::cluster/*" ] } ] }

Configurer les journaux d'achèvement des tâches

Vous pouvez configurer des journaux d'achèvement des tâches pour votre cluster AWS PCS à l'aide du AWS Management Console ou AWS CLI.

AWS Management Console
Pour configurer les journaux d'achèvement des tâches à l'aide de la console
  1. Ouvrez la console AWS PCS.

  2. Dans le panneau de navigation, choisissez Clusters.

  3. Choisissez le cluster dans lequel vous souhaitez ajouter les journaux d'achèvement des tâches.

  4. Sur la page des détails du cluster, choisissez l'onglet Logs.

  5. Sous Job Completion Logs, choisissez Ajouter pour ajouter jusqu'à 3 destinations de livraison de CloudWatch journaux parmi Logs, Amazon S3 et Firehose.

  6. Choisissez Mettre à jour les livraisons de journaux.

AWS CLI
Pour configurer les journaux d'achèvement des tâches à l'aide du AWS CLI
  1. Créez une destination de livraison du journal :

    aws logs put-delivery-destination --region region \ --name pcs-logs-destination \ --delivery-destination-configuration \ destinationResourceArn=resource-arn

    Remplacer :

    • region— L' Région AWS endroit où vous souhaitez créer la destination, tel que us-east-1

    • pcs-logs-destination— Un nom pour la destination

    • resource-arn— Le nom de ressource Amazon (ARN) d'un groupe de CloudWatch journaux Logs, d'un bucket S3 ou d'un flux de diffusion Firehose.

    Pour plus d'informations, consultez PutDeliveryDestinationle manuel Amazon CloudWatch Logs API Reference.

  2. Définissez le cluster PCS comme source de livraison de journaux :

    aws logs put-delivery-source --region region \ --name cluster-logs-source-name \ --resource-arn cluster-arn \ --log-type PCS_JOBCOMP_LOGS

    Remplacer :

    • region— Le Région AWS nom de votre cluster, tel que us-east-1

    • cluster-logs-source-name— Un nom pour la source

    • cluster-arn— l'ARN de votre cluster AWS PCS

    Pour plus d'informations, consultez PutDeliverySourcele manuel Amazon CloudWatch Logs API Reference.

  3. Connectez la source de livraison à la destination de livraison :

    aws logs create-delivery --region region \ --delivery-source-name cluster-logs-source \ --delivery-destination-arn destination-arn

    Remplacer :

    • region— Le Région AWS, tel que us-east-1

    • cluster-logs-source— Le nom de votre source de livraison

    • destination-arn— L'ARN de votre destination de livraison

    Pour plus d'informations, consultez CreateDeliveryle manuel Amazon CloudWatch Logs API Reference.

Comment trouver les journaux d'achèvement des tâches

Vous pouvez configurer les destinations des CloudWatch journaux dans Logs et Amazon S3. AWS PCS utilise les noms de chemin et de fichier structurés suivants.

CloudWatch Journaux

AWS PCS utilise le format de nom suivant pour le flux CloudWatch Logs :

AWSLogs/PCS/cluster-id/jobcomp.log

Par exemple : AWSLogs/PCS/pcs_abc123de45/jobcomp.log

Amazon S3

AWS PCS utilise le format de nom suivant pour le chemin S3 :

AWSLogs/account-id/PCS/region/cluster-id/jobcomp/year/month/day/hour/

Par exemple : AWSLogs/111122223333/PCS/us-east-1/pcs_abc123de45/jobcomp/2025/06/19/11/

AWS PCS utilise le format de nom suivant pour les fichiers journaux :

PCS_jobcomp_year-month-day-hour_cluster-id_random-id.log.gz

Par exemple : PCS_jobcomp_2025-06-19-11_pcs_abc123de45_04be080b.log.gz

Champs du journal d'achèvement des tâches

AWS PCS écrit les données du journal d'achèvement des tâches sous forme d'objets JSON. Le conteneur JSON jobcomp contient les détails des tâches. Le tableau suivant décrit les champs à l'intérieur du jobcomp conteneur. Certains champs ne sont présents que dans des circonstances spécifiques, par exemple pour les tâches de matrice ou les tâches hétérogènes.

Champs du journal d'achèvement des tâches
Nom Exemple de valeur Obligatoire Remarques
job_id 11 oui Toujours présent avec de la valeur
user "root" oui Toujours présent avec de la valeur
user_id 0 oui Toujours présent avec de la valeur
group "root" oui Toujours présent avec de la valeur
group_id 0 oui Toujours présent avec de la valeur
name "wrap" oui Toujours présent avec de la valeur
job_state "COMPLETED" oui Toujours présent avec de la valeur
partition "Hydra-MpiQueue-abcdef01-7" oui Toujours présent avec de la valeur
time_limit "UNLIMITED" oui Toujours présent, mais peut-être "UNLIMITED"
start_time "2025-06-19T10:58:57" oui Toujours présent, mais peut-être "Unknown"
end_time "2025-06-19T10:58:57" oui Toujours présent, mais peut-être "Unknown"
node_list "Hydra-MpiNG-abcdef01-2345-1" oui Toujours présent avec de la valeur
node_cnt 1 oui Toujours présent avec de la valeur
proc_cnt 1 oui Toujours présent avec de la valeur
work_dir "/root" oui Toujours présent, mais peut-être "Unknown"
reservation_name "weekly_maintenance" oui Toujours présent, mais il peut s'agir d'une chaîne vide ""
tres.cpu 1 oui Toujours présent avec de la valeur
tres.mem.val 600 oui Toujours présent avec de la valeur
tres.mem.unit "M" oui Peut être "M" ou "bb"
tres.node 1 oui Toujours présent avec de la valeur
tres.billing 1 oui Toujours présent avec de la valeur
account "finance" oui Toujours présent, mais il peut s'agir d'une chaîne vide ""
qos "normal" oui Toujours présent, mais il peut s'agir d'une chaîne vide ""
wc_key "project_1" oui Toujours présent, mais il peut s'agir d'une chaîne vide ""
cluster "unknown" oui Toujours présent, mais peut-être "unknown"
submit_time "2025-06-19T10:55:46" oui Toujours présent, mais peut-être "Unknown"
eligible_time "2025-06-19T10:55:46" oui Toujours présent, mais peut-être "Unknown"
array_job_id 12 non Présent uniquement si la tâche est une tâche matricielle
array_task_id 1 non Présent uniquement si la tâche est une tâche matricielle
het_job_id 10 non Présent uniquement s'il s'agit d'une tâche hétérogène
het_job_offset 0 non Présent uniquement s'il s'agit d'une tâche hétérogène
derived_exit_code_status 0 oui Toujours présent avec de la valeur
derived_exit_code_signal 0 oui Toujours présent avec de la valeur
exit_code_status 0 oui Toujours présent avec de la valeur
exit_code_signal 0 oui Toujours présent avec de la valeur
node_details[0].name "Hydra-MpiNG-abcdef01-2345-1" non Toujours présent, mais node_details peut-être "[]"
node_details[0].instance_id "i-0abcdef01234567a" non Toujours présent, mais node_details peut-être "[]"
node_details[0].instance_type "t4g.micro" non Toujours présent, mais node_details peut-être "[]"

Exemples de journaux d'achèvement des tâches

Les exemples suivants présentent les journaux d'achèvement des tâches pour différents types et états de tâches :

{ "jobcomp": { "job_id": 1, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T16:32:57", "end_time": "2025-06-19T16:33:03", "node_list": "Hydra-MpiNG-abcdef01-2345-[1-2]", "node_cnt": 2, "proc_cnt": 2, "work_dir": "/usr/bin", "reservation_name": "", "tres": { "cpu": 2, "mem": { "val": 1944, "unit": "M" }, "node": 2, "billing": 2 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T16:29:40", "eligible_time": "2025-06-19T16:29:41", "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc123def45678", "instance_type": "t4g.micro" }, { "name": "Hydra-MpiNG-abcdef01-2345-2", "instance_id": "i-0def456abc78901", "instance_type": "t4g.micro" } ] } } { "jobcomp": { "job_id": 2, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T16:33:13", "end_time": "2025-06-19T16:33:14", "node_list": "Hydra-MpiNG-abcdef01-2345-[1-2]", "node_cnt": 2, "proc_cnt": 2, "work_dir": "/usr/bin", "reservation_name": "", "tres": { "cpu": 2, "mem": { "val": 1944, "unit": "M" }, "node": 2, "billing": 2 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T16:33:13", "eligible_time": "2025-06-19T16:33:13", "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc123def45678", "instance_type": "t4g.micro" }, { "name": "Hydra-MpiNG-abcdef01-2345-2", "instance_id": "i-0def456abc78901", "instance_type": "t4g.micro" } ] } } { "jobcomp": { "job_id": 3, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T22:58:57", "end_time": "2025-06-19T22:58:57", "node_list": "Hydra-MpiNG-abcdef01-2345-1", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 972, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T22:55:46", "eligible_time": "2025-06-19T22:55:46", "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc234def56789", "instance_type": "t4g.micro" } ] } } { "jobcomp": { "job_id": 4, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "525600", "start_time": "2025-06-19T23:04:27", "end_time": "2025-06-19T23:04:27", "node_list": "Hydra-MpiNG-abcdef01-2345-[1-2]", "node_cnt": 2, "proc_cnt": 2, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 2, "mem": { "val": 1944, "unit": "M" }, "node": 2, "billing": 2 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:01:38", "eligible_time": "2025-06-19T23:01:38", "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc234def56789", "instance_type": "t4g.micro" }, { "name": "Hydra-MpiNG-abcdef01-2345-2", "instance_id": "i-0def345abc67890", "instance_type": "t4g.micro" } ] } } { "jobcomp": { "job_id": 5, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "FAILED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:09:00", "end_time": "2025-06-19T23:09:00", "node_list": "(null)", "node_cnt": 0, "proc_cnt": 0, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 1, "unit": "G" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:09:00", "eligible_time": "2025-06-19T23:09:00", "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 1, "node_details": [] } } { "jobcomp": { "job_id": 6, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "CANCELLED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:09:36", "end_time": "2025-06-19T23:09:36", "node_list": "(null)", "node_cnt": 0, "proc_cnt": 0, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 400, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:09:35", "eligible_time": "2025-06-19T23:09:36", "het_job_id": 6, "het_job_offset": 0, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 1, "node_details": [] } } { "jobcomp": { "job_id": 7, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "CANCELLED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:10:03", "end_time": "2025-06-19T23:10:03", "node_list": "(null)", "node_cnt": 0, "proc_cnt": 0, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 400, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:10:03", "eligible_time": "2025-06-19T23:10:03", "het_job_id": 7, "het_job_offset": 0, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 1, "node_details": [] } } { "jobcomp": { "job_id": 8, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:11:24", "end_time": "2025-06-19T23:11:24", "node_list": "Hydra-MpiNG-abcdef01-2345-1", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 400, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:11:23", "eligible_time": "2025-06-19T23:11:23", "het_job_id": 8, "het_job_offset": 0, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc234def56789", "instance_type": "t4g.micro" } ] } } { "jobcomp": { "job_id": 9, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:11:24", "end_time": "2025-06-19T23:11:24", "node_list": "Hydra-MpiNG-abcdef01-2345-2", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 400, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:11:23", "eligible_time": "2025-06-19T23:11:23", "het_job_id": 8, "het_job_offset": 1, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-2", "instance_id": "i-0def345abc67890", "instance_type": "t4g.micro" } ] } } { "jobcomp": { "job_id": 10, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:12:24", "end_time": "2025-06-19T23:12:24", "node_list":"Hydra-MpiNG-abcdef01-2345-1", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 400, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:12:14", "eligible_time": "2025-06-19T23:12:14", "het_job_id": 10, "het_job_offset": 0, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc234def56789", "instance_type": "t4g.micro" } ] } } { "jobcomp": { "job_id": 11, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:12:24", "end_time": "2025-06-19T23:12:24", "node_list":"Hydra-MpiNG-abcdef01-2345-2", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 600, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:12:14", "eligible_time": "2025-06-19T23:12:14", "het_job_id": 10, "het_job_offset": 1, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-2", "instance_id": "i-0def345abc67890", "instance_type": "t4g.micro" } ] } } { "jobcomp": { "job_id": 13, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:47:57", "end_time": "2025-06-19T23:47:58", "node_list":"Hydra-MpiNG-abcdef01-2345-1", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 972, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:43:56", "eligible_time": "2025-06-19T23:43:56" , "array_job_id": 12, "array_task_id": 1, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc345def67890", "instance_type": "t4g.micro" } ] } } { "jobcomp": { "job_id": 12, "user": "root", "user_id": 0, "group": "root", "group_id": 0, "name": "wrap", "job_state": "COMPLETED", "partition": "Hydra-MpiQueue-abcdef01-7", "time_limit": "UNLIMITED", "start_time": "2025-06-19T23:47:58", "end_time": "2025-06-19T23:47:58", "node_list":"Hydra-MpiNG-abcdef01-2345-1", "node_cnt": 1, "proc_cnt": 1, "work_dir": "/root", "reservation_name": "", "tres": { "cpu": 1, "mem": { "val": 972, "unit": "M" }, "node": 1, "billing": 1 }, "account": "", "qos": "", "wc_key": "", "cluster": "unknown", "submit_time": "2025-06-19T23:43:56", "eligible_time": "2025-06-19T23:43:56" , "array_job_id": 12, "array_task_id": 2, "derived_exit_code_status": 0, "derived_exit_code_signal": 0, "exit_code_status": 0, "exit_code_signal": 0, "node_details": [ { "name": "Hydra-MpiNG-abcdef01-2345-1", "instance_id": "i-0abc345def67890", "instance_type": "t4g.micro" } ] } }