

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

# HealthOmics 実行のタスクライフサイクル
<a name="workflow-run-tasks"></a>

*タスク*は、実行内の 1 つのプロセスです。HealthOmics は、ワークフロー内の各タスクを、タスクに必要なリソースに最適なオミクスコンピューティングインスタンスタイプにマッピングします。ワークフロー定義で必要なリソースを指定します。詳細については、「」を参照してください[HealthOmics タスクのコンピューティングとメモリの要件](memory-and-compute-tasks.md)。

HealthOmics は、タスクが使用する一時実行ストレージを提供します。HealthOmics は、タスク入力ファイルを読み取り専用ファイルとして一時実行ストレージにコピーします。HealthOmics はシンボリックリンクを提供し、タスクが作業ディレクトリから入力ファイルにアクセスできるようにします。タスクは、ワークフロー定義ファイルで宣言したファイルにのみアクセスできます。

## タスクステータス値
<a name="task-status-values"></a>

タスクのステータスをモニタリングすることで、タスクの進行状況を追跡できます。実行を開始すると、HealthOmics は実行の各タスク**Pending**のタスクステータスを に設定します。タスクが開始されてライフサイクルが進むと、HealthOmics はステータス値を更新して現在の進行状況を反映します。

タスクのステータスは、次のいずれかの方法を使用して取得できます。
+  HealthOmics コンソールには、実行の各タスクのステータスが**Run details**ページに表示されます。
+ **GetRunTask** API オペレーションはタスクのステータスを返します。
+ EventBridge イベントを使用してタスクステータスをモニタリングできます。詳細については、「[での EventBridge の使用 AWS HealthOmics](eventbridge.md)」を参照してください。

**GetRunTask** API オペレーションを使用して、タスクの現在のステータスを取得できます。HealthOmics コンソールには、実行の各タスクのステータスが**Run details**ページに表示されます。

HealthOmics は、次のタスクステータス値をサポートしています。

**保留中**  
タスクはキューにあり、開始を待っています。タスクは、開始するまで短期間保留中のままです。  
+ アカウントが同時タスクの最大数に達した後も、タスクは保留中のままになります。
+ 実行がリソースの最大値のいずれかに達した実行グループの一部である場合、タスクは保留中のままになります。
+ 特定のキューに入れられた実行とそのタスクが他のキューに入れられた実行の前に開始されるように、実行の優先順位を調整できます。実行優先度の詳細については、「」を参照してください。 [実行優先度](creating-run-groups.md#run-priority)

**スタート**  
HealthOmics はタスクを作成し、ワークフロータスクノードなど、タスクに必要なリソースをプロビジョニングしています。

**実行中**  
HealthOmics がタスクを処理している間、タスクのステータスは実行中です。

**停止中**  
タスクの処理と出力データのエクスポートが完了すると、タスクは Stopping に移行します。  
+ HealthOmics はワークフロータスクノードのプロビジョニングを解除します。

**完了**  
HealthOmics はタスクの処理を完了し、出力データを実行ストレージファイルシステムに転送しました。

**失敗**  
HealthOmics でタスクの処理中にエラーが発生しましたが、完了していません。  
+ タスクは停止ステータス (HealthOmics はリソースのプロビジョニングを解除) に移行し、失敗ステータスに移行します。
+ エラーがサービスエラー (5XX HTTP ステータスコード) であり、ワークフローがこのタスクの再試行をサポートしている場合、HealthOmics はタスクの再処理を試みます。HealthOmics は、再試行に新しいタスク ID を割り当てます。

**Cancelled (キャンセル)**  
HealthOmics は、ユーザーが開始した実行のキャンセルリクエスト後にタスクを停止します。  
+ タスクは停止ステータス (HealthOmics はリソースのプロビジョニングを解除) に移行し、次にキャンセルステータスに移行します。

## ワークフロータスクのトラブルシューティング
<a name="debugging-tasks"></a>

以下は、タスクのトラブルシューティングに関するベストプラクティスと考慮事項です。
+ タスクログ`STDERR`は、 `STDOUT`に依存し、タスクによって生成されます。タスクで使用されるアプリケーションがこれらのいずれも生成しない場合、タスクログは作成されません。デバッグを支援するには、 `verbose` モードでアプリケーションを使用します。
+ タスクで実行されているコマンドと補間された値を表示するには、`set -x`Bash コマンドを使用します。これにより、タスクが正しい入力を使用しているかどうかを判断し、エラーによってタスクが意図したとおりに実行されない原因を特定できます。
+ `echo` コマンドを使用して、変数の値を ` STDOUT`または に出力します`STDERR`。これにより、期待どおりに設定されていることを確認できます。
+ などのコマンドを使用して`ls -l`` <name_of_input_file>`、入力が存在し、予想されるサイズであることを確認します。そうでない場合、バグによる空の出力を生成する以前のタスクの問題が明らかになる可能性があります。
+ タスクスクリプト`df -Ph . | awk 'NR==2 {print $4}'`の コマンドを使用して、タスクで現在使用可能な領域を決定し、追加のストレージ割り当てでワークフローを実行する必要がある状況を特定するのに役立ちます。

上記のコマンドのいずれかをタスクスクリプトに含めることは、タスクコンテナにこれらのコマンドも含まれ、コンテナ環境`path`の にあることを前提としています。