使用中的预留容量 Amazon CodeBuild - Amazon CodeBuild
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用中的预留容量 Amazon CodeBuild

CodeBuild 提供以下计算队列:

  • 按需实例集

  • 预留容量实例集

使用按需队列,为您的构建 CodeBuild 提供计算。构建完成后,计算机就会被销毁。按需实例集是完全托管式的,并包括自动扩展功能以应对需求激增。

注意

按需实例集不支持 Windows Server 2022。

CodeBuild 还提供预留容量队列,其中包含由 Amazon EC2 提供支持并由维护的 CodeBuild实例。使用预留容量实例集,您可以为构建环境配置一组专用实例。这些计算机保持闲置状态,可以立即处理生成或测试,并缩短构建持续时间。使用预留容量实例集,您的计算机将始终处于运行状态,并且只要预调配完毕,它们就会继续产生成本。

重要

无论您运行实例多长时间,预留容量队列都会为每个实例收取初始费用,之后可能会产生额外的相关成本。有关更多信息,请参阅https://www.amazonaws.cn/codebuild/pricing/

如何开始使用预留容量实例集?

创建预留容量实例集
  1. 登录 Amazon Web Services Management Console 并打开 Amazon CodeBuild 控制台,网址为 https://console.aws.amazon.com/codesuite/codebuild/home

  2. 在导航窗格中,选择计算实例集,然后选择创建计算实例集

  3. 计算实例集名称文本字段中,输入实例集的名称。

  4. 操作系统下拉菜单中,选择操作系统。

  5. 架构下拉菜单中,选择架构。

  6. 计算下拉菜单中,选择您的计算机的计算机类型。

  7. 容量文本字段中,输入实例集中的最少实例数。

  8. 在 “溢出行为” 字段中,选择需求超过舰队容量时的行为。有关这些选项的详细信息,请参阅 预留容量实例集属性

  9. 选择创建计算实例集

  10. 创建计算队列后,创建一个新 CodeBuild 项目或编辑现有项目。从环境中,选择预置模型下的预留容量,然后在实例集名称下选择指定的实例集。

最佳实践

使用预留容量实例集时,我们建议您遵循以下这些最佳实践。

  • 我们建议使用源代码缓存模式,通过缓存源代码来帮助提高构建性能。

  • 我们建议使用 Docker 层缓存,通过缓存现有 Docker 层来帮助提高构建性能。

我能否在多个 CodeBuild 项目之间共享预留容量队列?

可以,您可以通过在多个项目中使用实例集的容量来最大限度地提高其利用率。

哪些区域支持预留容量实例集?

以下地区支持预留容量队列 Amazon Web Services 区域:美国东部(弗吉尼亚北部)、美国东部(俄亥俄州)、美国西部(俄勒冈)、亚太地区(孟买)、亚太地区(新加坡)、亚太地区(悉尼)、亚太地区(东京)、欧洲(法兰克福)、欧洲(爱尔兰)和南美洲(圣保罗)。有关 Amazon Web Services 区域 何处 CodeBuild 可用的更多信息,请参阅按地区划分的Amazon 服务

预留容量实例集属性

预留容量实例集包含以下属性:

操作系统

操作系统 以下操作系统可用:

  • Amazon Linux

  • Windows Server 2019

  • Windows Server 2022

架构

处理器架构。以下架构可用:

  • x86_64

  • Arm64

计算

每个实例的计算机类型。以下计算机类型可用:

计算类型 环境 computeType 值 环境类型值 内存 vCPU 磁盘空间
小型 ARM BUILD_GENERAL1_SMALL ARM_CONTAINER 4 GB 2 50 GB
大型 ARM BUILD_GENERAL1_LARGE ARM_CONTAINER 16 GB 8 50 GB
小型 Linux¹ BUILD_GENERAL1_SMALL LINUX_CONTAINER 3 GB 2 64 GB
中型 Linux¹ BUILD_GENERAL1_MEDIUM LINUX_CONTAINER 7 GB 4 128 GB
大型 Linux¹ BUILD_GENERAL1_LARGE LINUX_CONTAINER 15 GB 8 128 GB
Linux XLarge BUILD_GENERAL1_XLARGE LINUX_CONTAINER 70GB 36 256GB
Linux 2XLarge BUILD_GENERAL1_2XLARGE LINUX_CONTAINER 145 GB 72 824 GB (SSD)
小型 Linux GPU BUILD_GENERAL1_SMALL LINUX_GPU_CONTAINER 16 GB 4 220 GB
大型 Linux GPU BUILD_GENERAL1_LARGE LINUX_GPU_CONTAINER 255 GB 32 50 GB
中型 Windows BUILD_GENERAL1_MEDIUM WINDOWS_SERVER_2019_CONTAINER 7 GB 4 128 GB
中型 Windows BUILD_GENERAL1_MEDIUM WINDOWS_SERVER_2022_CONTAINER 7 GB 4 128 GB
大型 Windows BUILD_GENERAL1_LARGE WINDOWS_SERVER_2019_CONTAINER 15 GB 8 128 GB
大型 Windows BUILD_GENERAL1_LARGE WINDOWS_SERVER_2022_CONTAINER 15 GB 8 128 GB
容量

分配给实例集的计算机的初始数量,它定义了可以并行运行的构建数量。

溢出行为

定义构建数量超过实例集容量时的行为。

点播

溢出版本按 CodeBuild 需运行。

重要

如果您选择将溢出行为设置为按需,请注意,溢出版本将单独计费,类似于按需 Amazon EC2。有关更多信息,请参阅https://www.amazonaws.cn/codebuild/pricing/

队列

构建运行将放在队列中,直到有计算机可用。这限制了额外成本,因为没有分配额外的计算机。

预留容量样品包含 Amazon CodeBuild

这些样本可用于在预留容量舰队中 CodeBuild进行实验。

使用预留容量进行缓存示例

缓存可以存储构建环境的可重用部分,并在多个构建中使用它们。此示例演示了如何使用预留容量在构建项目中启用缓存。有关更多信息,请参阅在 Amazon CodeBuild 中构建缓存

您可以先在项目设置中指定一种或多种缓存模式:

Cache: Type: LOCAL Modes: - LOCAL_CUSTOM_CACHE - LOCAL_DOCKER_LAYER_CACHE - LOCAL_SOURCE_CACHE
注意

要使用 Docker 层缓存,请务必启用特权模式。

您的项目构建规范设置应如下所示:

version: 0.2 phases: build: commands: - echo testing local source cache - touch /codebuild/cache/workspace/foobar.txt - git checkout -b cached_branch - echo testing local docker layer cache - docker run alpine:3.14 2>&1 | grep 'Pulling from' || exit 1 - echo testing local custom cache - touch foo - mkdir bar && ln -s foo bar/foo2 - mkdir bar/bar && touch bar/bar/foo3 && touch bar/bar/foo4 - "[ -f foo ] || exit 1" - "[ -L bar/foo2 ] || exit 1" - "[ -f bar/bar/foo3 ] || exit 1" - "[ -f bar/bar/foo4 ] || exit 1" cache: paths: - './foo' - './bar/**/*' - './bar/bar/foo3'

您可以先用新项目运行构建,为缓存做种子。完成后,您应该使用重写的构建规范开始另一个构建,如下所示:

version: 0.2 phases: build: commands: - echo testing local source cache - git branch | if grep 'cached_branch'; then (exit 0); else (exit 1); fi - ls /codebuild/cache/workspace | if grep 'foobar.txt'; then (exit 0); else (exit 1); fi - echo testing local docker layer cache - docker run alpine:3.14 2>&1 | if grep 'Pulling from'; then (exit 1); else (exit 0); fi - echo testing local custom cache - "[ -f foo ] || exit 1" - "[ -L bar/foo2 ] || exit 1" - "[ -f bar/bar/foo3 ] || exit 1" - "[ -f bar/bar/foo4 ] || exit 1" cache: paths: - './foo' - './bar/**/*' - './bar/bar/foo3'

预留容量实例集的局限性

在预留容量实例集不支持的某些用例中,如果它们对您产生影响,请改用按需实例集:

  • 预留容量实例集不支持批量构建、构建利用率指标或语义版本控制。

  • 预留容量实例集不支持 VPC 连接。

有关限制和限额的更多信息,请参阅计算实例集