在预留容量队列上运行构建 - AWS CodeBuild

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

在预留容量队列上运行构建

CodeBuild 提供以下计算队列:

  • 按需实例集

  • 预留容量实例集

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

注意

按需舰队不支持 macOS 或 Windows Server 2022。

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

重要

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

创建预留容量队列

按照以下说明创建预留容量队列。

创建预留容量实例集
  1. 登录 AWS Management Console 并在 https://console.aws.amazon.com/codesuite/codebuild /hom AWS CodeBuild e 中打开控制台。

  2. 在导航窗格中,选择计算队列,然后选择创建队列

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

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

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

  6. 在 “计算” 字段中,为您的计算机选择计算机类型。

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

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

  9. (可选)在其他配置中,执行以下操作:

    • VPC-可选下拉菜单中VPC,选择您的 CodeBuild 车队将访问的。

    • 子网下拉菜单中,选择 CodeBuild 应用于设置VPC配置的子网。

    • 安全组下拉菜单中,选择 CodeBuild 应用于与您的安全组配合使用的安全组VPC。

    • 在 “舰队服务角色” 字段中,选择现有的服务角色。

      注意

      确保您的舰队角色具有必要的权限。有关更多信息,请参阅 允许用户为舰队服务角色添加权限策略

    • 如果您选择了 Amazon Linux 操作系统,请选择定义代理配置(可选)以对您的预留容量实例应用网络访问控制。

    • 对于默认行为,选择默认允许或拒绝发往所有目的地的传出流量。

    • 对于代理规则,选择添加代理规则以指定目标域或IPs允许或拒绝网络访问控制。

  10. 选择创建计算实例集

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

最佳实践

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

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

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

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

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

重要

使用预留容量功能时,同一账户内的其他项目可以访问队列实例上缓存的数据,包括源文件、Docker 层和 buildspec 中指定的缓存目录。这是设计使然,允许同一账户内的项目共享队列实例。

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

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

以下地区支持预留容量 macOS 中型舰队 AWS 区域:美国东部(弗吉尼亚北部)、美国东部(俄亥俄州)、美国西部(俄勒冈)、亚太地区(悉尼)和欧洲(法兰克福)。预留容量 macOS 以下地区支持大型机群 AWS 区域:美国东部(弗吉尼亚北部)、美国东部(俄亥俄州)、美国西部(俄勒冈)和亚太地区(悉尼)。

如何配置预留容量的 macOS 队列?

配置预留容量的 macOS 队列
  1. 登录 AWS Management Console 并在 https://console.aws.amazon.com/codesuite/codebuild /hom AWS CodeBuild e 中打开控制台。

  2. 在导航窗格中,选择计算队列,然后选择创建队列

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

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

  5. 在 “计算” 字段中,选择以下计算机类型之一:Apple M2、24 GB 内存、8 vCPUsApple M2、32 GB 内存、12 vCPUs

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

  7. (可选)如果您为队列选择自定义映像,请确保您的 Amazon 系统映像 (AMI) 满足以下先决条件:

    • AMI架构为 64 位Mac-Arm

    • AMI允许 CodeBuild 服务组织ARN。有关组织的列表ARNs,请参阅Amazon Machine Images (AMI)

    • 如果使用 AWS KMS 密钥加密,AMI则该 AWS KMS 密钥还必须允许 CodeBuild 服务组织 ID。有关组织的列表IDs,请参阅Amazon Machine Images (AMI)。有关 AWS KMS 密钥的更多信息,请参阅 Amazon EC2 用户指南中的OUs允许组织和使用KMS密钥

    • 舰队服务角色字段中,授予以下 Amazon EC2 权限:

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeImages", "Resource": "*" } ] }
  8. (可选)要VPC使用您的队列配置,请在其他配置中执行以下操作:

    • VPC-可选下拉菜单中VPC,选择您的 CodeBuild 车队将访问的。

    • 子网下拉菜单中,选择 CodeBuild 应用于设置VPC配置的子网。

    • 安全组下拉菜单中,选择 CodeBuild 应用于与您的安全组配合使用的安全组VPC。

    • 舰队服务角色字段中,选择现有的服务角色。

      注意

      确保您的舰队角色具有必要的权限。有关更多信息,请参阅 允许用户为舰队服务角色添加权限策略

  9. 选择创建计算队列并等待队列实例启动。启动后,容量将是n/n,在哪里 n 是提供的容量。

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

预留容量实例集的局限性

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

  • 预留容量队列不支持批量构建或生成利用率指标。

  • 预留容量 macOS 队列不支持调试会话。

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