View a markdown version of this page

批量运行于 HealthOmics - AWS HealthOmics

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

批量运行于 HealthOmics

AWS HealthOmics 批量运行允许您在单个 API 请求中提交多次运行。批处理中的每次运行都共享一个通用的基本配置,但可以有不同的输入和特定运行参数。批量运行减少了提交开销,并简化了大规模工作流程处理的生命周期管理。

通过批量运行,您可以:

  • 一次StartRunBatch调用最多可提交 100,000 次运行,共享配置仅定义一次即可应用于所有运行。

  • 对单个样本应用每次运行的参数覆盖,包括名称、输出 URI、参数、优先级和标签。

  • 通过GetBatch和跟踪整体批次状态和个人运行提交进度ListRunsInBatch。

  • 使用批量取消所有运行CancelRunBatch。

  • 使用批量删除所有运行DeleteRunBatch。

  • 使用删除批量元数据DeleteBatch。

批量运行概念

  • 批处理 — 一组共享通用配置的工作流程运行,作为具有自己的 Amazon 资源名称 (ARN) 和生命周期状态的单一资源进行管理。

  • 默认运行设置 (defaultRunSetting)-批处理中所有运行共享的工作流参数,例如工作流程 ID、IAM 角色、输出 URI、会话策略和常用参数。

  • Run-specific 设置(inlineSettings或s3UriSettings)— 覆盖默认运行设置或合并的 Per-run 配置。每个条目都必须包含一个唯一的runSettingId。

  • 运行设置 ID (runSettingId) — 批次中每个运行配置的必填的、客户提供的唯一标识符。提交后,使用ListRunsInBatch将每个运行映射runSettingId到 HealthOmics-generated runId,这样您就可以跟踪哪个运行是根据哪个输入配置创建的。

  • 批次状态 -批处理操作的整体状态。可能的值:

    • CREATING— 正在创建批处理。

    • PENDING— 批处理已创建;正在异步验证运行配置。

    • SUBMITTING— 验证已完成;正在提交单项运行。

    • INPROGRESS— 所有运行提交均已尝试;运行正在执行。

    • STOPPING— 已收到取消请求;运行正在停止。

    • CANCELLED— 该批次已取消。

    • PROCESSED— 所有运行都已达到终端状态(已完成、失败或取消)。

    • FAILED— 批次本身在创建运行之前失败了。有关详细信息,请参阅Batch-level 失败。

    • RUNS_DELETING— 批处理中的运行正在删除。

    • RUNS_DELETE_FAILED— 批处理中的部分或全部运行未能删除。

    • RUNS_DELETED— 批处理中的所有运行都已删除。

  • 提交状态 -批次中单次运行的提交结果。可能的值:

    • SUCCESS— 运行已成功提交。

    • FAILED— 运行提交失败(例如,由于验证错误)。

    • CANCEL_SUCCESS— 运行已成功取消。

    • CANCEL_FAILED— 取消运行失败。

    • DELETE_SUCCESS— Run 已成功删除。

    • DELETE_FAILED— 运行删除操作失败。

先决条件

在开始批量运行之前,请确保您有:

  • 活跃的 HealthOmics 私有工作流程。Ready2Run 工作流程不支持批量运行。

  • 一个 IAM 服务角色,有权运行 HealthOmics 工作流程和访问您的 Amazon S3 存储桶。有关更多信息,请参阅 的服务角色 AWS HealthOmics。

  • 用于存放输入数据和输出结果的 Amazon S3 位置。

  • Run-specific 每个样本或实验配置的参数。

批量操作的 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请求上的标签)-应用于批处理资源。 Tag-based 对批处理标签完全强制执行访问控制 (TBAC)。

  • 运行标签(运行runTags中defaultRunSetting和每次运行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"}在 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

从 CREATING → → PENDING SUBMITTING INPROGRESS → 观看status球场进度PROCESSED。submissionSummary显示成功提交了多少次运行,并runSummary显示了执行进度。

第 3 步:查看单次运行情况

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

每个条目将您的runSettingId(例如sample-A)映射到 HealthOmics-generatedrunId,这样您就可以将结果追溯到输入样本。

第 4 步:检查提交失败

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

如果有任何运行未能提交,则响应中会包含submissionFailureReason和submissionFailureMessage以帮助您诊断问题。

开始批量运行

StartRunBatch用于通过单个请求提交多次运行。该请求包括:

  • defaultRunSetting— 批处理中所有运行的共享配置。这包括workflowId、、、roleArnoutputUriparametersscratchStorageMode、和等字段engineSettings。对于 Nextflow 工作流程,用于engineSettings指定适用于批处理中所有运行的配置文件。有关更多信息,请参阅 指定 NextfLOW 引擎设置。

  • batchRunSettings— 个人运行配置,以以下方式之一提供:

    • inlineSettings— 由多达 100 个运行特定配置组成的数组,直接在请求正文中提供。每项内联设置均engineSettings可包括覆盖单次运行的默认配置文件。

    • s3UriSettings— 指向包含运行配置的 JSON 文件的 Amazon S3 URI。运行次数超过 100 次的批次是必需的,并且支持最多 100,000 次运行。

您还可以提供以下字段:

  • batchName— 批次的可选人类可读名称。

  • requestId— 用于防止重复批量提交的阻值标记。

  • tags— 与批处理资源本身关联的标签。

使用内联运行配置提交小批量

使用直接在请求正文中提供一系列特定于运行的配置。inlineSettings每个条目必须包含一个唯一的runSettingId(必填项)。runSettingId这是关联结果的关键——当你打电话时ListRunsInBatch,每个条目都会runSettingId将你映射到 HealthOmics-generatedrunId和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 服务角色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 参考。

字段 Batch-level (defaultRunSetting) Per-run 可配置 (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参数与 S3 URI 中inlineSettings或通过 S3 URI 提供的特定运行参数合并。 Run-specific 当键重叠时,值优先。

示例:

源 参数
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"}
注意

Batch-level 标签(根据StartRunBatch请求)仅应用于批处理资源本身。它们不会被单次运行所继承。 Run-level 标签是通过defaultRunSetting.runTags和每次运行runTags控制的。

逐步提交

StartRunBatch同步验证常用字段,并立即返回批处理 ID 和状态。CREATING批量运行将根据您的吞吐量配额以受控的速率逐步异步提交。

有关 HealthOmics 配额的完整列表,请参阅HealthOmics 服务配额。

在正常处理期间,批处理会过渡到以下状态:

  1. CREATING— 正在创建批处理。

  2. PENDING— 批量创建,正在验证运行配置。

  3. SUBMITTING— 验证已完成,正在提交单项运行。

  4. INPROGRESS— 尝试了所有运行提交,运行正在执行。

  5. PROCESSED— 所有运行均已达到终端状态。

重要

批量运行提交与直接 StartRun API 调用共享相同的StartRun吞吐量配额。如果您在处理大量批次时StartRun直接拨打电话,则批量提交和直接呼叫都会争夺相同的容量。这可能会导致批量运行失败ThrottlingException(超过速率),或者您的直接StartRun呼叫受到限制。这同样适用于CancelRun和DeleteRun,它们DeleteRunBatch分别与CancelRunBatch和共享吞吐量配额。

监控批次进度

获取批次状态

GetBatch用于检索批次的整体状态和提交进度。

aws omics get-batch --batch-id 7123456

响应包括以下内容:

  • status— 总体批次状态。

  • submissionSummary— 启动、取消和删除操作的成功和失败提交次数。

  • runSummary— 每种执行状态下的运行次数。可能的值:PENDINGSTARTING、RUNNING、、STOPPING、COMPLETED、DELETED、CANCELLED、或 FAILED

  • 生命周期事件的时间戳 — creationTime、、submittedTimeprocessedTime、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-id 7123456

您可以使用以下查询参数之一筛选结果。每个呼叫仅支持一个过滤器。

筛选条件 说明
submissionStatus 按提交状态筛选:SUCCESSFAILED、CANCEL_SUCCESS、CANCEL_FAILED、DELETE_SUCCESS、或DELETE_FAILED。
runSettingId 检索特定运行设置 ID 的运行次数。
runId 检索特定运行 ID 的运行情况。

示例:列出失败的提交内容

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

每个结果包括:

  • runSettingId— 客户提供的运行配置标识符。

  • runId— HealthOmics-generated 运行标识符(如果提交失败则为空)。

  • runArn— 跑步的完整 ARN。

  • submissionStatus— 提交结果(SUCCESS、FAILED、CANCEL_SUCCESS、CANCEL_FAILEDDELETE_SUCCESS、或DELETE_FAILED)。

  • submissionFailureReason和 submissionFailureMessage — 提交失败时的详细信息。

注意

runSettingId是您在运行配置中提供的客户指定的标识符。runId是成功提交后分配的 HealthOmics-generated 标识符。如果提交失败,runId则为空。

列出批次

ListBatch用于检索账户中的所有批量资源。结果是分页的。

aws omics list-batch

您可以使用以下查询参数筛选结果:

筛选条件 说明
status按批次状态筛选。
name按批次名称过滤。
runGroupId按运行组 ID 过滤。

启用运行指标

运行指标报告批量运行的近乎实时的资源利用率。要启用运行指标,您用于批处理的服务角色必须具有cloudwatch:PutMetricData权限。有关更多信息,请参阅 运行私有工作流程的指标。

向您用于批处理的服务角色添加以下权限。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "cloudwatch:PutMetricData", "Resource": "*" } ] }

处理失败的运行

批处理中有两种不同类型的故障。了解差异对于故障排除至关重要。

Batch-level 失败

批次级故障意味着批次本身失败——未创建任何运行(或者在失败之前只创建了部分运行)。批次状态为FAILED。

致电GetBatch并检查该failureReason字段。常见的故障原因包括:

故障类别 示例failureReason消息 处理建议
验证错误 “批处理有 100001 次运行,但最大运行次数为 100,000 次。“,“预计有 50 次独立运行,SettingIds 但有 49 次”,“运行配置中的 JSON 格式无效” 修复配置并提交新批次。这些错误不可重试。
S3 配置已更改 “预期的 s3 UriConfigs etag:\" abc123\” 但是:\ "def456\”。自调用以来 s3 UriConfigs 发生了变化” 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" }

Run-level 失败

运行级失败表示批次本身成功(状态为INPROGRESS或PROCESSED),但个别运行未能提交。该批处理继续处理其他运行——它不会在第一次失败时停止。

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 日志、ECR 映像)的权限。 否 — 更新角色政策。
ResourceNotFoundException 引用的资源(工作流、运行组或运行缓存)不存在或未处于活动状态。 否 — 验证资源 ID。
ServiceQuotaExceededException 该账户已达到最大活跃运行次数或其他服务配额。 等待运行完成,或申请增加配额。
ConflictException 冲突操作正在进行中,例如,尝试重复运行创建。 通常会自行解决。
ThrottlingException 由于 API 速率限制,该请求被限制。 该服务会自动重试。如果重试后仍然存在,请减少并发批量提交。
RequestTimeoutException 请求在处理过程中超时。 该服务会自动重试。如果问题仍然存在,请检查下游问题。
InternalServerException 发生了意外的服务错误。 该服务会自动重试。如果重试后问题仍然存在,请联系 AWS 支持部门。
注意

HealthOmics 每次运行时自动重试暂时性错误 (ThrottlingExceptionRequestTimeoutException,,InternalServerException)。只有在所有重试尝试都用尽之后,FAILED才会将运行标记为只有在所有重试尝试之后。 Non-retryable 错误 (ValidationException,AccessDeniedException,ResourceNotFoundException) 立即失败,无需重试。

4。重新提交失败的运行

创建一个仅包含更正的运行配置的新批次。使用相同方法defaultRunSetting并仅包括失败的runSettingId条目。对于失败的运行,没有内置的重试机制,您必须提交新的批次。

取消批次

CancelRunBatch用于取消正在进行的批处理。取消操作:

  • 防止尚未提交和待处理的运行开始

  • 提交已经开始的运行CancelRun请求。

aws omics cancel-run-batch --batch-id 7123456
重要
  • 仅允许对处于PENDINGSUBMITTING、或INPROGRESS状态的批次取消。

  • 一次只能对每个批次执行一次取消或删除操作。

  • 取消操作是非原子的,可能会部分成功。GetBatch用于查看successfulCancelSubmissionCount,然后failedCancelSubmissionCount在submissionSummary.

删除批量运行

DeleteRunBatch用于删除批次中的单个运行。

aws omics delete-run-batch --batch-id 7123456
重要
  • 仅允许对处于PROCESSED或CANCELLED状态的批次进行删除。

  • 一次只能对每个批次执行一次取消或删除操作。

  • 删除操作是非原子的,可能会部分成功。GetBatch用于查看successfulDeleteSubmissionCount,然后failedDeleteSubmissionCount在submissionSummary.

删除批量元数据

DeleteBatch用于删除批处理资源及其关联的元数据。这是一项与之分开的操作DeleteRunBatch。

aws omics delete-batch --batch-id 7123456
重要
  • DeleteBatch要求批次处于终端状态(PROCESSED、FAILED、CANCELLEDRUNS_DELETE_FAILED、或RUNS_DELETED)。

  • DeleteBatch不会删除单次运行。如果您还想移除运行项,请DeleteRunBatch先使用。

  • DeleteBatch完成后,将无法再访问批次元数据。您无法CancelRunBatch对已删除的批次调用GetBatchListRunsInBatchDeleteRunBatch、、或。

EventBridge 批处理事件

HealthOmics 每当批次更改状态 EventBridge 时,都会向亚马逊发送事件。您可以使用这些事件来自动化工作流程,例如,在批处理完成或失败时触发通知,或在所有运行完成时启动下游管道。

批处理事件使用与其他事件相同的事 HealthOmics 件总线和源。有关常规设置说明,请参阅EventBridge 与一起使用 AWS HealthOmics。

活动详情类型

事件名称 何时发出
RunBatch 状态变更 批次过渡到新状态(CREATING、PENDING、SUBMITTING、INPROGRESS、STOPPINGCANCELLED、PROCESSED、FAILED、RUNS_DELETING、RUNS_DELETED)

事件详细信息字段

批处理事件中的detail对象包括以下字段:

字段 类型 说明
omicsVersion字符串 事件架构版本(当前为 1.0.0)。
arn字符串 批次 ARN。
batchId字符串 批次标识符。
status字符串 新的批次状态。
uuid字符串 批处理 UUID。
batchName字符串 批次名称(如果提供)。
totalRuns字符串 批次中的总运行次数。
failureReason字符串 失败原因(仅在状态为时出现FAILED)。
failureMessage字符串 详细的故障消息(仅在状态为时出现FAILED)。
successfulStartSubmissionCount字符串 成功提交的运行次数。
failedStartSubmissionCount字符串 提交失败的运行次数。
pendingStartSubmissionCount字符串 仍有待提交的运行次数。
pendingRunCount字符串 处于待定状态的运行次数。
startingRunCount字符串 开始运行的次数。
runningRunCount字符串 当前正在运行的运行次数。
stoppingRunCount字符串 停止的运行次数。
completedRunCount字符串 已完成的运行次数。
failedRunCount字符串 失败的运行数量。
cancelledRunCount字符串 取消的运行次数。
deletedRunCount字符串 删除的运行次数。
workflowId字符串 工作流程标识符。
workflowArn字符串 工作流程 ARN。
workflowVersionArn字符串 工作流程版本 ARN(如果适用)。
workflowOwnerId字符串 工作流程所有者账户 ID(适用于共享工作流程)。
runCache字符串 运行缓存 ARN(如果适用)。
runCacheBehavior字符串 运行缓存行为(如果适用)。

事件示例

示例:批量完成事件

{ "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服务配额。CancelRunBatch消耗CancelRun配额,DeleteRunBatch消耗DeleteRun配额。避免在进行大批处理时调用单个运行 API,因为这可能会导致提交失败。

  • 逐步提交 -根据您的吞吐量配额逐步和异步提交批次运行。

  • Non-atomic 操作 — StartRunBatch CancelRunBatch、和都DeleteRunBatch可能部分成功。请务必查看提交摘要,以确定需要重试的运行。

  • 最终一致性 — 运行执行状态计数GetBatch可能落后于实际运行状态。一旦批次到达,最终计数就是准确PROCESSED的。

  • 每个列表调用只有一个过滤器 —— ListRunsInBatch 每个 API 调用仅ListBatch支持一个过滤器。

  • Re-run 不支持 — 中不支持runId(重新运行)字段。StartRunBatch每次批量提交总是会创建新的运行次数。

  • Ready2Run 工作流程 — Ready2Run 工作流程不支持批量运行。

  • 内联配置限制 — 嵌入式配置 (inlineSettings) 最多支持 100 个条目。对于较大的批次,请使用s3UriSettings。此限制不可调整。

  • S3 配置文件 — S3 配置文件必须是运行设置对象的 JSON 数组。最大文件大小为 6 GB,支持多达 100,000 个运行配置。

  • S3 文件不变性 — 提交批处理后,请勿修改 S3 配置文件。 HealthOmics 在提交期间验证文件的实体标签 (ETag),如果文件已更改,则批处理失败。