

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

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

# ShellCommandPrecondition
<a name="dp-object-shellcommandprecondition"></a>

 可做為先決條件執行的 Unix/Linux 殼層命令。

## 範例
<a name="shellcommandprecondition-example"></a>

以下為此物件類型的範例。

```
{
  "id" : "VerifyDataReadiness",
  "type" : "ShellCommandPrecondition",
  "command" : "perl check-data-ready.pl"
}
```

## 語法
<a name="shellcommandprecondition-syntax"></a>


****  

| 必要的群組 (下列其中之一為必要) | Description | 槽類型 | 
| --- | --- | --- | 
| command | 要執行的命令。此值和任何相關聯的參數，都必須在您執行任務執行器的環境中執行。 | String | 
| scriptUri | 要下載並以 shell 命令執行之檔案的 Amazon S3 URI 路徑。只應使用一個 scriptUri 或 command 欄位。scriptUri 無法使用參數，請改用 command。 | String | 

 


****  

| 選用欄位 | Description | 槽類型 | 
| --- | --- | --- | 
| attemptStatus | 遠端活動最新回報的狀態。 | String | 
| attemptTimeout | 遠端工作完成的逾時。如果設定，則系統可能會重試未在設定開始時間內完成的遠端活動。 | Period | 
| failureAndRerunMode | 描述相依性故障或重新執行時的消費者節點行為 | 列舉 | 
| lateAfterTimeout | 物件必須完成的管道啟動後經過的時間。只有在排程類型未設定為 時，才會觸發它ondemand。 | Period | 
| maximumRetries | 故障時嘗試重試的次數上限 | Integer | 
| onFail | 目前物件發生故障時要執行的動作。 | 參考物件，例如 "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | 某個物件尚未排程或仍未完成時，應該觸發的動作。 | 參考物件，例如 "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | 目前物件成功時要執行的動作。 | 參考物件，例如 "onSuccess":\$1"ref":"myActionId"\$1 | 
| parent | 目前物件的父系，其插槽會被繼承。 | 參考物件，例如 "parent":\$1"ref":"myBaseObjectId"\$1 | 
| preconditionTimeout | 自開始起的一段期間，在這段期間之後，如果仍未符合先決條件即會將其標示為失敗 | Period | 
| reportProgressTimeout | 遠端工作連續呼叫 reportProgress 的逾時。如果設定，則不回報指定時段進度的遠端活動，可能會視為已停滯而重試。 | Period | 
| retryDelay | 兩次重試嘗試之間的逾時持續時間。 | Period | 
| scriptArgument | 要傳遞給 shell 指令碼的引數 | String | 
| stderr | 從 命令接收重新導向系統錯誤訊息的 Amazon S3 路徑。如果您使用 runsOn 欄位，這必須是 Amazon S3 路徑，因為執行活動之資源的暫時性性質。不過，如果您指定 workerGroup 欄位，則允許使用本機檔案路徑。 | String | 
| stdout | 從 命令接收重新導向輸出的 Amazon S3 路徑。如果您使用 runsOn 欄位，這必須是 Amazon S3 路徑，因為執行活動之資源的暫時性性質。不過，如果您指定 workerGroup 欄位，則允許使用本機檔案路徑。 | String | 

 


****  

| 執行時間欄位 | Description | 槽類型 | 
| --- | --- | --- | 
| @activeInstances | 目前已排程的作用中執行個體物件清單。 | 參考物件，例如 "activeInstances":\$1"ref":"myRunnableObjectId"\$1 | 
| @actualEndTime | 此物件執行完成的時間。 | DateTime | 
| @actualStartTime | 此物件執行開始的時間。 | DateTime | 
| cancellationReason | 若此物件已取消，會提供 cancellationReason。 | String | 
| @cascadeFailedOn | 物件失敗所在的相依鏈的描述。 | 參考物件，例如 "cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 | 
| emrStepLog | 只在 EMR 活動嘗試時才可使用的 EMR 步驟日誌 | String | 
| errorId | 若此物件失敗，會提供 errorId。 | String | 
| errorMessage | 若此物件失敗，會提供 errorMessage。 | String | 
| errorStackTrace | 如果此物件失敗，則為錯誤堆疊追蹤。 | String | 
| hadoopJobLog | 嘗試 EMR 型活動可用的 Hadoop 任務日誌。 | String | 
| hostname | 選取任務嘗試之用戶端的主機名稱。 | String | 
| 節點 | 即將執行此先決條件的節點 | 參考物件，例如 "node":\$1"ref":"myRunnableObjectId"\$1 | 
| reportProgressTime | 遠端活動最近報告進度的時間。 | DateTime | 
| @scheduledEndTime | 物件的排程結束時間 | DateTime | 
| @scheduledStartTime | 物件的排程開始時間 | DateTime | 
| @status | 此物件的狀態。 | String | 
| @version | 建立物件使用的管道版本。 | String | 
| @waitingOn | 此物件等待之相依性清單的描述。 | 參考物件，例如 "waitingOn":\$1"ref":"myRunnableObjectId"\$1 | 

 


****  

| 系統欄位 | Description | 槽類型 | 
| --- | --- | --- | 
| @error | 描述格式錯誤物件的錯誤 | String | 
| @pipelineId | 此物件所屬管道的 ID | String | 
| @sphere | 物件範圍代表其在生命週期中的位置：Component 物件會引發執行 Attempt 物件的 Instance 物件 | String | 

## 另請參閱
<a name="shellcommandprecondition-seealso"></a>
+ [ShellCommandActivity](dp-object-shellcommandactivity.md)
+ [存在](dp-object-exists.md)