Registri di completamento dei lavori in AWS PCS - AWS PC

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Registri di completamento dei lavori in AWS PCS

I log di completamento dei lavori forniscono dettagli chiave sui lavori del AWS Parallel Computing Service (AWS PCS) una volta completati, senza costi aggiuntivi. Puoi utilizzare altri AWS servizi per accedere ed elaborare i tuoi dati di log, come Amazon CloudWatch Logs, Amazon Simple Storage Service (Amazon S3) e Amazon Data Firehose AWS ; PCS registra i metadati sui tuoi lavori, come i seguenti.

  • Job ID e nome

  • Informazioni su utenti e gruppi

  • Stato del lavoro (ad esempioCOMPLETED,FAILED,CANCELLED)

  • Partizione utilizzata

  • Limiti di tempo

  • Orari di inizio, fine, invio e tempi di idoneità

  • Elenco e conteggio dei nodi

  • Numero di processori

  • Directory di lavoro

  • Utilizzo delle risorse (CPU, memoria)

  • Codici di uscita

  • Dettagli dei nodi (nomi, istanze IDs, tipi di istanza)

Prerequisiti

Il principale IAM che gestisce il cluster AWS PCS deve consentire l'pcs:AllowVendedLogDeliveryForResourceazione.

Il seguente esempio di politica IAM concede le autorizzazioni richieste.

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

Imposta i registri di completamento dei lavori

È possibile configurare i registri di completamento dei lavori per il cluster AWS PCS con o. AWS Management Console AWS CLI

AWS Management Console
Per configurare i registri di completamento dei lavori con la console
  1. Aprire la console AWS PCS.

  2. Nel pannello di navigazione scegliere Clusters (Cluster).

  3. Scegli il cluster in cui desideri aggiungere i registri di completamento dei lavori.

  4. Nella pagina dei dettagli del cluster, scegli la scheda Registri.

  5. In Job Completion Logs, scegli Aggiungi per aggiungere fino a 3 destinazioni di consegna dei log tra CloudWatch Logs, Amazon S3 e Firehose.

  6. Scegli Aggiorna le consegne dei log.

AWS CLI
Per impostare i registri di completamento dei lavori con AWS CLI
  1. Crea una destinazione di consegna dei log:

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

    Sostituisci:

    • region— Il Regione AWS punto in cui si desidera creare la destinazione, ad esempio us-east-1

    • pcs-logs-destination— Un nome per la destinazione

    • resource-arn— L'Amazon Resource Name (ARN) di un gruppo di log CloudWatch Logs, un bucket S3 o un flusso di distribuzione Firehose.

    Per ulteriori informazioni, PutDeliveryDestinationconsulta Amazon CloudWatch Logs API Reference.

  2. Imposta il cluster PCS come fonte di consegna dei log:

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

    Sostituisci:

    • region— Il Regione AWS contenuto del tuo cluster, ad esempio us-east-1

    • cluster-logs-source-name— Un nome per la fonte

    • cluster-arn— l'ARN del tuo AWS cluster PCS

    Per ulteriori informazioni, PutDeliverySourceconsulta Amazon CloudWatch Logs API Reference.

  3. Connect l'origine di consegna alla destinazione di consegna:

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

    Sostituisci:

    • region— Il Regione AWS, ad esempio us-east-1

    • cluster-logs-source— Il nome della fonte di consegna

    • destination-arn— L'ARN della destinazione di consegna

    Per ulteriori informazioni, CreateDeliveryconsulta Amazon CloudWatch Logs API Reference.

Come trovare i log di completamento dei lavori

Puoi configurare le destinazioni dei log in CloudWatch Logs e Amazon S3. AWS PCS utilizza i seguenti nomi di percorso e nomi di file strutturati.

CloudWatch Registri

AWS PCS utilizza il seguente formato di nome per il flusso CloudWatch Logs:

AWSLogs/PCS/cluster-id/jobcomp.log

Ad esempio: AWSLogs/PCS/pcs_abc123de45/jobcomp.log

Amazon S3

AWS PCS utilizza il seguente formato di nome per il percorso S3:

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

Ad esempio: AWSLogs/111122223333/PCS/us-east-1/pcs_abc123de45/jobcomp/2025/06/19/11/

AWS PCS utilizza il seguente formato di nome per i file di registro:

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

Ad esempio: PCS_jobcomp_2025-06-19-11_pcs_abc123de45_04be080b.log.gz

Campi del registro di completamento del Job

AWS PCS scrive i dati del registro di completamento del lavoro come oggetti JSON. Il contenitore JSON jobcomp contiene i dettagli del lavoro. La tabella seguente descrive i campi all'interno del jobcomp contenitore. Alcuni campi sono presenti solo in circostanze specifiche, ad esempio per lavori di matrice o lavori eterogenei.

Campi del registro di completamento del Job
Nome Valore di esempio Richiesto Note
job_id 11 Sempre presenti con valore
user "root" Sempre presente con valore
user_id 0 Sempre presente con valore
group "root" Sempre presente con valore
group_id 0 Sempre presente con valore
name "wrap" Sempre presente con valore
job_state "COMPLETED" Sempre presente con valore
partition "Hydra-MpiQueue-abcdef01-7" Sempre presente con valore
time_limit "UNLIMITED" Sempre presente, ma potrebbe esserlo "UNLIMITED"
start_time "2025-06-19T10:58:57" Sempre presente, però potrebbe esserlo "Unknown"
end_time "2025-06-19T10:58:57" Sempre presente, però potrebbe esserlo "Unknown"
node_list "Hydra-MpiNG-abcdef01-2345-1" Sempre presente con valore
node_cnt 1 Sempre presente con valore
proc_cnt 1 Sempre presente con valore
work_dir "/root" Sempre presente, ma potrebbe esserlo "Unknown"
reservation_name "weekly_maintenance" Sempre presente, ma potrebbe essere una stringa vuota ""
tres.cpu 1 Sempre presente con valore
tres.mem.val 600 Sempre presente con valore
tres.mem.unit "M" Può essere "M" o "bb"
tres.node 1 Sempre presente con valore
tres.billing 1 Sempre presente con valore
account "finance" Sempre presente, ma potrebbe essere una stringa vuota ""
qos "normal" Sempre presente, ma potrebbe essere una stringa vuota ""
wc_key "project_1" Sempre presente, ma potrebbe essere una stringa vuota ""
cluster "unknown" Sempre presente, ma potrebbe esserlo "unknown"
submit_time "2025-06-19T10:55:46" Sempre presente, però potrebbe esserlo "Unknown"
eligible_time "2025-06-19T10:55:46" Sempre presente, però potrebbe esserlo "Unknown"
array_job_id 12 no Presente solo se il lavoro è un lavoro di matrice
array_task_id 1 no Presente solo se il lavoro è un lavoro di matrice
het_job_id 10 no Presente solo se il lavoro è eterogeneo
het_job_offset 0 no Presente solo se la mansione è eterogenea
derived_exit_code_status 0 Sempre presente con valore
derived_exit_code_signal 0 Sempre presente con valore
exit_code_status 0 Sempre presente con valore
exit_code_signal 0 Sempre presente con valore
node_details[0].name "Hydra-MpiNG-abcdef01-2345-1" no Sempre presente, ma node_details potrebbe esserlo "[]"
node_details[0].instance_id "i-0abcdef01234567a" no Sempre presente, però node_details potrebbe esserlo "[]"
node_details[0].instance_type "t4g.micro" no Sempre presente, però node_details potrebbe esserlo "[]"

Esempi di registri di completamento dei lavori

Gli esempi seguenti mostrano i registri di completamento dei lavori per vari tipi e stati dei lavori:

{ "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" } ] } }