使用运行缓存 - AWS HealthOmics

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

使用运行缓存

默认情况下,运行不使用运行缓存。要使用缓存进行运行,请在开始运行时指定运行缓存和运行缓存行为。

运行完成后,您可以使用控制台、 CloudWatch 日志或 API 操作来跟踪缓存命中率或解决缓存问题。有关详细信息,请参阅 跟踪呼叫缓存信息解决呼叫缓存问题

如果运行中的一个或多个任务生成不确定的输出,我们强烈建议您不要在运行中使用调用缓存,或者选择不缓存这些特定任务。有关更多信息,请参阅 责任共担模式

注意

开始运行时,您需要提供 IAM 服务角色。要使用呼叫缓存,服务角色需要访问运行缓存 Amazon S3 位置的权限。有关更多信息,请参阅 的服务角色 AWS HealthOmics

使用控制台配置带有运行缓存的运行

在控制台中,您可以配置运行缓存,以便在开始运行时进行运行。

  1. 打开 HealthOmics 管理控制台

  2. 在左侧导航窗格中,选择 R uns

  3. 在 “运行” 页面上,选择要启动的运行。

  4. 选择 “开始运行”,然后按中所述完成 “开始运行” 的步骤 1 和 2 使用控制台开始运行

  5. 在 “开始运行” 的第 3 步中,选择 “选择现有的运行缓存”。

  6. 从 “运行缓存 ID” 下拉列表中选择缓存

  7. 要覆盖默认的运行缓存行为,请为运行选择缓存行为。有关更多信息,请参阅 运行缓存行为

  8. 继续执行开始运行的步骤 4。

使用 CLI 配置带有运行缓存的运行

要启动使用运行缓存的运行,请在 start-run CLI 命令中添加 cache-id 参数。或者,使用cache-behavior参数来覆盖您为运行缓存配置的默认行为。以下示例仅显示命令的缓存字段:

aws omics start-run \ ... --cache-id "xxxxxx" \ --cache-behavior CACHE_ALWAYS

如果操作成功,您将收到不包含数据字段的响应。

运行缓存的错误案例

在以下情况下,即使在缓存行为设置为 “始终缓存” 的情况下运行,也 HealthOmics 可能无法缓存任务输出。

  • 如果在第一个任务成功完成之前运行遇到错误,则没有要导出的缓存输出。

  • 如果导出过程失败,则 HealthOmics 不会将任务输出保存到 Amazon S3 缓存位置。

  • 如果由于filesystem out of space错误而运行失败,则调用缓存不会保存任何任务输出。

  • 如果您取消运行,则呼叫缓存不会保存任何任务输出。

  • 如果运行出现运行超时,即使您将运行配置为在失败时使用缓存,调用缓存也不会保存任何任务输出。

跟踪呼叫缓存信息

您可以使用控制台、CLI 或 CloudWatch 日志来跟踪呼叫缓存事件(例如运行缓存命中)。

使用控制台跟踪缓存命中

在运行的运行详细信息页面中,运行任务表显示每个任务的缓存命中信息。该表还包括指向关联缓存条目的链接。使用以下步骤查看某次运行的缓存命中信息。

  1. 打开 HealthOmics 管理控制台

  2. 在左侧导航窗格中,选择 R uns

  3. 在 “运行” 页面上,选择要检查的运行。

  4. 在运行详细信息页面上,选择运行任务选项卡以显示任务表。

  5. 如果任务有缓存命中,则缓存命中列包含指向 Amazon S3 中运行缓存条目位置的链接。

  6. 选择链接以检查运行缓存条目。

使用 CLI 跟踪呼叫缓存

使用 get-run CLI 命令确认运行是否使用了呼叫缓存。

aws omics get-run --id 1234567

在响应中,如果设置了该cacheId字段,则运行将使用该缓存。

使用 list-run-tasksCLI 命令检索运行中每个缓存任务的缓存数据位置。

aws omics list-run-tasks --id 1234567

在响应中,如果任务的 cacheHit 字段为真,则 caches3uri 字段将提供该任务的缓存数据位置。

您也可以使用 get-run-taskCLI 命令检索特定任务的缓存数据位置:

aws omics get-run-task --id 1234567 --task-id <task_id>

使用 CloudWatch 日志跟踪呼叫缓存

HealthOmics 在日志组中创建缓存活动/aws/omics/WorkflowLog CloudWatch 日志。<cache_id><cache_uuid>每个运行缓存都有一个日志流:r unCache//

对于使用呼叫缓存的运行, HealthOmics 会生成以下事件的 CloudWatch 日志条目:

  • 创建缓存条目 (CACHE_ENTRY_CREATED)

  • 匹配缓存条目 (CACHE_HIT)

  • 无法匹配缓存条目 (CACHE_MISS)

有关这些日志的更多信息,请参阅登录 CloudWatch

/aws/omics/WorkflowLog日志组上使用以下 CloudWatch Insights 查询来返回此缓存每次运行的缓存命中数:

filter @logStream like 'runCache/<CACHE_ID>/' fields @timestamp, @message filter logMessage like 'CACHE_HIT' parse "run: *," as run stats count(*) as cacheHits by run

使用以下查询返回每次运行创建的缓存条目数:

filter @logStream like 'runCache/<CACHE_ID>/' fields @timestamp, @message filter logMessage like 'CACHE_ENTRY_CREATED' parse "run: *," as run stats count(*) as cacheEntries by run