在工作流程运行之间缓存文件 - Amazon CodeCatalyst

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

在工作流程运行之间缓存文件

启用文件缓存后,生成和测试操作会将磁盘上的文件保存到缓存中,并在后续的工作流程运行中从该缓存中恢复这些文件。缓存可以减少因构建或下载两次运行之间未更改的依赖项而导致的延迟。 CodeCatalyst 还支持后备缓存,可用于还原包含一些所需依赖项的部分缓存。这有助于减少缓存未命中造成的延迟影响。

注意

文件缓存仅在 Amazon CodeCatalyst 构建测试操作中可用,并且仅在配置为使用EC2计算类型时才可用。

关于文件缓存

文件缓存允许您将数据组织成多个缓存,每个缓存都在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-Afeature-A中的文件缓存与兄弟分支workflow-Afeature-B中的文件缓存不同。

当工作流程查找指定的文件缓存但无法找到时,就会发生缓存失误。发生这种情况的原因可能有很多,例如创建了新分支或引用了新的缓存但尚未创建时。它也可能发生在缓存过期时,默认情况下,缓存过期发生在上次使用后 14 天。为了减少缓存未命中率并提高缓存命中率, CodeCatalyst 支持后备缓存。备用缓存是备用缓存,它提供了恢复部分缓存的机会,部分缓存可能是较旧版本的缓存。首先通过在属性名称下FileCaching搜索匹配项来恢复缓存,如果找不到,则进行评估RestoreKeys。如果属性名称和所有属性都出现缓存失误RestoreKeys,则工作流程将继续运行,因为缓存是尽力而为,不能保证。

创建缓存

你可以按照以下说明向工作流程添加缓存。

Visual
使用可视化编辑器添加缓存
  1. 打开 CodeCatalyst 控制台,网址为 https://codecatalyst.aws/

  2. 选择您的项目。

  3. 在导航窗格中,选择 C I/CD,然后选择工作流程。

  4. 选择工作流程的名称。您可以按定义工作流程的源存储库或分支名称进行筛选,也可以按工作流程名称或状态进行筛选。

  5. 选择编辑

  6. 选择 “视觉”。

  7. 在工作流程图中,选择要在其中添加缓存的操作。

  8. 选择配置

  9. 在 “文件缓存-可选” 下,选择 “添加缓存”,然后在字段中输入信息,如下所示:

    密钥

    指定主缓存属性名称的名称。缓存属性名称在工作流程中必须是唯一的。每个操作中最多可以有五个条目FileCaching

    路径

    为您的缓存指定关联路径。

    恢复密钥-可选

    指定在找不到主缓存属性时用作备用还原密钥。恢复密钥名称在您的工作流程中必须是唯一的。每个缓存中最多可以有五个条目RestoreKeys

  10. (可选)选择 “验证” 以在提交之前验证工作流程的YAML代码。

  11. 选择 “提交”,输入提交消息,然后再次选择 “提交”。

YAML
使用YAML编辑器添加缓存
  1. 打开 CodeCatalyst 控制台,网址为 https://codecatalyst.aws/

  2. 选择您的项目。

  3. 在导航窗格中,选择 C I/CD,然后选择工作流程。

  4. 选择工作流程的名称。您可以按定义工作流程的源存储库或分支名称进行筛选,也可以按工作流程名称或状态进行筛选。

  5. 选择编辑

  6. 选择YAML

  7. 在工作流程操作中,添加类似于以下内容的代码:

    action-name: Configuration: Steps: ... Caching: FileCaching: key-name: Path: file-path # # Specify any additional fallback caches # RestoreKeys: # - restore-key
  8. (可选)选择 “验证” 以在提交之前验证工作流程的YAML代码。

  9. 选择 “提交”,输入提交消息,然后再次选择 “提交”。

文件缓存限制

以下是属性名称和的限制RestoreKeys

  • 在工作流程中,名称必须是唯一的。

  • 名称仅限于字母数字字符(A-Z、a-z、0-9)、连字符 (-) 和下划线 (_)。

  • 名称最多可包含 180 个字符。

  • 每个操作最多可以有五个缓存。FileCaching

  • 每个缓存中最多可以有五个条目RestoreKeys

以下是路径的限制:

  • 不允许使用星号 (*)。

  • 路径最多可以包含 255 个字符。