

AWS Data Pipeline 不再提供給新客戶。的現有客戶 AWS Data Pipeline 可以繼續正常使用服務。[進一步了解](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 檢視管道日誌
<a name="dp-viewing-logs"></a>

在管道建立時，透過在主控台中指定 Amazon S3 位置，或在 SDK/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`，`stderr` 和與這些活動相關聯 `stdout` 的日誌都會存放在每一次嘗試的目錄中。

針對資源 (例如 `EmrCluster`)，若有設定 `emrLogUri`，則該值會具有較高的優先順序。否則，資源 (包含那些資源的 TaskRunner 日誌) 會遵循上述的管道記錄日誌結構。

若要檢視指定管道執行的日誌：

1. `ObjectId` 呼叫 以取得確切的物件 ID `query-objects` 來擷取 。例如：

   ```
   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`。

1. 使用 ObjectId，使用 擷取日誌位置：

   ```
   aws datapipeline describe-objects —pipeline-id <pipeline-id> --object-ids <object-id> --query "pipelineObjects[].fields[?key=='@logLocation'].stringValue"
   ```

**失敗活動的錯誤訊息**  
若要取得錯誤訊息，請先使用 取得 ObjectId`query-objects`。

擷取失敗的 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 取消執行中的物件，或重新執行失敗的物件，或將執行中的物件標記為已完成。

首先，使用 CLI `query-objects` 取得物件 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>
```