翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
HealthOmics でのバッチ実行
AWS HealthOmics バッチ実行では、1 つの API リクエストで複数の実行を送信できます。バッチ内の各実行は共通の基本設定を共有しますが、異なる入力と実行固有のパラメータを持つことができます。バッチ実行は、送信オーバーヘッドを削減し、大規模なワークフロー処理のライフサイクル管理を簡素化します。
バッチ実行では、次のことができます。
最大 100,000 回の実行を 1 回のStartRunBatch呼び出しで送信します。共有設定は 1 回定義され、すべての実行に適用されます。
名前、出力 URI、パラメータ、優先度、タグなど、個々のサンプルの実行ごとのパラメータオーバーライドを適用します。
および を使用して、全体的なバッチステータスと個々の実行送信の進行状況を追跡GetBatchしますListRunsInBatch。
を使用してバッチ内のすべての実行をキャンセルしますCancelRunBatch。
を使用してバッチ内のすべての実行を削除しますDeleteRunBatch。
を使用してバッチメタデータを削除しますDeleteBatch。
トピック
バッチ実行の概念
バッチ — 共通の設定を共有するワークフロー実行のコレクション。独自の Amazon リソースネーム (ARN) とライフサイクルステータスを持つ単一のリソースとして管理されます。
デフォルトの実行設定 (
defaultRunSetting) — ワークフロー ID、IAM ロール、出力 URI、一般的なパラメータなど、バッチ内のすべての実行で共有されるワークフローパラメータ。実行固有の設定 (
inlineSettingsまたはs3UriSettings) — デフォルトの実行設定で上書きまたはマージする実行ごとの設定。各エントリには一意の を含める必要がありますrunSettingId。実行設定 ID (
runSettingId) — バッチ内の各実行設定に必要な、お客様が用意した一意の識別子。送信後、 を使用して各 ListRunsInBatchを HealthOmics が生成したrunSettingIdにマッピングしrunId、どの実行がどの入力設定から作成されたかをトレースできます。バッチステータス — バッチオペレーションの全体的な状態。使用できる値:
CREATING— バッチを作成中です。PENDING— バッチが作成されました。実行設定は非同期的に検証されています。SUBMITTING— 検証が完了しました。個々の実行が送信されています。INPROGRESS— すべての実行送信が試行され、実行が実行中です。STOPPING— キャンセルリクエストを受信しました。実行は停止中です。CANCELLED— バッチはキャンセルされました。PROCESSED— すべての実行が終了状態 (完了、失敗、またはキャンセル) に達しました。FAILED— 実行を作成する前にバッチ自体が失敗しました。詳細については、「バッチレベルの障害」を参照してください。RUNS_DELETING— バッチ内の実行は削除中です。RUNS_DELETED— バッチ内のすべての実行が削除されました。
送信ステータス — バッチ内の個々の実行の送信結果。使用できる値:
SUCCESS— 実行は正常に送信されました。FAILED— 送信の実行に失敗しました (検証エラーなど)。CANCEL_SUCCESS— 実行は正常にキャンセルされました。CANCEL_FAILED— 実行のキャンセルに失敗しました。DELETE_SUCCESS— 実行は正常に削除されました。DELETE_FAILED— 実行の削除に失敗しました。
前提条件
バッチ実行を開始する前に、以下を確認してください。
アクティブな HealthOmics プライベートワークフロー。バッチ実行は、Ready2Run ワークフローではサポートされていません。
HealthOmics ワークフローを実行し、Amazon S3 バケットにアクセスするアクセス許可を持つ IAM サービスロール。詳細については、「のサービスロール AWS HealthOmics」を参照してください。
入力データと出力結果の Amazon S3 の場所。
各サンプルまたは実験設定の実行固有のパラメータ。
バッチオペレーションの IAM アクセス許可
IAM ID には、バッチオペレーションと基盤となる個々の実行オペレーションの両方に対するアクセス許可が必要です。次のポリシー例では、すべてのバッチオペレーションのアクセス許可を付与します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBatchOperations", "Effect": "Allow", "Action": [ "omics:StartRunBatch", "omics:GetBatch", "omics:ListBatch", "omics:ListRunsInBatch", "omics:CancelRunBatch", "omics:DeleteRunBatch", "omics:DeleteBatch" ], "Resource": "arn:aws:omics:*:123456789012:runBatch/*" }, { "Sid": "AllowRunCreation", "Effect": "Allow", "Action": "omics:StartRun", "Resource": [ "arn:aws:omics:*:123456789012:run/*", "arn:aws:omics:*:123456789012:workflow/*", "arn:aws:omics:*:123456789012:runGroup/*" ] }, { "Sid": "AllowListOperations", "Effect": "Allow", "Action": [ "omics:ListBatch", "omics:ListRunsInBatch" ], "Resource": "*" }, { "Sid": "AllowPassRole", "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/OmicsRole", "Condition": { "StringEquals": { "iam:PassedToService": "omics.amazonaws.com" } } } ] }
注記
StartRunBatch には、omics:StartRunBatchバッチリソースと実行、ワークフロー、実行グループリソースomics:StartRunの 2 つの認可が必要です。バッチを成功させるには、両方のアクセス許可を付与する必要があります。
渡される IAM サービスロール roleArn (HealthOmics が実行を実行するために使用されます) には、個々のStartRun呼び出しと同じアクセス許可が必要です。詳細については、「のサービスロール AWS HealthOmics」を参照してください。
タグ付けとタグベースのアクセスコントロール
バッチ実行は、次の 2 つのレベルでタグをサポートします。
バッチタグ (StartRunBatchリクエストのタグ) — バッチリソースに適用されます。タグベースのアクセスコントロール (TBAC) は、バッチタグに対して完全に適用されます。
実行タグ (
runTagsdefaultRunSettingおよび実行ごとのrunTags) — 個々の実行リソースに適用されます。これらのタグは、パラメータと同じ優先順位ルールを使用してマージされます。
タグベースのアクセスコントロールポリシーを使用する場合は、IAM ポリシーomics:TagResourceに適切な aws:RequestTagおよび aws:TagKeys条件が含まれていることを確認してください。
例: バッチ作成を非本番環境に制限する
次のポリシーでは、ユーザーはバッチを作成して実行できますが、 を使用したリソースのタグ付けは拒否されますenvironment=production。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowBatchAndRunCreation", "Effect": "Allow", "Action": [ "omics:StartRunBatch", "omics:StartRun" ], "Resource": "*" }, { "Sid": "AllowTaggingNonProd", "Effect": "Allow", "Action": "omics:TagResource", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/environment": ["dev", "test"] } } }, { "Sid": "DenyProductionTags", "Effect": "Deny", "Action": "omics:TagResource", "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/environment": "production" } } } ] }
このポリシーでは、次のようになります。
tags: {"environment": "dev"}バッチで → 許可tags: {"environment": "production"}バッチで → 拒否 (403)runTags: {"environment": "production"}indefaultRunSetting→ 非同期作成中の個々の実行に対して拒否
開始方法: 最初のバッチを送信する
次の例では、2 つの実行の小さなバッチの送信、進行状況の確認、結果の確認について説明します。
ステップ 1: バッチを送信する
aws omics start-run-batch \ --batch-name "my-first-batch" \ --default-run-setting '{ "workflowId": "1234567", "roleArn": "arn:aws:iam::123456789012:role/OmicsRole", "outputUri": "s3://my-bucket/output/", "storageType": "DYNAMIC", "parameters": {"referenceUri": "s3://my-bucket/reference.fasta"} }' \ --batch-run-settings '{ "inlineSettings": [ { "runSettingId": "sample-A", "parameters": {"inputUri": "s3://my-bucket/sampleA.fastq"} }, { "runSettingId": "sample-B", "parameters": {"inputUri": "s3://my-bucket/sampleB.fastq"} } ] }'
レスポンスは、後続のすべてのオペレーションに使用するバッチ ID を返します。
{ "id": "7123456", "arn": "arn:aws:omics:us-west-2:123456789012:runBatch/7123456", "status": "CREATING" }
ステップ 2: バッチの進行状況を確認する
aws omics get-batch --batch-id7123456
status フィールドの進行状況を → CREATING → PENDING → SUBMITTING → INPROGRESS → から監視しますPROCESSED。submissionSummary には、正常に送信された実行の数と実行の進行状況runSummaryが表示されます。
ステップ 3: 個々の実行を確認する
aws omics list-runs-in-batch --batch-id7123456
各エントリは、 runSettingId ( などsample-A) を HealthOmics が生成した にマッピングするためrunId、結果を入力サンプルにトレースできます。
ステップ 4: 失敗した送信を確認する
aws omics list-runs-in-batch --batch-id7123456--submission-status FAILED
送信に失敗した実行がある場合、問題の診断に役立つ submissionFailureMessage submissionFailureReasonと がレスポンスに含まれます。
バッチ実行の開始
を使用してStartRunBatch、1 つのリクエストで複数の実行を送信します。リクエストには以下が含まれます。
defaultRunSetting— バッチ内のすべての実行の共有設定。これには、workflowId、roleArn、、outputUri、parametersなどのフィールドが含まれますengineSettings。Nextflow ワークフローでは、engineSettingsを使用して、バッチ内のすべての実行に適用されるプロファイルを指定します。詳細については、「エンジン設定の指定」を参照してください。batchRunSettings— 次のいずれかとして提供される個々の実行設定。inlineSettings— リクエスト本文に直接提供される最大 100 個の実行固有の設定の配列。各インライン設定には、個々の実行のデフォルトプロファイルを上書きengineSettingsする を含めることができます。s3UriSettings— 実行設定を含む JSON ファイルを指す Amazon S3 URI。100 回を超える実行のバッチに必要で、最大 100,000 回の実行をサポートします。
次のフィールドを指定することもできます。
batchName— バッチのオプションの人間が読み取れる名前。requestId— 重複するバッチ送信を防ぐためのべき等性トークン。tags— バッチリソース自体に関連付けるタグ。
インライン実行設定を使用して小さなバッチを送信する
を使用して、実行固有の設定の配列をリクエスト本文に直接指定しますinlineSettings。各エントリには一意の runSettingId (必須) を含める必要があります。runSettingId は結果を相関させるためのキーです。 を呼び出すとListRunsInBatch、各エントリは を HealthOmics が生成した runIdと runSettingIdにマッピングしますrunArn。
インライン設定では、最大 100 個のエントリを含めることができます。
{ "batchName": "genomics-cohort-analysis", "requestId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890", "tags": { "project": "genomics-study", "environment": "production" }, "defaultRunSetting": { "workflowId": "1234567", "roleArn": "arn:aws:iam::123456789012:role/OmicsRole", "outputUri": "s3://my-bucket/output/", "parameters": { "referenceUri": "s3://my-bucket/reference/genome.fasta" }, "runTags": { "analysis-type": "germline" } }, "batchRunSettings": { "inlineSettings": [ { "runSettingId": "sample-001", "name": "Sample-001-Analysis", "parameters": { "inputUri": "s3://my-bucket/input/sample-001.fastq", "sampleName": "sample-001" }, "runTags": { "patient-id": "patient001" } }, { "runSettingId": "sample-002", "name": "Sample-002-Analysis", "outputUri": "s3://my-bucket/output/special/", "parameters": { "inputUri": "s3://my-bucket/input/sample-002.fastq", "sampleName": "sample-002" }, "runTags": { "patient-id": "patient002" } } ] } }
CLI
aws omics start-run-batch \ --batch-name "genomics-cohort-analysis" \ --request-id "a1b2c3d4-e5f6-7890-abcd-ef1234567890" \ --default-run-setting '{ "workflowId": "1234567", "roleArn": "arn:aws:iam::123456789012:role/OmicsRole", "outputUri": "s3://my-bucket/output/", "storageType": "DYNAMIC", "parameters": {"referenceUri": "s3://my-bucket/reference.fasta"} }' \ --batch-run-settings '{ "inlineSettings": [ { "runSettingId": "sample-001", "name": "Run-001", "parameters": {"inputUri": "s3://my-bucket/input1.fastq"} }, { "runSettingId": "sample-002", "name": "Run-002", "parameters": {"inputUri": "s3://my-bucket/input2.fastq"} } ] }'
S3 で実行設定を使用して大きなバッチを送信する
実行数が 100 を超えるバッチの場合、実行設定を Amazon S3 の JSON ファイルに保存し、 を使用して URI を指定しますs3UriSettings。JSON ファイルには、一意の を持つ実行固有の設定オブジェクトの配列が含まれている必要がありますrunSettingId。ファイルには、最大 100,000 個のエントリを含めることができます。
S3 ファイル形式は inlineSettings配列と同じです。
[ { "runSettingId": "sample-001", "name": "Sample-001-Analysis", "parameters": { "inputUri": "s3://my-bucket/input/sample-001.fastq", "sampleName": "sample-001" } }, { "runSettingId": "sample-002", "name": "Sample-002-Analysis", "parameters": { "inputUri": "s3://my-bucket/input/sample-002.fastq", "sampleName": "sample-002" } } ]
API リクエスト
{ "defaultRunSetting": { "workflowId": "1234567", "roleArn": "arn:aws:iam::123456789012:role/OmicsRole", "outputUri": "s3://my-bucket/output/", "parameters": { "referenceUri": "s3://my-bucket/reference/genome.fasta" } }, "batchRunSettings": { "s3UriSettings": "s3://my-bucket/configs/run-configs.json" } }
CLI
aws omics start-run-batch \ --default-run-setting '{ "workflowId": "1234567", "roleArn": "arn:aws:iam::123456789012:role/OmicsRole", "outputUri": "s3://my-bucket/output/", "parameters": {"referenceUri": "s3://my-bucket/reference.fasta"} }' \ --batch-run-settings '{"s3UriSettings": "s3://my-bucket/configs/run-configs.json"}'
重要
で指定された IAM サービスロールには、 で指定された Amazon S3 オブジェクトへの読み取りアクセス権roleArnが必要ですs3UriSettings。HealthOmics は、同期 API コール中に Amazon S3 ファイルへのアクセスを検証し、ファイルの ETag を記録します。送信後にファイルが変更されると、バッチは非同期処理中に失敗します。
[応答]
リクエストが成功すると、バッチ ID と初期ステータスが返されます。
{ "id": "7123456", "arn": "arn:aws:omics:us-west-2:123456789012:runBatch/7123456", "status": "CREATING", "uuid": "96c57683-74bf-9d6d-ae7e-f09b097db14a", "tags": { "project": "genomics-study", "environment": "production" } }
同期検証が失敗した場合 (無効なワークフロー ID やアクセスできない Amazon S3 URI など)、API は実行が送信される前にエラーを返します。
パラメータリファレンス
次の表は、実行ごとに設定できるStartRunフィールドと、バッチレベルでのみ適用されるフィールドを示しています。フィールドの詳細については、 StartRun API リファレンスを参照してください。
| フィールド | バッチレベル (defaultRunSetting) |
実行ごとの設定可能 (inlineSettings) |
|---|---|---|
workflowId | はい | いいえ |
workflowType | はい | いいえ |
workflowVersionName | はい | いいえ |
workflowOwnerId | はい | いいえ |
roleArn | はい | いいえ |
storageCapacity | はい | いいえ |
storageType | はい | いいえ |
runGroupId | はい | いいえ |
logLevel | はい | いいえ |
cacheBehavior | はい | いいえ |
cacheId | はい | いいえ |
retentionMode | はい | いいえ |
networkingMode | はい | いいえ |
configurationName | はい | いいえ |
name | はい | はい |
outputUri | はい | はい |
parameters | はい | はい (マージ) |
priority | はい | はい |
runTags | はい | はい (マージ) |
outputBucketOwnerId | はい | はい |
注記
runId (個々の再実行の場合) フィールドは、 への入力としてサポートされていませんStartRunBatch。各バッチ送信は常に新しい実行を作成し、各実行は を受け取りますrunId。個々の実行を再試行HealthOmics で実行を再実行するするには、「」を参照してください。
パラメータのマージ
のパラメータdefaultRunSettingは、 inlineSettingsまたは S3 URI を介して提供される実行固有のパラメータとマージされます。キーが重複する場合は、実行固有の値が優先されます。
例:
| ソース | パラメータ |
|---|---|
defaultRunSetting |
{"referenceUri": "s3://bucket/ref.fasta", "version": "v1"} |
inlineSettings エントリ |
{"inputUri": "s3://bucket/sample.fastq", "version": "v2"} |
| マージされた結果 | {"referenceUri": "s3://bucket/ref.fasta", "inputUri": "s3://bucket/sample.fastq",
"version": "v2"} |
同じマージ動作が に適用されますrunTags。実行ごとの設定で指定されたタグは、 から同じキーを持つタグを上書きしdefaultRunSetting.runTags、新しいキーが追加されます。
タグマージの例:
| ソース | タグ |
|---|---|
defaultRunSetting.runTags |
{"project": "cancer-research", "pipeline-version": "v2.1"} |
inlineSettings[].runTags |
{"patient-id": "patient001", "pipeline-version": "v3.0"} |
| マージされた結果 (実行に適用) | {"project": "cancer-research", "patient-id": "patient001", "pipeline-version":
"v3.0"} |
注記
バッチレベルのタグ (StartRunBatchリクエスト時) は、バッチリソース自体にのみ適用されます。これらは個々の実行に継承されません。実行レベルのタグは、 defaultRunSetting.runTags および実行ごとに制御されますrunTags。
段階的な送信
StartRunBatch は共通フィールドを同期的に検証し、バッチ ID とステータス ですぐに を返しますCREATING。バッチの実行は、スループットクォータに従って制御されたレートで段階的かつ非同期的に送信されます。
HealthOmics クォータの完全なリストについては、「」を参照してくださいHealthOmics サービスクォータ。
バッチは、通常の処理中に次の状態に移行します。
CREATING— バッチを作成中です。PENDING— バッチ作成、検証中の実行設定。SUBMITTING— 検証が完了し、個々の実行が送信されています。INPROGRESS— すべての実行送信が試行され、実行が実行中です。PROCESSED— すべての実行が終了状態になりました。
重要
バッチ実行送信は、直接 StartRun API コールと同じStartRunスループットクォータを共有します。大きなバッチの処理中に StartRunを直接呼び出すと、バッチ送信と直接呼び出しの両方が同じ容量で競合します。これにより、バッチ実行が ThrottlingException (レートを超過して) 失敗したり、直接StartRun呼び出しがスロットリングされたりする可能性があります。CancelRun および にも同じことが当てはまりますDeleteRun。これらのスループットクォータは、DeleteRunBatchそれぞれ CancelRunBatchおよび と共有されます。
バッチの進行状況のモニタリング
バッチステータスの取得
を使用してGetBatch、バッチの全体的なステータスと送信の進行状況を取得します。
aws omics get-batch --batch-id7123456
レスポンスは以下のとおりです。
status— 全体的なバッチ状態。submissionSummary— 開始、キャンセル、削除オペレーションで成功した送信と失敗した送信の数。runSummary— 各実行状態の実行の数。指定できる値:PENDING、STARTING、RUNNING、STOPPING、COMPLETED、DELETEDCANCELLED、、またはFAILEDライフサイクルイベントのタイムスタンプ —
creationTime、submittedTime、processedTime、failedTime。
レスポンスの例:
{ "id": "7123456", "arn": "arn:aws:omics:us-west-2:123456789012:runBatch/7123456", "uuid": "96c57683-74bf-9d6d-ae7e-f09b097db14a", "name": "genomics-cohort-analysis", "status": "INPROGRESS", "totalRuns": 96, "defaultRunSetting": { "workflowId": "1234567", "roleArn": "arn:aws:iam::123456789012:role/OmicsRole", "outputUri": "s3://my-bucket/output/" }, "submissionSummary": { "successfulStartSubmissionCount": 94, "failedStartSubmissionCount": 2, "pendingStartSubmissionCount": 0 }, "runSummary": { "pendingRunCount": 10, "startingRunCount": 5, "runningRunCount": 50, "stoppingRunCount": 0, "completedRunCount": 29, "failedRunCount": 0, "cancelledRunCount": 0, "deletedRunCount": 0 }, "creationTime": "2025-03-15T10:00:00Z", "submittedTime": "2025-03-15T10:05:00Z", "tags": { "project": "genomics-study" } }
注記
実行実行の概要は結果整合性があり、実際の実行状態より遅れる可能性があります。バッチがPROCESSEDステータスに達すると、最終カウントが調整されます。
バッチで実行を一覧表示する
を使用してListRunsInBatch、バッチ内の個々の実行の詳細情報を取得します。結果はページ分割されます。
aws omics list-runs-in-batch --batch-id7123456
次のいずれかのクエリパラメータを使用して結果をフィルタリングできます。呼び出しごとに 1 つのフィルターのみがサポートされています。
| フィルター | 説明 |
|---|---|
submissionStatus |
送信ステータスでフィルタリングする: SUCCESS、FAILED、CANCEL_SUCCESS、CANCEL_FAILED、DELETE_SUCCESS、または DELETE_FAILED。 |
runSettingId |
特定の実行設定 ID の実行を取得します。 |
runId |
特定の実行 ID の実行を取得します。 |
例: 失敗した送信を一覧表示する
aws omics list-runs-in-batch --batch-id7123456--submission-status FAILED
各結果には以下が含まれます。
runSettingId— お客様が用意した実行設定の識別子。runId— HealthOmics が生成した実行識別子 (送信に失敗した場合は空)。runArn— 実行の完全な ARN。submissionStatus— 送信結果 (SUCCESS、FAILED、、CANCEL_SUCCESSCANCEL_FAILED、DELETE_SUCCESS、またはDELETE_FAILED)。submissionFailureReasonおよびsubmissionFailureMessage— 送信が失敗した場合の詳細。
注記
runSettingId は、実行設定で指定した顧客指定の識別子です。 runIdは、送信が成功した後に割り当てられた HealthOmics 生成識別子です。送信が失敗した場合、 runIdは空です。
バッチを一覧表示する
ListBatch を使用して、アカウント内のすべてのバッチリソースを取得します。結果はページ分割されます。
aws omics list-batch
次のクエリパラメータを使用して結果をフィルタリングできます。
| フィルター | 説明 |
|---|---|
status | バッチステータスでフィルタリングします。 |
name | バッチ名でフィルタリングします。 |
runGroupId | 実行グループ ID でフィルタリングします。 |
失敗した実行の処理
バッチ処理には 2 つの異なるタイプの障害があります。違いを理解することは、トラブルシューティングに不可欠です。
バッチレベルの障害
バッチレベルの失敗は、バッチ自体が失敗したことを意味します。実行は作成されていません (または、失敗前に作成されたものもあります)。バッチステータスは ですFAILED。
を呼び出しGetBatchて failureReasonフィールドを確認します。一般的な障害の理由は次のとおりです。
| 障害カテゴリ | failureReason メッセージの例 |
アクション |
|---|---|---|
| 検証エラー | 「バッチの実行数は 100001 件ですが、最大実行数は 100000 件です」、「一意の runSettingIds を 50 件想定しましたが、49 件でした」、「実行設定に無効な JSON 形式」 | 設定を修正し、新しいバッチを送信します。これらのエラーは再試行できません。 |
| S3 設定の変更 | 「予想される s3UriConfigs のタグ: 「abc123」だが、「def456」。s3UriConfigs は StartRunBatch の呼び出し以降に変更されました」 | 送信後に S3 ファイルを変更しないでください。現在のファイルで再送信します。 |
| 一時的なサービスエラー | 「サービスに一時的なエラーが発生しました。バッチを再試行します。」 | 同じバッチを再度送信して再試行します。冪等性requestIdには同じ を使用します。 |
例: 検証のためバッチが失敗しました
aws omics get-batch --batch-id7123456
{ "id": "7123456", "arn": "arn:aws:omics:us-west-2:123456789012:runBatch/7123456", "status": "FAILED", "failureReason": "Batch has 100001 runs but 100000 runs is the max.", "failedTime": "2025-03-15T10:01:00Z" }
実行レベルの失敗
実行レベルの失敗は、バッチ自体が成功した (ステータスは INPROGRESSまたは PROCESSED) が、個々の実行の送信に失敗したことを意味します。バッチは他の実行の処理を続行します。最初の失敗では停止しません。
1. 送信の概要を確認する
aws omics get-batch --batch-id7123456
「」を参照してくださいsubmissionSummary.failedStartSubmissionCount。これが 0 より大きい場合、一部の実行は送信中に失敗します。
2。失敗した送信を一覧表示する
aws omics list-runs-in-batch --batch-id7123456--submission-status FAILED
失敗した各エントリには以下が含まれます。
runSettingId— 失敗した実行設定。submissionFailureReason— エラーカテゴリ。submissionFailureMessage— 詳細なエラーメッセージ。
3. 送信失敗の理由
次の表に、個々の実行submissionFailureReasonで に指定できる値を示します。
submissionFailureReason |
意味 | 再試行可能なのは? |
|---|---|---|
ValidationException |
実行パラメータが無効です。たとえば、パラメータがワークフロー定義、無効な S3 URI 形式、制約違反と一致しません。 | いいえ — 設定を修正します。 |
AccessDeniedException |
IAM サービスロールには、必要なリソース (S3 入力、KMS キー、CloudWatch Logs、ECR イメージ) にアクセスするためのアクセス許可がありません。 | いいえ — ロールポリシーを更新します。 |
ResourceNotFoundException |
参照されるリソース (ワークフロー、実行グループ、または実行キャッシュ) が存在しないか、アクティブ状態ではありません。 | いいえ — リソース IDs。 |
ServiceQuotaExceededException |
アカウントがアクティブな実行の最大数または別のサービスクォータに達しました。 | 実行が完了するまで待つか、クォータの引き上げをリクエストします。 |
ConflictException |
競合するオペレーションが進行中です。たとえば、重複する実行作成の試行などです。 | 通常、 は単独で解決します。 |
ThrottlingException |
API レート制限のため、リクエストはスロットリングされました。 | サービスは自動的に再試行されます。再試行後も持続する場合は、同時バッチ送信を減らします。 |
RequestTimeoutException |
処理中にリクエストがタイムアウトしました。 | サービスは自動的に再試行されます。解決しない場合は、ダウンストリームの問題を確認します。 |
InternalServerException |
予期しないサービスエラーが発生しました。 | サービスは自動的に再試行されます。再試行後も存続する場合は、 サポートにお問い合わせください AWS 。 |
注記
HealthOmics は、実行ごとに一時的なエラー (ThrottlingException、RequestTimeoutException、InternalServerException) を自動的に再試行します。すべての再試行回数が終了した後にFAILEDのみ、実行は としてマークされます。再試行不可能なエラー (ValidationException、AccessDeniedException、ResourceNotFoundException) は、再試行せずにすぐに失敗します。
4。失敗した実行を再送信する
修正された実行設定のみを含む新しいバッチを作成します。同じ を使用しdefaultRunSetting、失敗したrunSettingIdエントリのみを含めます。失敗した実行の再試行メカニズムは組み込まれていないため、新しいバッチを送信する必要があります。
バッチのキャンセル
CancelRunBatch を使用して、進行中のバッチをキャンセルします。キャンセルオペレーション:
not-yet-submittedと保留中の実行の開始を防止します
すでに開始されている実行のCancelRunリクエストを送信します。
aws omics cancel-run-batch --batch-id7123456
重要
キャンセルは、
PENDING、、SUBMITTINGまたはINPROGRESS状態のバッチでのみ許可されます。バッチごとに 1 つのキャンセルまたは削除オペレーションのみが許可されます。
キャンセルオペレーションは非アトミックであり、部分的に成功する可能性があります。を使用してGetBatch、
failedCancelSubmissionCountでsuccessfulCancelSubmissionCountと を確認しますsubmissionSummary。
バッチ実行の削除
DeleteRunBatch バッチ内の個々の実行を削除するには、 を使用します。
aws omics delete-run-batch --batch-id7123456
重要
削除は、
PROCESSEDまたはCANCELLED状態のバッチでのみ許可されます。バッチごとに 1 つのキャンセルまたは削除オペレーションのみが許可されます。
削除オペレーションは非アトミックであり、部分的に成功する可能性があります。を使用してGetBatch、
failedDeleteSubmissionCountでsuccessfulDeleteSubmissionCountと を確認しますsubmissionSummary。
バッチメタデータの削除
DeleteBatch を使用して、バッチリソースとそれに関連するメタデータを削除します。これは とは別のオペレーションですDeleteRunBatch。
aws omics delete-batch --batch-id7123456
重要
DeleteBatch では、バッチは終了状態 (
PROCESSED、FAILED、CANCELLED、または ) である必要がありますRUNS_DELETED。DeleteBatch は個々の実行を削除しません。実行も削除する場合は、DeleteRunBatch最初に を使用します。
DeleteBatch が完了すると、バッチメタデータにアクセスできなくなります。削除されたバッチCancelRunBatchではListRunsInBatch、GetBatch、DeleteRunBatch、、または を呼び出すことはできません。
バッチの EventBridge イベント
HealthOmics は、バッチのステータスが変わるたびに Amazon EventBridge にイベントを送信します。これらのイベントを使用してワークフローを自動化できます。たとえば、バッチが完了または失敗したときに通知をトリガーしたり、すべての実行が終了したときにダウンストリームパイプラインを開始したりできます。
バッチイベントは、他の HealthOmics イベントと同じイベントバスとソースを使用します。一般的なセットアップ手順については、「」を参照してくださいでの EventBridge の使用 AWS HealthOmics。
イベントの詳細タイプ
| イベント名 | 次の場合に発行されます。 |
|---|---|
| RunBatch ステータスの変更 | バッチが新しいステータス (CREATING、PENDING、、SUBMITTING、INPROGRESS、、STOPPING、、、RUNS_DELETING、RUNS_DELETED) CANCELLED PROCESSED FAILEDに移行します。 |
イベント詳細フィールド
バッチイベントの detail オブジェクトには、次のフィールドが含まれます。
| フィールド | タイプ | 説明 |
|---|---|---|
omicsVersion | 文字列 | イベントスキーマバージョン (現在は 1.0.0)。 |
arn | String | バッチ ARN。 |
batchId | String | バッチ識別子。 |
status | String | 新しいバッチステータス。 |
uuid | String | バッチ UUID。 |
batchName | String | バッチ名 (指定されている場合)。 |
totalRuns | String | バッチ内の実行の合計数。 |
failureReason | String | 失敗の理由 (ステータスが の場合にのみ表示されますFAILED)。 |
failureMessage | String | 詳細な失敗メッセージ (ステータスが の場合にのみ表示されますFAILED)。 |
successfulStartSubmissionCount | String | 正常に送信された実行の数。 |
failedStartSubmissionCount | String | 送信に失敗した実行の数。 |
pendingStartSubmissionCount | String | まだ送信保留中の実行数。 |
pendingRunCount | String | 保留中状態の実行の数。 |
startingRunCount | String | 開始する実行の数。 |
runningRunCount | String | 現在実行中の実行数。 |
stoppingRunCount | String | 停止中の実行の数。 |
completedRunCount | String | 完了した実行の数。 |
failedRunCount | String | 失敗した実行の数。 |
cancelledRunCount | String | キャンセルされた実行の数。 |
deletedRunCount | String | 削除された実行の数。 |
workflowId | String | ワークフロー識別子。 |
workflowArn | String | ワークフロー ARN。 |
workflowVersionArn | String | ワークフローバージョン ARN (該当する場合)。 |
workflowOwnerId | String | ワークフロー所有者アカウント ID (共有ワークフローの場合)。 |
runCache | String | キャッシュ ARN の実行 (該当する場合)。 |
runCacheBehavior | String | キャッシュ実行動作 (該当する場合)。 |
イベント例
例: バッチ完了イベント
{ "version": "0", "id": "a1b2c3d4-5678-90ab-cdef-example11111", "detail-type": "RunBatch Status Change", "source": "aws.omics", "account": "123456789012", "time": "2025-03-15T12:30:00Z", "region": "us-west-2", "resources": [ "arn:aws:omics:us-west-2:123456789012:runBatch/7123456" ], "detail": { "omicsVersion": "1.0.0", "arn": "arn:aws:omics:us-west-2:123456789012:runBatch/7123456", "batchId": "7123456", "status": "PROCESSED", "uuid": "96c57683-74bf-9d6d-ae7e-f09b097db14a", "batchName": "genomics-cohort-analysis", "totalRuns": "96", "successfulStartSubmissionCount": "94", "failedStartSubmissionCount": "2", "pendingStartSubmissionCount": "0", "completedRunCount": "90", "failedRunCount": "4", "cancelledRunCount": "0", "workflowId": "1234567" } }
例: バッチ失敗イベント
{ "version": "0", "id": "a1b2c3d4-5678-90ab-cdef-example22222", "detail-type": "RunBatch Status Change", "source": "aws.omics", "account": "123456789012", "time": "2025-03-15T10:01:00Z", "region": "us-west-2", "resources": [ "arn:aws:omics:us-west-2:123456789012:runBatch/7123456" ], "detail": { "omicsVersion": "1.0.0", "arn": "arn:aws:omics:us-west-2:123456789012:runBatch/7123456", "batchId": "7123456", "status": "FAILED", "failureReason": "VALIDATION_EXCEPTION", "failureMessage": "Expected 100 unique runSettingIds but there were 99" } }
例: バッチ完了の EventBridge ルール
次のイベントパターンは、バッチが終了状態になったときに一致します。
{ "source": ["aws.omics"], "detail-type": ["RunBatch Status Change"], "detail": { "status": ["PROCESSED", "FAILED", "CANCELLED"] } }
制約事項と考慮事項
共有スループットクォータ — バッチオペレーションは、個々の API のクォータと同じアカウントごとのクォータを共有します。 はStartRunサービスクォータをStartRunBatch消費します。 CancelRun はクォータをCancelRunBatch消費し、 DeleteRun はクォータDeleteRunBatchを消費します。大きなバッチの進行中に個々の実行 APIs を呼び出すことは避けてください。送信に失敗する可能性があります。
段階的な送信 — バッチ内の実行は、スループットクォータに従って段階的かつ非同期的に送信されます。
非アトミックオペレーション — StartRunBatch、CancelRunBatch、および はすべて部分的に成功DeleteRunBatchできます。送信の概要を必ずチェックして、再試行が必要な実行を特定します。
結果整合性 — での実行実行ステータスの数は、実際の実行状態より遅れるGetBatch可能性があります。バッチが に達すると、最終カウントが正確になります
PROCESSED。リスト呼び出しごとに 1 つのフィルター — ListRunsInBatchおよび は、API 呼び出しごとに 1 つのフィルターのみListBatchをサポートします。
再実行はサポートされていません —
runId(再実行) フィールドは ではサポートされていませんStartRunBatch。バッチ送信ごとに、常に新しい実行が作成されます。Ready2Run ワークフロー — バッチ実行は Ready2Run ワークフローではサポートされていません。
インライン設定制限 — インライン設定 (
inlineSettings) は最大 100 エントリをサポートします。大きなバッチの場合は、 を使用しますs3UriSettings。この制限は調整できません。S3 設定ファイル — S3 設定ファイルは、実行設定オブジェクトの JSON 配列である必要があります。最大ファイルサイズは 6 GB で、最大 100,000 個の実行設定をサポートします。
S3 ファイルのイミュータビリティ — バッチの送信後に S3 設定ファイルを変更しないでください。HealthOmics は、送信中にファイルのエンティティタグ (ETag) を検証し、ファイルが変更されるとバッチに失敗します。