查看管道日志 - AWS Data Pipeline

查看管道日志

管道创建中支持管道级别的日志记录,其方法是在控制台中指定 Amazon S3 位置,或者使用开发工具包/CLI 的默认对象中的 pipelineLogUri。该 URI 中每个管道的目录结构类似于下文:

pipelineId -componentName -instanceId -attemptId

对于管道 df-00123456ABC7DEF8HIJK,目录结构如下所示:

df-00123456ABC7DEF8HIJK -ActivityId_fXNzc -@ActivityId_fXNzc_2014-05-01T00:00:00 -@ActivityId_fXNzc_2014-05-01T00:00:00_Attempt=1

对于 ShellCommandActivity,与这些活动关联的 stderrstdout 的日志存储在每次尝试的目录中。

对于类似于 EmrCluster 的资源,其中设置了 emrLogUri,该值优先。否则,资源 (包括这些资源的 TaskRunner 日志) 将遵循上述管道日志记录结构。

要查看给定管道运行的日志,请执行以下操作:

  1. 通过调用 query-objects 获取确切的对象 ID 来检索 ObjectId。例如:

    aws datapipeline query-objects --pipeline-id <pipeline-id> --sphere ATTEMPT --region ap-northeast-1

    query-objects 是一个分页的 CLI,如果给定的 pipeline-id 执行次数更多,则可能会返回分页标记。您可以使用该标记完成所有尝试,直到找到预期的对象。例如,返回的 ObjectId 将如下所示:@TableBackupActivity_2023-05-020T18:05:18_Attempt=1

  2. 使用 ObjectId,使用以下方法检索日志位置:

    aws datapipeline describe-objects —pipeline-id <pipeline-id> --object-ids <object-id> --query "pipelineObjects[].fields[?key=='@logLocation'].stringValue"
失败活动的错误消息

要获取错误消息,请先使用 query-objects 获取 ObjectId。

检索失败的 ObjectId 后,使用 describe-objects CLI 获取实际的错误消息。

aws datapipeline describe-objects --region ap-northeast-1 --pipeline-id <pipeline-id> --object-ids <object-id> --query "pipelineObjects[].fields[?key=='errorMessage'].stringValue"
取消或重新运行对象或将对象标记为已完成

使用 set-status CLI 取消正在运行的对象,或者重新运行失败的对象或将正在运行的对象标记为已完成。

首先,使用 query-objects CLI 获取对象 ID。例如:

aws datapipeline query-objects --pipeline-id <pipeline-id> --sphere INSTANCE --region ap-northeast-1

使用 set-status CLI 更改所需对象的状态。例如:

aws datapipeline set-status —pipeline-id <pipeline-id> --region ap-northeast-1 --status TRY_CANCEL --object-ids <object-id>