Registros de conclusão de trabalhos no AWS PCS - AWS PCS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Registros de conclusão de trabalhos no AWS PCS

Os registros de conclusão do trabalho fornecem detalhes importantes sobre seus trabalhos do Serviço de Computação AWS Paralela (AWS PCS) quando eles são concluídos, sem custo adicional. Você pode usar outros AWS serviços para acessar e processar seus dados de log, como Amazon CloudWatch Logs, Amazon Simple Storage Service (Amazon S3) e Amazon Data Firehose AWS ; o PCS registra metadados sobre seus trabalhos, como os seguintes.

  • ID e nome do Job

  • Informações do usuário e do grupo

  • Estado do trabalho (comoCOMPLETED,FAILED,CANCELLED)

  • Partição usada

  • Limites de tempo

  • Horários de início, término, envio e qualificáveis

  • Lista e contagem de nós

  • Contagem de processadores

  • Diretório de trabalho

  • Uso de recursos (CPU, memória)

  • Códigos de saída

  • Detalhes do nó (nomes, instância IDs, tipos de instância)

Pré-requisitos

O diretor do IAM que gerencia o cluster AWS PCS deve permitir a pcs:AllowVendedLogDeliveryForResource ação.

O exemplo a seguir da política do IAM concede as permissões necessárias.

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

Configurar registros de conclusão do trabalho

Você pode configurar registros de conclusão de tarefas para seu cluster AWS PCS com o AWS Management Console ou AWS CLI.

AWS Management Console
Para configurar registros de conclusão de trabalhos com o console
  1. Abra o console AWS PCS.

  2. No painel de navegação, escolha Clusters.

  3. Escolha o cluster ao qual você deseja adicionar os registros de conclusão do trabalho.

  4. Na página de detalhes do cluster, escolha a guia Registros.

  5. Em Job Conclution Logs, escolha Add para adicionar até 3 destinos de entrega de CloudWatch logs entre Logs, Amazon S3 e Firehose.

  6. Escolha Atualizar entregas de registros.

AWS CLI
Para configurar registros de conclusão do trabalho com o AWS CLI
  1. Crie um destino de entrega de registros:

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

    Substitua:

    • region— O Região da AWS local onde você deseja criar o destino, como us-east-1

    • pcs-logs-destination— Um nome para o destino

    • resource-arn— O Amazon Resource Name (ARN) de um grupo de CloudWatch logs do Logs, bucket do S3 ou stream de entrega do Firehose.

    Para obter mais informações, consulte PutDeliveryDestinationa Referência da API Amazon CloudWatch Logs.

  2. Defina o cluster PCS como uma fonte 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

    Substitua:

    • region— O Região da AWS do seu cluster, como us-east-1

    • cluster-logs-source-name— Um nome para a fonte

    • cluster-arn— o ARN do seu AWS cluster PCS

    Para obter mais informações, consulte PutDeliverySourcea Referência da API Amazon CloudWatch Logs.

  3. Conecte a fonte de entrega ao destino da entrega:

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

    Substitua:

    • region— O Região da AWS, como us-east-1

    • cluster-logs-source— O nome da sua fonte de entrega

    • destination-arn— O ARN do seu destino de entrega

    Para obter mais informações, consulte CreateDeliverya Referência da API Amazon CloudWatch Logs.

Como encontrar registros de conclusão de trabalhos

Você pode configurar destinos de log no CloudWatch Logs e no Amazon S3. AWS O PCS usa os seguintes nomes de caminhos estruturados e nomes de arquivos.

CloudWatch Registros

AWS O PCS usa o seguinte formato de nome para o stream de CloudWatch registros:

AWSLogs/PCS/cluster-id/jobcomp.log

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

Amazon S3

AWS O PCS usa o seguinte formato de nome para o caminho do S3:

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

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

AWS O PCS usa o seguinte formato de nome para os arquivos de log:

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

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

Campos do registro de conclusão do trabalho

AWS O PCS grava dados de registro de conclusão do trabalho como objetos JSON. O contêiner JSON jobcomp contém os detalhes do trabalho. A tabela a seguir descreve os campos dentro do jobcomp contêiner. Alguns campos só estão presentes em circunstâncias específicas, como para trabalhos de matriz ou trabalhos heterogêneos.

Campos do registro de conclusão do trabalho
Name Valor de exemplo Obrigatório Observações
job_id 11 sim Sempre presente com valor
user "root" sim Sempre presente com valor
user_id 0 sim Sempre presente com valor
group "root" sim Sempre presente com valor
group_id 0 sim Sempre presente com valor
name "wrap" sim Sempre presente com valor
job_state "COMPLETED" sim Sempre presente com valor
partition "Hydra-MpiQueue-abcdef01-7" sim Sempre presente com valor
time_limit "UNLIMITED" sim Sempre presente, mas pode estar "UNLIMITED"
start_time "2025-06-19T10:58:57" sim Sempre presente, mas pode estar "Unknown"
end_time "2025-06-19T10:58:57" sim Sempre presente, mas pode estar "Unknown"
node_list "Hydra-MpiNG-abcdef01-2345-1" sim Sempre presente com valor
node_cnt 1 sim Sempre presente com valor
proc_cnt 1 sim Sempre presente com valor
work_dir "/root" sim Sempre presente, mas pode estar "Unknown"
reservation_name "weekly_maintenance" sim Sempre presente, mas pode ser uma string vazia ""
tres.cpu 1 sim Sempre presente com valor
tres.mem.val 600 sim Sempre presente com valor
tres.mem.unit "M" sim Pode ser "M" ou "bb"
tres.node 1 sim Sempre presente com valor
tres.billing 1 sim Sempre presente com valor
account "finance" sim Sempre presente, mas pode ser uma string vazia ""
qos "normal" sim Sempre presente, mas pode ser uma string vazia ""
wc_key "project_1" sim Sempre presente, mas pode ser uma string vazia ""
cluster "unknown" sim Sempre presente, mas pode estar "unknown"
submit_time "2025-06-19T10:55:46" sim Sempre presente, mas pode estar "Unknown"
eligible_time "2025-06-19T10:55:46" sim Sempre presente, mas pode estar "Unknown"
array_job_id 12 não Presente somente se o trabalho for um trabalho de matriz
array_task_id 1 não Presente somente se o trabalho for um trabalho de matriz
het_job_id 10 não Presente apenas se o trabalho for heterogêneo
het_job_offset 0 não Presente apenas se o trabalho for heterogêneo
derived_exit_code_status 0 sim Sempre presente com valor
derived_exit_code_signal 0 sim Sempre presente com valor
exit_code_status 0 sim Sempre presente com valor
exit_code_signal 0 sim Sempre presente com valor
node_details[0].name "Hydra-MpiNG-abcdef01-2345-1" não Sempre presente, mas node_details pode estar "[]"
node_details[0].instance_id "i-0abcdef01234567a" não Sempre presente, mas node_details pode estar "[]"
node_details[0].instance_type "t4g.micro" não Sempre presente, mas node_details pode estar "[]"

Exemplos de registros de conclusão de trabalhos

Os exemplos a seguir mostram registros de conclusão de trabalhos para vários tipos e estados de trabalhos:

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