本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在工作流程运行之间缓存文件
启用文件缓存后,生成和测试操作会将磁盘上的文件保存到缓存中,并在后续的工作流程运行中从该缓存中恢复这些文件。缓存可以减少因构建或下载两次运行之间未更改的依赖项而导致的延迟。 CodeCatalyst 还支持后备缓存,可用于还原包含一些所需依赖项的部分缓存。这有助于减少缓存未命中造成的延迟影响。
关于文件缓存
文件缓存允许您将数据组织成多个缓存,每个缓存都在FileCaching
属性下引用。每个缓存都会保存由给定路径指定的目录。指定的目录将在未来的工作流程运行中恢复。以下是使用名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
feature-A
中的文件缓存与兄弟分支workflow-A
feature-B
中的文件缓存不同。
当工作流程查找指定的文件缓存但无法找到时,就会发生缓存失误。发生这种情况的原因可能有很多,例如创建了新分支或引用了新的缓存但尚未创建时。它也可能发生在缓存过期时,默认情况下,缓存过期发生在上次使用后 14 天。为了减少缓存未命中率并提高缓存命中率, CodeCatalyst 支持后备缓存。备用缓存是备用缓存,它提供了恢复部分缓存的机会,部分缓存可能是较旧版本的缓存。首先通过在属性名称下FileCaching
搜索匹配项来恢复缓存,如果找不到,则进行评估RestoreKeys
。如果属性名称和所有属性都出现缓存失误RestoreKeys
,则工作流程将继续运行,因为缓存是尽力而为,不能保证。
创建缓存
你可以按照以下说明向工作流程添加缓存。
文件缓存限制
以下是属性名称和的限制RestoreKeys
:
-
在工作流程中,名称必须是唯一的。
-
名称仅限于字母数字字符(A-Z、a-z、0-9)、连字符 (-) 和下划线 (_)。
-
名称最多可包含 180 个字符。
-
每个操作最多可以有五个缓存。
FileCaching
-
每个缓存中最多可以有五个条目
RestoreKeys
。
以下是路径的限制:
-
不允许使用星号 (*)。
-
路径最多可以包含 255 个字符。