本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在工作流程執行間快取檔
啟用檔案快取時,建置和測試動作會將磁碟上的檔案儲存至快取,並在後續工作流程執行時從該快取還原這些檔案。緩存減少了構建或下載運行之間沒有改變的依賴關係引起的延遲。 CodeCatalyst 也支援後援快取,可用來還原包含部分所需相依性的快取。這有助於減少快取遺漏的延遲影響。
關於檔案快取
檔案快取可讓您將資料組織成多個快取,每個快取都會在FileCaching
屬性下參照。每個緩存保存由給定路徑指定的目錄。指定的目錄將在 future 的工作流程執行中還原。以下是具有多個名為cacheKey1
和的快取的快取的範例YAML程式碼片段cacheKey2
。
Actions:
BuildMyNpmApp:
Identifier: aws/build@v1
Inputs:
Sources:
- WorkflowSource
Configuration:
Steps:
- Run: npm install
- Run: npm run test
Caching:
FileCaching:
cacheKey1:
Path: file1.txt
RestoreKeys:
- restoreKey1
cacheKey2:
Path: /root/repository
RestoreKeys:
- restoreKey2
- restoreKey3
注意
CodeCatalyst 使用多層緩存,其中包括一個本地緩存和遠程緩存。當佈建的叢集或隨選機器在本機快取上遇到快取未命中時,會從遠端快取還原相依性。因此,某些動作執行可能會因下載遠端快取而導致延遲。
CodeCatalyst 套用快取存取限制,以確保某個工作流程中的動作無法修改來自不同工作流程的快取。這樣可以保護每個工作流程,防止其他可能會推送影響組建或部署的不正確資料 使用緩存範圍強制執行限制,該緩存範圍將緩存隔離到每個工作流程和分支配對。例如,workflow-A
in branch feature-A
具有與同級分支feature-B
不同workflow-A
的文件緩存。
當工作流程尋找指定的檔案快取且無法找到它時,就會發生快取遺漏。這可能是由於多種原因而發生的,例如當創建新分支或引用新緩存並且尚未創建時。它也可能發生在緩存到期時,默認情況下發生在上次使用後 14 天。若要緩解快取遺漏並提高快取命中率,請 CodeCatalyst 支援後援快取。後援快取是替代快取,提供還原部分快取的機會,部分快取可以是較舊版本的快取。透過首先搜尋屬性名稱下的相符項目來還原快取,如果找不到,則會FileCaching
進行評估RestoreKeys
。如果屬性名稱和所有內容都有快取未命中RestoreKeys
,工作流程將繼續執行,因為快取是最好的努力,而且不能保證。
建立快取
您可以使用下列指示將快取新增至工作流程。
檔案快取限制
以下是性質名稱和的約束RestoreKeys
:
-
名稱在工作流程中必須是唯一的。
-
名稱僅限於英數字元 (A-Z、a-z、0-9)、連字號 (-) 和底線 (_)。
-
名稱最多可包含 180 個字元。
-
每個動作最多可以有五個快取
FileCaching
。 -
每個快取中最多可以有五個項目
RestoreKeys
。
以下是路徑的限制:
-
不允許使用星號 (*)。
-
路徑最多可包含 255 個字元。