AWS Data Pipeline新規のお客様への の提供は終了しました。AWS Data Pipeline の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細
ShellCommandActivity
コマンドまたはスクリプトを実行します。ShellCommandActivity を使用して、時系列で、または cron 風に、スケジュールしたタスクを実行できます。
stage フィールドを true に設定して S3DataNode とともに使用する場合、ShellCommandActivity ではデータのステージングという概念がサポートされます。つまり、データを Amazon S3 から Amazon EC2 などのステージング用の場所またはローカル環境に移動し、そこでスクリプトと ShellCommandActivity を使用してデータの処理を実行して、Amazon S3 にデータを戻すことができます。
この場合、シェルコマンドを入力 S3DataNode に接続すると、シェルスクリプトは、${INPUT1_STAGING_DIR} の入力フィールドを参照する ${INPUT2_STAGING_DIR}、ShellCommandActivity などのフィールドを使用して直接データを操作できます。
同様に、シェルコマンドの出力も、${OUTPUT1_STAGING_DIR}、${OUTPUT2_STAGING_DIR} などで参照される出力ディレクトリにステージングして、自動的に Amazon S3 に戻すことができます。
これらの式は、コマンドライン引数としてシェルコマンドに渡して、データ変換ロジックで使用することができます。
ShellCommandActivity では、Linux 形式のエラーコードと文字列が返されます。ShellCommandActivity の結果がエラーであれば、返される error はゼロ以外の値になります。
例
以下は、このオブジェクト型の例です。
{ "id" : "CreateDirectory", "type" : "ShellCommandActivity", "command" : "mkdir new-directory" }
構文
| オブジェクト呼び出しフィールド | 説明 | スロットタイプ |
|---|---|---|
| schedule |
このオブジェクトは、 このオブジェクトの依存関係の実行順序を設定するには、別のオブジェクトへの この要件を満たすには、オブジェクトで明示的に ほとんどの場合、すべてのオブジェクトがそのスケジュールを継承するように、 負荷を分散するため、AWS Data Pipeline によりスケジュールよりも少し前に物理オブジェクトが作成されますが、スケジュールどおりに実行されます。 オプションのスケジュール設定の例については、「」を参照してくださいhttps://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html |
参照オブジェクト ("schedule":{"ref":"myScheduleId"} など) |
| 必須のグループ (次のいずれかが必要です) | 説明 | スロットタイプ |
|---|---|---|
| コマンド | 実行するコマンド。$ を使用して位置指定パラメータを参照し、scriptArgument を使用してコマンドのパラメータを指定します。この値および関連するパラメーターは、Task Runner を実行している環境で機能する必要があります。 |
文字列 |
| scriptUri | ダウンロードして、シェルコマンドとして実行するファイルの Amazon S3 URI パス。指定できる scriptUri または command フィールドは 1 つだけです。scriptUri はパラメータを使用できません。代わりに command を使用します。 |
文字列 |
| 必須のグループ (次のいずれかが必要です) | 説明 | スロットタイプ |
|---|---|---|
| runsOn | アクティビティまたはコマンドを実行するコンピューティングリソース (例: Amazon EC2 インスタンス、Amazon EMR クラスター)。 | 参照オブジェクト ("runsOn":{"ref":"myResourceId"} など) |
| workerGroup | ルーティングタスクに使用されます。値 runsOn を指定して、workerGroup がある場合、workerGroup は無視されます。 |
文字列 |
| オプションのフィールド | 説明 | スロットタイプ |
|---|---|---|
| attemptStatus | リモートアクティビティから最も最近報告されたステータス。 | 文字列 |
| attemptTimeout | リモートの作業完了のタイムアウト。設定された場合、指定された開始時間内に完了しなかったリモートアクティビティを再試行することができます。 | 期間 |
| dependsOn | 実行可能な別のオブジェクトで依存関係を指定します。 | 参照オブジェクト ("dependsOn":{"ref":"myActivityId"} など) |
| failureAndRerunMode | 依存関係が失敗または再実行されたときのコンシューマーノードの動作を示します。 | 一覧表 |
| input | 入力データの場所。 | 参照オブジェクト ("input":{"ref":"myDataNodeId"} など) |
| lateAfterTimeout | オブジェクトが完了しなければならない、パイプライン開始からの経過時間。スケジュールタイプが ondemand に設定されていない場合にのみトリガーされます。 |
期間 |
| maxActiveInstances | コンポーネントで同時にアクティブになるインスタンスの最大数。再実行はアクティブなインスタンスの数にはカウントされません。 | 整数 |
| maximumRetries | 失敗時の最大再試行回数。 | 整数 |
| onFail | 現在のオブジェクトが失敗したときに実行するアクション。 | 参照オブジェクト (onFail:{"ref":"myActionId"} など) |
| onLateAction | オブジェクトが予定されていないか、完了していない場合にトリガーされるアクション。 | 参照オブジェクト ("onLateAction":{"ref":"myActionId"} など) |
| onSuccess | 現在のオブジェクトが成功したときに実行するアクション。 | 参照オブジェクト ("onSuccess":{"ref":"myActionId"} など) |
| output | 出力データの場所。 | 参照オブジェクト ("output":{"ref":"myDataNodeId"} など) |
| parent | スロットの継承元となる現在のオブジェクトの親。 | 参照オブジェクト ("parent":{"ref":"myBaseObjectId"} など) |
| pipelineLogUri | パイプラインのログをアップロードするための Amazon S3 URI ('s3://BucketName/Key/' など)。 |
文字列 |
| precondition | オプションで前提条件を定義します。すべての前提条件を満たすまで、データノードは "READY" とマークされません。 | 参照オブジェクト ("precondition":{"ref":"myPreconditionId"} など) |
| reportProgressTimeout | リモートアクティビティによる reportProgress への連続した呼び出しのタイムアウト。設定された場合、指定された期間の進捗状況を報告しないリモートアクティビティは停止されたと見なし、再試行できます。 |
期間 |
| retryDelay | 2 回の再試行の間のタイムアウト期間。 | 期間 |
| scheduleType |
パイプライン定義のオブジェクトを、期間の最初にスケジュールするか、最後にスケジュールするかを指定できます。 値は、
|
一覧表 |
| scriptArgument | コマンドにより、指定したコマンドに渡す文字列の JSON 形式の配列。たとえば、コマンドが echo $1 $2 であれば、scriptArgument を "param1", "param2" のように指定できます。複数の引数およびパラメータがある場合は、次のように scriptArgument を渡すことができます。
"scriptArgument":"arg1","scriptArgument":"param1","scriptArgument":"arg2","scriptArgument":"param2"scriptArgument は command でのみ使用できます。scriptUri で使用するとエラーが発生します。 |
文字列 |
| ステージ | ステージングが有効かどうか決定し、ステージングされたデータ変数(${INPUT1_STAGING_DIR} や
${OUTPUT1_STAGING_DIR} など)にシェルコマンドがアクセスできるようにします。 |
ブール値 |
| stderr | コマンドからリダイレクトされたシステムエラーメッセージを受け取るパス。runsOn フィールドを使用する場合、アクティビティを実行するリソースが一時的であるため、これは Amazon S3 パスにする必要があります。ただし、workerGroup フィールドを指定した場合は、ローカルファイルパスを指定できます。 |
文字列 |
| stdout | コマンドからリダイレクトされた出力を受け取る Amazon S3 パス。runsOn フィールドを使用する場合、アクティビティを実行するリソースが一時的であるため、これは Amazon S3 パスにする必要があります。ただし、workerGroup フィールドを指定した場合は、ローカルファイルパスを指定できます。 |
文字列 |
| 実行時フィールド | 説明 | スロットタイプ |
|---|---|---|
| @activeInstances | 現在スケジュールされているアクティブなインスタンスオブジェクトのリスト。 | 参照オブジェクト ("activeInstances":{"ref":"myRunnableObjectId"} など) |
| @actualEndTime | このオブジェクトの実行が終了した時刻。 | DateTime |
| @actualStartTime | このオブジェクトの実行が開始された時刻。 | DateTime |
| cancellationReason | このオブジェクトがキャンセルされた場合の cancellationReason。 |
文字列 |
| @cascadeFailedOn | オブジェクトの失敗の原因となった依存関係の説明。 | 参照オブジェクト ("cascadeFailedOn":{"ref":"myRunnableObjectId"} など) |
| emrStepLog | Amazon EMR アクティビティの試行でのみ使用可能な Amazon EMR ステップログ | 文字列 |
| errorId | このオブジェクトが失敗した場合は errorId。 |
文字列 |
| errorMessage | このオブジェクトが失敗した場合は errorMessage。 |
文字列 |
| errorStackTrace | このオブジェクトが失敗した場合は、エラースタックトレース。 | 文字列 |
| @finishedTime | このオブジェクトが実行を終了した時刻。 | DateTime |
| hadoopJobLog | Amazon EMR ベースのアクティビティで試みることができる Hadoop ジョブのログ。 | 文字列 |
| @healthStatus | 終了状態に達した最後のオブジェクトインスタンスの成功または失敗を反映する、オブジェクトのヘルスステータス。 | 文字列 |
| @healthStatusFromInstanceId | 終了状態に達した最後のインスタンスオブジェクトの ID。 | 文字列 |
| @healthStatusUpdatedTime | ヘルス状態が最後に更新された時間。 | DateTime |
| hostname | タスクの試行を取得したクライアントのホスト名。 | 文字列 |
| @lastDeactivatedTime | このオブジェクトが最後に非アクティブ化された時刻。 | DateTime |
| @latestCompletedRunTime | 実行が完了した最後の実行の時刻。 | DateTime |
| @latestRunTime | 実行がスケジュールされた最後の実行の時刻。 | DateTime |
| @nextRunTime | 次回にスケジュールされた実行の時刻。 | DateTime |
| reportProgressTime | リモートアクティビティで進捗状況が報告された最新の時刻。 | DateTime |
| @scheduledEndTime | オブジェクトの予定された終了時刻。 | DateTime |
| @scheduledStartTime | オブジェクトの予定された開始時刻。 | DateTime |
| @status | オブジェクトのステータス。 | 文字列 |
| @version | オブジェクトの作成に使用された AWS Data Pipeline のバージョン。 | 文字列 |
| @waitingOn | このオブジェクトが待機している依存関係のリストの説明。 | 参照オブジェクト ("waitingOn":{"ref":"myRunnableObjectId"} など) |
| システムフィールド | 説明 | スロットタイプ |
|---|---|---|
| @error | 形式が正しくないオブジェクトを説明するエラー。 | 文字列 |
| @pipelineId | このオブジェクトが属するパイプラインの ID。 | 文字列 |
| @sphere | ライフサイクル内のオブジェクトの場所です。コンポーネントオブジェクトにより、試行オブジェクトを実行するインスタンスオブジェクトが発生します。 | 文字列 |