本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用运行缓存
默认情况下,运行不使用运行缓存。要使用缓存进行运行,请在开始运行时指定运行缓存和运行缓存行为。
运行完成后,您可以使用控制台、 CloudWatch 日志或 API 操作来跟踪缓存命中率或解决缓存问题。有关详细信息,请参阅 跟踪呼叫缓存信息 和 解决呼叫缓存问题。
如果运行中的一个或多个任务生成不确定的输出,我们强烈建议您不要在运行中使用调用缓存,或者选择不缓存这些特定任务。有关更多信息,请参阅 责任共担模式。
注意
开始运行时,您需要提供 IAM 服务角色。要使用呼叫缓存,服务角色需要访问运行缓存 Amazon S3 位置的权限。有关更多信息,请参阅 的服务角色 AWS HealthOmics。
使用控制台配置带有运行缓存的运行
在控制台中,您可以配置运行缓存,以便在开始运行时进行运行。
使用 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 日志来跟踪呼叫缓存事件(例如运行缓存命中)。
使用控制台跟踪缓存命中
在运行的运行详细信息页面中,运行任务表显示每个任务的缓存命中信息。该表还包括指向关联缓存条目的链接。使用以下步骤查看某次运行的缓存命中信息。
在左侧导航窗格中,选择 R uns。
-
在 “运行” 页面上,选择要检查的运行。
在运行详细信息页面上,选择运行任务选项卡以显示任务表。
如果任务有缓存命中,则缓存命中列包含指向 Amazon S3 中运行缓存条目位置的链接。
选择链接以检查运行缓存条目。
使用 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