Registros de finalización de trabajos en AWS PCS - AWS PCS

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Registros de finalización de trabajos en AWS PCS

Los registros de finalización de trabajos le proporcionan detalles clave sobre los trabajos del Servicio de Computación AWS Paralela (AWS PCS) una vez finalizados, sin coste adicional. Puede utilizar otros AWS servicios para acceder a sus datos de registro y procesarlos, como Amazon CloudWatch Logs, Amazon Simple Storage Service (Amazon S3) y Amazon Data Firehose AWS ; PCS registra metadatos sobre sus trabajos, como los siguientes.

  • ID y nombre del trabajo

  • Información de usuario y grupo

  • Estado del trabajo (por ejemploCOMPLETED,FAILED,CANCELLED)

  • Partición utilizada

  • Límites de tiempo

  • Horarios de inicio, finalización, envío y disponibilidad

  • Lista y recuento de nodos

  • Recuento de procesadores

  • Directorio de trabajo

  • Uso de recursos (CPU, memoria)

  • Códigos de salida

  • Detalles de los nodos (nombres, instancias IDs, tipos de instancias)

Requisitos previos

El principal de IAM que administra el clúster de AWS PCS debe permitir la pcs:AllowVendedLogDeliveryForResource acción.

El siguiente ejemplo de política de IAM concede los permisos necesarios.

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

Configure los registros de finalización de trabajos

Puede configurar los registros de finalización de tareas para su clúster de AWS PCS con la tecla AWS Management Console o AWS CLI.

AWS Management Console
Para configurar los registros de finalización de tareas con la consola
  1. Abra la consola AWS PCS.

  2. En el panel de navegación, seleccione Clusters (Clústeres).

  3. Elija el clúster en el que desee añadir los registros de finalización de tareas.

  4. En la página de detalles del clúster, seleccione la pestaña Registros.

  5. En Registros de finalización de trabajos, selecciona Añadir para añadir hasta 3 destinos de entrega de CloudWatch registros de entre Logs, Amazon S3 y Firehose.

  6. Selecciona Actualizar entregas de registros.

AWS CLI
Para configurar los registros de finalización de trabajos con el AWS CLI
  1. Cree un destino de entrega de registros:

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

    Reemplace:

    • region— El Región de AWS lugar en el que desea crear el destino, por ejemplo us-east-1

    • pcs-logs-destination— Un nombre para el destino

    • resource-arn— El nombre de recurso de Amazon (ARN) de un grupo de CloudWatch registros de Logs, un bucket de S3 o una transmisión de entrega de Firehose.

    Para obtener más información, consulta PutDeliveryDestinationla referencia de la API CloudWatch de Amazon Logs.

  2. Configure el clúster de PCS como fuente de entrega de registros:

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

    Reemplace:

    • region— El Región de AWS de su clúster, como us-east-1

    • cluster-logs-source-name— Un nombre para la fuente

    • cluster-arn— el ARN de su AWS clúster PCS

    Para obtener más información, consulta PutDeliverySourcela referencia de la API CloudWatch de Amazon Logs.

  3. Conecta la fuente de entrega al destino de entrega:

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

    Reemplace:

    • region— Los Región de AWS, como us-east-1

    • cluster-logs-source— El nombre de su fuente de entrega

    • destination-arn— El ARN de su destino de entrega

    Para obtener más información, consulta CreateDeliveryla referencia de la API CloudWatch de Amazon Logs.

¿Cómo encontrar los registros de finalización de trabajos

Puede configurar los destinos de los CloudWatch registros en Logs y Amazon S3. AWS PCS utiliza los siguientes nombres de rutas y archivos estructurados.

CloudWatch Registros

AWS El PCS utiliza el siguiente formato de nombre para el flujo de CloudWatch registros:

AWSLogs/PCS/cluster-id/jobcomp.log

Por ejemplo: AWSLogs/PCS/pcs_abc123de45/jobcomp.log

Amazon S3

AWS PCS utiliza el siguiente formato de nombre para la ruta S3:

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

Por ejemplo: AWSLogs/111122223333/PCS/us-east-1/pcs_abc123de45/jobcomp/2025/06/19/11/

AWS PCS utiliza el siguiente formato de nombre para los archivos de registro:

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

Por ejemplo: PCS_jobcomp_2025-06-19-11_pcs_abc123de45_04be080b.log.gz

Campos del registro de finalización de trabajos

AWS PCS escribe los datos del registro de finalización del trabajo como objetos JSON. El contenedor JSON jobcomp contiene los detalles del trabajo. En la siguiente tabla se describen los campos del jobcomp contenedor. Algunos campos solo están presentes en circunstancias específicas, como en trabajos de matriz o trabajos heterogéneos.

Campos del registro de finalización de trabajos
Nombre Ejemplo de valor Obligatorio Notas
job_id 11 yes Siempre presentes y con valor
user "root" yes Siempre presente con valor
user_id 0 yes Siempre presente con valor
group "root" yes Siempre presente con valor
group_id 0 yes Siempre presente con valor
name "wrap" yes Siempre presente con valor
job_state "COMPLETED" yes Siempre presente con valor
partition "Hydra-MpiQueue-abcdef01-7" yes Siempre presente con valor
time_limit "UNLIMITED" yes Siempre presente, pero podría estarlo "UNLIMITED"
start_time "2025-06-19T10:58:57" yes Siempre presente, pero podría estarlo "Unknown"
end_time "2025-06-19T10:58:57" yes Siempre presente, pero podría estarlo "Unknown"
node_list "Hydra-MpiNG-abcdef01-2345-1" yes Siempre presente con valor
node_cnt 1 yes Siempre presente con valor
proc_cnt 1 yes Siempre presente con valor
work_dir "/root" yes Siempre presente, pero podría estarlo "Unknown"
reservation_name "weekly_maintenance" yes Siempre presente, pero puede ser una cadena vacía ""
tres.cpu 1 yes Siempre presente con valor
tres.mem.val 600 yes Siempre presente con valor
tres.mem.unit "M" yes Puede ser "M" o "bb"
tres.node 1 yes Siempre presente con valor
tres.billing 1 yes Siempre presente con valor
account "finance" yes Siempre presente, pero puede ser una cadena vacía ""
qos "normal" yes Siempre presente, pero puede ser una cadena vacía ""
wc_key "project_1" yes Siempre presente, pero puede ser una cadena vacía ""
cluster "unknown" yes Siempre presente, pero podría estarlo "unknown"
submit_time "2025-06-19T10:55:46" yes Siempre presente, pero podría estarlo "Unknown"
eligible_time "2025-06-19T10:55:46" yes Siempre presente, pero podría estarlo "Unknown"
array_job_id 12 no Solo está presente si el trabajo es un trabajo de matriz
array_task_id 1 no Solo está presente si el trabajo es un trabajo de matriz
het_job_id 10 no Solo está presente si el trabajo es heterogéneo
het_job_offset 0 no Solo está presente si el trabajo es heterogéneo
derived_exit_code_status 0 yes Siempre presente con valor
derived_exit_code_signal 0 yes Siempre presente con valor
exit_code_status 0 yes Siempre presente con valor
exit_code_signal 0 yes Siempre presente con valor
node_details[0].name "Hydra-MpiNG-abcdef01-2345-1" no Siempre presente, pero node_details podría estarlo "[]"
node_details[0].instance_id "i-0abcdef01234567a" no Siempre presente, pero node_details podría estarlo "[]"
node_details[0].instance_type "t4g.micro" no Siempre presente, pero node_details podría estarlo "[]"

Ejemplos de registros de finalización de trabajos

En los siguientes ejemplos se muestran los registros de finalización de tareas para varios tipos y estados de tareas:

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