本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用執行快取
根據預設,執行不會使用執行快取。若要使用執行的快取,請在開始執行時指定執行快取和執行快取行為。
執行完成後,您可以使用 主控台、CloudWatch Logs 或 API 操作來追蹤快取命中或疑難排解快取問題。如需詳細資訊,請參閱 追蹤呼叫快取資訊 和 對呼叫快取問題進行故障診斷。
如果執行中的一或多個任務產生非確定性輸出,強烈建議您不要使用呼叫快取來執行,或選擇不快取這些特定任務。如需詳細資訊,請參閱共同責任模式。
注意
您在開始執行時提供 IAM 服務角色。若要使用呼叫快取,服務角色需要存取執行快取 Amazon S3 位置的許可。如需詳細資訊,請參閱的服務角色 AWS HealthOmics。
使用主控台設定具有執行快取的執行
從 主控台,您可以在開始執行時設定執行的執行快取。
-
開啟 HealthOmics 主控台
。 在左側導覽窗格中,選擇執行。
-
在執行頁面上,選擇要開始的執行。
-
選擇開始執行並完成開始執行的步驟 1 和 2,如中所述使用主控台啟動執行。
-
在開始執行的步驟 3 中,選擇選取現有的執行快取。
-
從執行快取 ID 下拉式清單中選取快取。
-
若要覆寫預設的執行快取行為,請選擇執行的快取行為。如需詳細資訊,請參閱執行快取行為。
-
繼續執行開始執行的步驟 4。
使用 CLI 設定具有執行快取的執行
若要啟動使用執行快取的執行,請將 cache-id 參數新增至 start-run CLI 命令。或者,使用 cache-behavior
參數覆寫您為執行快取設定的預設行為。下列範例僅顯示 命令的快取欄位:
aws omics start-run \ ... --cache-id "xxxxxx" \ --cache-behavior CACHE_ALWAYS
如果操作成功,您會收到沒有資料欄位的回應。
執行快取的錯誤案例
針對下列案例,HealthOmics 可能不會快取任務輸出,即使執行快取行為設為一律快取。
-
如果執行在第一個任務成功完成之前遇到錯誤,則沒有要匯出的快取輸出。
-
如果匯出程序失敗,HealthOmics 不會將任務輸出儲存到 Amazon S3 快取位置。
-
如果執行因filesystem out of space錯誤而失敗,呼叫快取不會儲存任何任務輸出。
-
如果您取消執行,呼叫快取不會儲存任何任務輸出。
-
如果執行遇到執行逾時,呼叫快取不會儲存任何任務輸出,即使您將執行設定為在失敗時使用快取。
追蹤呼叫快取資訊
您可以使用主控台、CLI 或 CloudWatch Logs 追蹤呼叫快取事件 (例如執行快取命中)。
使用主控台追蹤快取命中
在執行的執行詳細資訊頁面中,執行任務資料表會顯示每個任務的快取命中資訊。資料表也包含關聯快取項目的連結。使用下列程序來檢視執行的快取命中資訊。
-
開啟 HealthOmics 主控台
。 在左側導覽窗格中,選擇執行。
-
在執行頁面上,選擇要檢查的執行。
在執行詳細資訊頁面上,選擇執行任務索引標籤以顯示任務資料表。
如果任務發生快取命中,快取命中資料欄會包含 Amazon S3 中執行快取項目位置的連結。
選擇連結以檢查執行快取項目。
使用 CLI 追蹤呼叫快取
使用 get-run CLI 命令確認執行是否使用呼叫快取。
aws omics get-run --id 1234567
在回應中,如果已設定 cacheId
欄位,則執行會使用該快取。
使用 list-run-tasks CLI 命令,擷取執行中每個快取任務的快取資料位置。
aws omics list-run-tasks --id 1234567
在回應中,如果任務的 cacheHit 欄位為 true,cacheS3Uri 欄位會提供該任務的快取資料位置。
您也可以使用 get-run-task CLI 命令來擷取特定任務的快取資料位置:
aws omics get-run-task --id 1234567 --task-id <task_id>
使用 CloudWatch Logs 追蹤呼叫快取
HealthOmics 會在 /aws/omics/WorkflowLog
CloudWatch 日誌群組中建立快取活動日誌。每個執行快取都有一個日誌串流:runCache/<cache_id>/<cache_uuid>。
對於使用呼叫快取的執行,HealthOmics 會為這些事件產生 CloudWatch Logs 項目:
建立快取項目 (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