

AWS Data Pipeline は新規顧客には利用できなくなりました。の既存のお客様は、通常どおりサービスを AWS Data Pipeline 引き続き使用できます。[詳細はこちら](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ShellCommandActivity
<a name="dp-object-shellcommandactivity"></a>

 コマンドまたはスクリプトを実行します。`ShellCommandActivity` を使用して、時系列で、または cron 風に、スケジュールしたタスクを実行できます。

`stage` フィールドを true に設定して `S3DataNode` とともに使用する場合、`ShellCommandActivity` ではデータのステージングという概念がサポートされます。つまり、データを Amazon S3 から Amazon EC2 などのステージング用の場所またはローカル環境に移動し、そこでスクリプトと `ShellCommandActivity` を使用してデータの処理を実行して、Amazon S3 にデータを戻すことができます。

この場合、シェルコマンドを入力 `S3DataNode` に接続すると、シェルスクリプトは、`ShellCommandActivity` の入力フィールドを参照する `${INPUT1_STAGING_DIR}`、`${INPUT2_STAGING_DIR}` などのフィールドを使用して直接データを操作できます。

同様に、シェルコマンドの出力も、`${OUTPUT1_STAGING_DIR}`、`${OUTPUT2_STAGING_DIR}` などで参照される出力ディレクトリにステージングして、自動的に Amazon S3 に戻すことができます。

これらの式は、コマンドライン引数としてシェルコマンドに渡して、データ変換ロジックで使用することができます。

`ShellCommandActivity` では、Linux 形式のエラーコードと文字列が返されます。`ShellCommandActivity` の結果がエラーであれば、返される `error` はゼロ以外の値になります。

## 例
<a name="shellcommandactivity-example"></a>

以下は、このオブジェクト型の例です。

```
{
  "id" : "CreateDirectory",
  "type" : "ShellCommandActivity",
  "command" : "mkdir new-directory"
}
```

## 構文
<a name="shellcommandactivity-syntax"></a>


****  

| オブジェクト呼び出しフィールド | 説明 | スロットタイプ | 
| --- | --- | --- | 
| スケジュール |  このオブジェクトは、`schedule` 期間の実行中に呼び出されます。 このオブジェクトの依存関係の実行順序を設定するには、別のオブジェクトへの `schedule` 参照を指定します。 この要件を満たすには、オブジェクトで明示的に `schedule` を設定します。たとえば、`"schedule": {"ref": "DefaultSchedule"}` を指定します。 ほとんどの場合、すべてのオブジェクトがそのスケジュールを継承するように、`schedule` 参照をデフォルトのパイプラインオブジェクトに配置することをお勧めします。パイプラインがスケジュールのツリー (マスタースケジュール内のスケジュール) で構成されている場合は、スケジュール参照がある親オブジェクトを作成します。 負荷を分散するために、 は物理オブジェクトをスケジュールより少し前に AWS Data Pipeline 作成しますが、スケジュールどおりに実行します。 オプションのスケジュール設定の例については、「[https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html)」を参照してください。  | 参照オブジェクト ("schedule":\$1"ref":"myScheduleId"\$1 など) | 

 


****  

| 必須のグループ (次のいずれかが必要です) | 説明 | スロットタイプ | 
| --- | --- | --- | 
| コマンド | 実行するコマンド。\$1 を使用して位置指定パラメータを参照し、scriptArgument を使用してコマンドのパラメータを指定します。この値および関連するパラメーターは、Task Runner を実行している環境で機能する必要があります。 | String | 
| scriptUri | ダウンロードして、シェルコマンドとして実行するファイルの Amazon S3 URI パス。指定できる scriptUri または command フィールドは 1 つだけです。scriptUri はパラメータを使用できません。代わりに command を使用します。 | String | 

 


****  

| 必須のグループ (次のいずれかが必要です) | 説明 | スロットタイプ | 
| --- | --- | --- | 
| runsOn | アクティビティまたはコマンドを実行するコンピューティングリソース (例: Amazon EC2 インスタンス、Amazon EMR クラスター)。 | 参照オブジェクト ("runsOn":\$1"ref":"myResourceId"\$1 など) | 
| workerGroup | ルーティングタスクに使用されます。値 runsOn を指定して、workerGroup がある場合、workerGroup は無視されます。 | String | 

 


****  

| オプションのフィールド | 説明 | スロットタイプ | 
| --- | --- | --- | 
| attemptStatus | リモートアクティビティから最も最近報告されたステータス。 | String | 
| attemptTimeout | リモートの作業完了のタイムアウト。設定された場合、指定された開始時間内に完了しなかったリモートアクティビティを再試行することができます。 | Period | 
| dependsOn | 実行可能な別のオブジェクトで依存関係を指定します。 | 参照オブジェクト ("dependsOn":\$1"ref":"myActivityId"\$1 など) | 
| failureAndRerunMode | 依存関係が失敗または再実行されたときのコンシューマーノードの動作を示します。 | 一覧表 | 
| input | 入力データの場所。 | 参照オブジェクト ("input":\$1"ref":"myDataNodeId"\$1 など) | 
| lateAfterTimeout | オブジェクトが完了しなければならない、パイプライン開始からの経過時間。スケジュールタイプが ondemand に設定されていない場合にのみトリガーされます。 | Period | 
| maxActiveInstances | コンポーネントで同時にアクティブになるインスタンスの最大数。再実行はアクティブなインスタンスの数にはカウントされません。 | 整数 | 
| maximumRetries | 失敗時の最大再試行回数。 | 整数 | 
| onFail | 現在のオブジェクトが失敗したときに実行するアクション。 | 参照オブジェクト (onFail:\$1"ref":"myActionId"\$1 など) | 
| onLateAction | オブジェクトが予定されていないか、完了していない場合にトリガーされるアクション。 | 参照オブジェクト ("onLateAction":\$1"ref":"myActionId"\$1 など) | 
| onSuccess | 現在のオブジェクトが成功したときに実行するアクション。 | 参照オブジェクト ("onSuccess":\$1"ref":"myActionId"\$1 など) | 
| output | 出力データの場所。 | 参照オブジェクト ("output":\$1"ref":"myDataNodeId"\$1 など) | 
| parent | スロットの継承元となる現在のオブジェクトの親。 | 参照オブジェクト ("parent":\$1"ref":"myBaseObjectId"\$1 など) | 
| pipelineLogUri | パイプラインのログをアップロードするための Amazon S3 URI ('s3://BucketName/Key/' など)。 | String | 
| precondition | オプションで前提条件を定義します。すべての前提条件を満たすまで、データノードは "READY" とマークされません。 | 参照オブジェクト ("precondition":\$1"ref":"myPreconditionId"\$1 など) | 
| reportProgressTimeout | リモートアクティビティによる reportProgress への連続した呼び出しのタイムアウト。設定された場合、指定された期間の進捗状況を報告しないリモートアクティビティは停止されたと見なし、再試行できます。 | Period | 
| retryDelay | 2 回の再試行の間のタイムアウト期間。 | Period | 
| scheduleType |  パイプライン定義のオブジェクトを、期間の最初にスケジュールするか、最後にスケジュールするかを指定できます。 値は、`cron`、`ondemand`、および `timeseries` です。 `timeseries` に設定された場合、インスタンスは各間隔の最後にスケジュールされます。 `Cron` に設定された場合、インスタンスは各間隔の最初にスケジュールされます。 `ondemand` に設定された場合、アクティベーションごとに 1 回パイプラインを実行することができます。つまり、パイプラインを再実行するために、クローンしたり再作成したりする必要はありません。`ondemand` スケジュールを使用する場合は、パイプラインのオブジェクトに対する唯一の `scheduleType` として、デフォルトオブジェクトで指定します。`ondemand` パイプラインを使用するには、それ以降の実行ごとに、`ActivatePipeline` オペレーションを呼び出します。  | 一覧表 | 
| scriptArgument | コマンドにより、指定したコマンドに渡す文字列の JSON 形式の配列。たとえば、コマンドが echo \$11 \$12 であれば、scriptArgument を "param1", "param2" のように指定できます。複数の引数およびパラメータがある場合は、次のように scriptArgument を渡すことができます。 "scriptArgument":"arg1","scriptArgument":"param1","scriptArgument":"arg2","scriptArgument":"param2"scriptArgument は command でのみ使用できます。scriptUri で使用するとエラーが発生します。 | String | 
| ステージ | ステージングが有効かどうか決定し、ステージングされたデータ変数（\$1\$1INPUT1\$1STAGING\$1DIR\$1 や  \$1\$1OUTPUT1\$1STAGING\$1DIR\$1 など）にシェルコマンドがアクセスできるようにします。 | ブール値 | 
| stderr | コマンドからリダイレクトされたシステムエラーメッセージを受け取る パス。runsOn フィールドを使用する場合、アクティビティを実行するリソースが一時的であるため、これは Amazon S3 パスにする必要があります。ただし、workerGroup フィールドを指定した場合は、ローカルファイルパスを指定できます。 | String | 
| stdout | コマンドからリダイレクトされた出力を受け取る Amazon S3 パス。runsOn フィールドを使用する場合、アクティビティを実行するリソースが一時的であるため、これは Amazon S3 パスにする必要があります。ただし、workerGroup フィールドを指定した場合は、ローカルファイルパスを指定できます。 | String | 

 


****  

| 実行時フィールド | 説明 | スロットタイプ | 
| --- | --- | --- | 
| @activeInstances | 現在スケジュールされているアクティブなインスタンスオブジェクトのリスト。 | 参照オブジェクト ("activeInstances":\$1"ref":"myRunnableObjectId"\$1 など) | 
| @actualEndTime | このオブジェクトの実行が終了した時刻。 | DateTime | 
| @actualStartTime | このオブジェクトの実行が開始された時刻。 | DateTime | 
| cancellationReason | このオブジェクトがキャンセルされた場合の cancellationReason。 | String | 
| @cascadeFailedOn | オブジェクトの失敗の原因となった依存関係の説明。 | 参照オブジェクト ("cascadeFailedOn":\$1"ref":"myRunnableObjectId"\$1 など) | 
| emrStepLog | Amazon EMR アクティビティの試行でのみ使用可能な Amazon EMR ステップログ | String | 
| errorId | このオブジェクトが失敗した場合は errorId。 | String | 
| errorMessage | このオブジェクトが失敗した場合は errorMessage。 | String | 
| errorStackTrace | このオブジェクトが失敗した場合は、エラースタックトレース。 | String | 
| @finishedTime | このオブジェクトが実行を終了した時刻。 | DateTime | 
| hadoopJobLog | Amazon EMR ベースのアクティビティで試みることができる Hadoop ジョブのログ。 | String | 
| @healthStatus | 終了状態に達した最後のオブジェクトインスタンスの成功または失敗を反映する、オブジェクトのヘルスステータス。 | String | 
| @healthStatusFromInstanceId | 終了状態に達した最後のインスタンスオブジェクトの ID。 | String | 
| @healthStatusUpdatedTime | ヘルス状態が最後に更新された時間。 | DateTime | 
| hostname | タスクの試行を取得したクライアントのホスト名。 | String | 
| @lastDeactivatedTime | このオブジェクトが最後に非アクティブ化された時刻。 | DateTime | 
| @latestCompletedRunTime | 実行が完了した最後の実行の時刻。 | DateTime | 
| @latestRunTime | 実行がスケジュールされた最後の実行の時刻。 | DateTime | 
| @nextRunTime | 次回にスケジュールされた実行の時刻。 | DateTime | 
| reportProgressTime | リモートアクティビティで進捗状況が報告された最新の時刻。 | DateTime | 
| @scheduledEndTime | オブジェクトの予定された終了時刻。 | DateTime | 
| @scheduledStartTime | オブジェクトの予定された開始時刻。 | DateTime | 
| @status | オブジェクトのステータス。 | String | 
| @version | オブジェクトの作成に使用される AWS Data Pipeline バージョン。 | String | 
| @waitingOn | このオブジェクトが待機している依存関係のリストの説明。 | 参照オブジェクト ("waitingOn":\$1"ref":"myRunnableObjectId"\$1 など) | 

 


****  

| システムフィールド | 説明 | スロットタイプ | 
| --- | --- | --- | 
| @error | 形式が正しくないオブジェクトを説明するエラー。 | String | 
| @pipelineId | このオブジェクトが属するパイプラインの ID。 | String | 
| @sphere | ライフサイクル内のオブジェクトの場所です。コンポーネントオブジェクトにより、試行オブジェクトを実行するインスタンスオブジェクトが発生します。 | String | 

## 以下の資料も参照してください。
<a name="shellcommandactivity-seealso"></a>
+ [CopyActivity](dp-object-copyactivity.md)
+ [EmrActivity](dp-object-emractivity.md)