View a markdown version of this page

批次在 HealthOmics 中執行 - AWS HealthOmics

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

批次在 HealthOmics 中執行

AWS HealthOmics 批次執行可讓您在單一 API 請求中提交多個執行。批次中的每個執行都會共用共同的基本組態,但可以有不同的輸入和執行特定的參數。批次執行可減少提交開銷,並簡化大規模工作流程處理的生命週期管理。

透過批次執行,您可以:

  • 在單一StartRunBatch呼叫中提交最多 100,000 個執行,並定義一次共用組態並套用至所有執行。

  • 套用個別範例的每次執行參數覆寫,包括名稱、輸出 URI、參數、優先順序和標籤。

  • 透過 和 追蹤整體批次狀態GetBatch和個別執行提交進度ListRunsInBatch

  • 使用 取消批次中的所有執行CancelRunBatch

  • 使用 刪除批次中的所有執行DeleteRunBatch

  • 使用 刪除批次中繼資料DeleteBatch

批次執行概念

  • 批次 — 共用常見組態的工作流程執行集合,以具有自己的 Amazon Resource Name (ARN) 和生命週期狀態的單一資源進行管理。

  • 預設執行設定 (defaultRunSetting) — 批次中所有執行共用的工作流程參數,例如工作流程 ID、IAM 角色、輸出 URI 和常見參數。

  • 執行特定設定 (inlineSettingss3UriSettings) — 覆寫或與預設執行設定合併的每次執行組態。每個項目必須包含唯一的 runSettingId

  • 執行設定 ID (runSettingId) — 批次內每個執行組態的必要、客戶提供的唯一識別符。提交後,使用 ListRunsInBatch 將每個 對應runSettingId至 HealthOmics 產生的 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 工作流程不支援批次執行。

  • IAM 服務角色,具有執行 HealthOmics 工作流程和存取 Amazon S3 儲存貯體的許可。如需詳細資訊,請參閱的服務角色 AWS HealthOmics

  • 輸入資料和輸出結果的 Amazon S3 位置。

  • 每個範例或實驗組態的執行特定參數。

批次操作的 IAM 許可

您的 IAM 身分必須具有批次操作和基礎個別執行操作的許可。下列範例政策會授予所有批次操作的許可:

{ "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上。必須授予這兩個許可,批次才能成功。

傳入的 IAM 服務角色 roleArn(由 HealthOmics 用來執行執行) 需要與個別StartRun呼叫相同的許可。如需詳細資訊,請參閱的服務角色 AWS HealthOmics

標記和標籤型存取控制

批次執行支援兩個層級的標籤:

  • 批次標籤 (StartRunBatch請求上的標籤) — 套用至批次資源。批次標籤完全強制執行標籤型存取控制 (TBAC)。

  • 執行標籤 (runTags 中的 defaultRunSetting和每次執行 runTags) — 套用至個別執行資源。這些標籤會使用與參數相同的優先順序規則合併。

如果您使用標籤型存取控制政策,請確保您的 IAM 政策omics:TagResource包含適當的 aws:RequestTagaws: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"}defaultRunSetting → 拒絕非同步建立期間的個別執行

入門:提交您的第一個批次

下列範例會逐步解說提交一小批的兩個執行、檢查進度和檢閱結果。

步驟 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-id 7123456

CREATINGPENDINGSUBMITTINGINPROGRESS → 觀看status欄位進度PROCESSEDsubmissionSummary 顯示已成功提交的執行數量,並runSummary顯示執行進度。

步驟 3:檢閱個別執行

aws omics list-runs-in-batch --batch-id 7123456

每個項目都會將您的 runSettingId(例如 sample-A) 映射至 HealthOmics 產生的 runId,因此您可以將結果追蹤回您的輸入範例。

步驟 4:檢查提交失敗

aws omics list-runs-in-batch --batch-id 7123456 --submission-status FAILED

如果有任何執行無法提交,回應會包含 submissionFailureReasonsubmissionFailureMessage ,以協助您診斷問題。

啟動批次執行

使用 StartRunBatch 以單一請求提交多個執行。請求包括:

  • defaultRunSetting — 批次中所有執行的共用組態。

  • batchRunSettings — 個別執行組態,以下列其中一種方式提供:

    • inlineSettings — 最多 100 個執行特定的組態陣列,直接在請求內文中提供。

    • s3UriSettings — 指向包含執行組態的 JSON 檔案的 Amazon S3 URI。超過 100 個執行的批次需要,並支援最多 100,000 個執行。

您也可以提供下列欄位:

  • batchName — 批次的選用人類可讀名稱。

  • requestId — 防止重複批次提交的等冪字符。

  • tags — 要與批次資源本身建立關聯的標籤。

使用內嵌執行組態提交小批次

使用 在請求內文中直接提供執行特定的組態陣列inlineSettings。每個項目都必須包含唯一的 runSettingId(必要)。runSettingId 是關聯結果的金鑰 - 當您呼叫 時ListRunsInBatch,每個項目都會將 映射runSettingId至 HealthOmics 產生的 runIdrunArn

您最多可以包含 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 檔案中,並使用 提供 URIs3UriSettings。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 服務角色roleArn必須具有在 中指定的 Amazon S3 物件的讀取存取權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
name
outputUri
parameters是 (合併)
priority
runTags是 (合併)
outputBucketOwnerId
注意

runId (針對個別重新執行) 欄位不支援做為 的輸入StartRunBatch。每個批次提交一律會建立新的執行,而且每次執行都會收到 runId。如需重試個別執行在 HealthOmics 中重新執行執行,請參閱 。

參數合併

的參數defaultRunSetting會與在 inlineSettings中或透過 S3 URI 提供的執行特定參數合併。當索引鍵重疊時,以執行特定值為優先。

範例

來源 Parameters
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,並新增新的金鑰。

標籤合併範例:

來源 Tags (標籤)
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 服務配額

批次會在正常處理期間轉換下列狀態:

  1. CREATING — 正在建立批次。

  2. PENDING — 批次建立,執行正在驗證的組態。

  3. SUBMITTING — 驗證完成,正在提交個別執行。

  4. INPROGRESS — 嘗試的所有執行提交,執行正在執行。

  5. PROCESSED — 所有執行都已達到結束狀態。

重要

批次執行提交與直接 StartRun API 呼叫共用相同的StartRun輸送量配額。如果您在處理大型批次時StartRun直接呼叫 ,批次提交和直接呼叫都會爭用相同的容量。這可能會導致批次執行因 ThrottlingException(超過速率) 而失敗,或您的直接StartRun呼叫受到調節。同樣適用於 CancelRunDeleteRun — 這些DeleteRunBatch分別與 CancelRunBatch和 共用輸送量配額。

監控批次進度

取得批次狀態

使用 GetBatch 擷取批次的整體狀態和提交進度。

aws omics get-batch --batch-id 7123456

回應包括:

  • status — 整體批次狀態。

  • submissionSummary — 開始、取消和刪除操作的成功和失敗提交計數。

  • runSummary — 每個執行狀態中的執行計數。可能的值:PENDINGSTARTINGRUNNINGSTOPPINGCOMPLETEDCANCELLEDDELETEDFAILED

  • 生命週期事件的時間戳記 — creationTimesubmittedTimeprocessedTimefailedTime

回應範例:

{ "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-id 7123456

您可以使用下列其中一個查詢參數來篩選結果。每個呼叫僅支援一個篩選條件。

篩選條件 Description
submissionStatus 依提交狀態篩選:SUCCESSFAILEDCANCEL_SUCCESSDELETE_SUCCESSCANCEL_FAILEDDELETE_FAILED
runSettingId 擷取特定執行設定 ID 的執行。
runId 擷取特定執行 ID 的執行。

範例:列出失敗的提交

aws omics list-runs-in-batch --batch-id 7123456 --submission-status FAILED

每個結果包括:

  • runSettingId — 客戶提供的執行組態識別符。

  • runId — HealthOmics 產生的執行識別符 (如果提交失敗,則為空白)。

  • runArn — 執行的完整 ARN。

  • submissionStatus — 提交結果 (SUCCESSFAILEDCANCEL_SUCCESSCANCEL_FAILEDDELETE_SUCCESS、 或 DELETE_FAILED)。

  • submissionFailureReasonsubmissionFailureMessage — 提交失敗時的詳細資訊。

注意

runSettingId 是您在執行組態中提供的客戶指定識別符。 runId是成功提交後指派的 HealthOmics 產生的識別符。如果提交失敗,則 runId 為空白。

列出批次

使用 ListBatch擷取您帳戶中的所有批次資源。結果會分頁。

aws omics list-batch

您可以使用下列查詢參數來篩選結果:

篩選條件 Description
status依批次狀態篩選。
name依批次名稱篩選。
runGroupId依執行群組 ID 篩選。

處理失敗的執行

批次處理中有兩種不同的失敗類型。了解差異對於故障診斷至關重要。

批次層級失敗

批次層級失敗表示批次本身失敗 - 未建立執行 (或僅在失敗之前建立部分執行)。批次狀態為 FAILED

呼叫 GetBatch並檢查 failureReason 欄位。常見的失敗原因包括:

失敗類別 訊息範例 failureReason Action
驗證錯誤 「批次有 100001 個執行,但 100000 個執行是最大值」、「預期 50 個唯一的 runSettingIds,但有 49 個」、「執行組態中的 JSON 格式無效」 修正組態並提交新的批次。這些錯誤無法重試。
S3 組態已變更 「預期的 s3UriConfigs etag:\"abc123\" 但為:\"def456\"。 s3UriConfigs 自呼叫 StartRunBatch 以來已變更」 請勿在提交後修改 S3 檔案。使用目前的檔案重新提交。
暫時性服務錯誤 「服務中發生暫時性錯誤。重試批次。」 再次提交相同的批次以重試。requestId 對冪等性使用相同的 。

範例:批次因驗證而失敗

aws omics get-batch --batch-id 7123456
{ "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" }

執行層級失敗

執行層級失敗表示批次本身成功 (狀態為 INPROGRESSPROCESSED),但個別執行無法提交。批次會繼續處理其他執行 — 不會在第一次失敗時停止。

1。檢查提交摘要

aws omics get-batch --batch-id 7123456

查看 submissionSummary.failedStartSubmissionCount。如果大於零,有些執行會在提交期間失敗。

2. 列出失敗的提交

aws omics list-runs-in-batch --batch-id 7123456 --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 Support。
注意

HealthOmics 會在每次執行時自動重試暫時性錯誤 (ThrottlingExceptionRequestTimeoutExceptionInternalServerException)。FAILED 只有在所有重試嘗試都用盡之後,才會將執行標記為 。無法重試的錯誤 (ValidationExceptionAccessDeniedExceptionResourceNotFoundException) 會立即失敗,無需重試。

4. 重新提交失敗的執行

建立新的批次,只包含更正後的執行組態。使用相同的 defaultRunSetting,並僅包含失敗runSettingId的項目。執行失敗時沒有內建的重試機制,您必須提交新的批次。

取消批次

使用 CancelRunBatch取消進行中的批次。取消操作:

  • 防止not-yet-submitted和待定的執行開始

  • 提交已啟動之執行的CancelRun請求。

aws omics cancel-run-batch --batch-id 7123456
重要
  • 只有處於 PENDINGSUBMITTINGINPROGRESS 狀態的批次才允許取消。

  • 每個批次一次只允許一個取消或刪除操作。

  • 取消操作是非原子操作,可能部分成功。使用 GetBatchfailedCancelSubmissionCount中檢閱 successfulCancelSubmissionCountsubmissionSummary

刪除批次執行

使用 DeleteRunBatch刪除批次中的個別執行。

aws omics delete-run-batch --batch-id 7123456
重要
  • 只有處於 PROCESSEDCANCELLED 狀態的批次才允許刪除。

  • 每個批次一次只允許一個取消或刪除操作。

  • 刪除操作是非原子操作,可能部分成功。使用 GetBatchfailedDeleteSubmissionCount中檢閱 successfulDeleteSubmissionCountsubmissionSummary

刪除批次中繼資料

使用 DeleteBatch移除批次資源及其相關聯的中繼資料。這是與 不同的操作DeleteRunBatch

aws omics delete-batch --batch-id 7123456
重要
  • DeleteBatch 要求批次處於終端狀態 (PROCESSEDCANCELLEDFAILEDRUNS_DELETED)。

  • DeleteBatch 不會刪除個別執行。如果您想要一併移除執行,DeleteRunBatch請先使用 。

  • DeleteBatch 完成後,即無法再存取批次中繼資料。您無法在已刪除的批次CancelRunBatch上呼叫 GetBatchListRunsInBatchDeleteRunBatch、 或 。

批次的 EventBridge 事件

HealthOmics 會在批次變更狀態時,將事件傳送至 Amazon EventBridge。您可以使用這些事件來自動化工作流程,例如,在批次完成或失敗時觸發通知,或在所有執行完成時啟動下游管道。

批次事件使用與其他 HealthOmics 事件相同的事件匯流排和來源。如需一般設定說明,請參閱 搭配 使用 EventBridge AWS HealthOmics

事件詳細資訊類型

事件名稱 在 時發出
RunBatch 狀態變更 批次會轉換為新狀態 (CREATINGPENDINGSUBMITTINGINPROGRESSSTOPPINGCANCELLEDPROCESSEDFAILEDRUNS_DELETING、) RUNS_DELETED

事件詳細資訊欄位

批次事件中的detail物件包含下列欄位:

欄位 Type Description
omicsVersionString 事件結構描述版本 (目前為 1.0.0)。
arnString 批次 ARN。
batchIdString 批次識別符。
statusString 新的批次狀態。
uuidString 批次 UUID。
batchNameString 批次名稱 (如果提供)。
totalRunsString 批次中的執行總數。
failureReasonString 失敗原因 (僅在狀態為 時顯示FAILED)。
failureMessageString 詳細的失敗訊息 (僅在狀態為 時顯示FAILED)。
successfulStartSubmissionCountString 成功提交的執行次數。
failedStartSubmissionCountString 無法提交的執行次數。
pendingStartSubmissionCountString 仍在等待提交的執行數量。
pendingRunCountString 處於待定狀態的執行次數。
startingRunCountString 開始的執行次數。
runningRunCountString 目前正在執行的執行次數。
stoppingRunCountString 正在停止的執行數目。
completedRunCountString 已完成的執行次數。
failedRunCountString 失敗的運行數量。
cancelledRunCountString 已取消的執行次數。
deletedRunCountString 已刪除的執行次數。
workflowIdString 工作流程識別符。
workflowArnString 工作流程 ARN。
workflowVersionArnString 工作流程版本 ARN (如適用)。
workflowOwnerIdString 工作流程擁有者帳戶 ID (適用於共用工作流程)。
runCacheString 執行快取 ARN (如適用)。
runCacheBehaviorString 執行快取行為 (如適用)。

事件範例

範例:批次完成的事件

{ "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 對等項目共用相同的每個帳戶配額。 會StartRunBatch消耗StartRun服務配額。 CancelRunCancelRunBatch消耗配額,並DeleteRunBatch消耗DeleteRun配額。避免在進行大型批次時呼叫個別執行 APIs,因為這可能會導致提交失敗。

  • 逐步提交 — 批次中的執行會根據您的輸送量配額逐步和非同步提交。

  • 非原子操作StartRunBatchCancelRunBatchDeleteRunBatch 都可以部分成功。一律檢查提交摘要,以識別需要重試的執行。

  • 最終一致性 — 中的執行執行狀態計數GetBatch可能會落後於實際執行狀態。一旦批次達到 ,最終計數就會準確PROCESSED

  • 每個清單呼叫的單一篩選條件ListRunsInBatch每個 API 呼叫僅ListBatch支援一個篩選條件。

  • 不支援重新執行 — 不支援 runId(重新執行) 欄位StartRunBatch。每個批次提交一律會建立新的執行。

  • Ready2Run 工作流程 — Ready2Run 工作流程不支援批次執行。

  • 內嵌組態限制 — 內嵌組態 (inlineSettings) 最多支援 100 個項目。對於較大的批次,請使用 s3UriSettings。此限制不可調整。

  • S3 組態檔案 — S3 組態檔案必須是執行設定物件的 JSON 陣列。檔案大小上限為 6 GB,最多可支援 100,000 個執行組態。

  • S3 檔案不可變性 — 提交批次後請勿修改 S3 組態檔案。HealthOmics 會在提交期間驗證檔案的實體標籤 (ETag),並在檔案變更時使批次失敗。