构建环境计算模式和类型
在 CodeBuild 中,您可以指定 CodeBuild 用于运行您的构建的计算和运行时环境映像。计算 是指由 CodeBuild 管理和维护的计算引擎(CPU、内存和操作系统)。运行时环境映像 是在您选择的计算平台上运行的容器映像,包含您的构建可能需要的额外工具,例如 Amazon CLI。
关于计算模式
CodeBuild 提供以下计算模式:
-
EC2
-
Amazon Lambda
EC2 可以提高构建过程的灵活性,而 Amazon Lambda 可以提高启动速度。由于 Amazon Lambda 启动延迟较低,因此支持更快的构建。Amazon Lambda 还可以自动扩展,因此构建无需在队列中等待运行。有关更多信息,请参阅 在 Amazon Lambda 计算上运行构建。
关于环境类型
Amazon CodeBuild 为构建环境提供了以下可用内存、vCPU 和磁盘空间来运行 EC2 计算模式:
计算类型 | 环境 computeType 值 | 环境类型值 | 内存 | vCPU | 磁盘空间 |
---|---|---|---|---|---|
ARM Small ¹ | BUILD_GENERAL1_SMALL |
ARM_CONTAINER |
4 GB | 2 | 64 GB |
ARM Medium ¹ | BUILD_GENERAL1_MEDIUM |
ARM_CONTAINER |
8 GB | 4 | 128 GB |
ARM Large ¹ | BUILD_GENERAL1_LARGE |
ARM_CONTAINER |
16 GB | 8 | 128 GB |
ARM XLarge ¹ | BUILD_GENERAL1_XLARGE |
ARM_CONTAINER |
64 GB | 32 | 256GB |
ARM 2XLarge ¹ | BUILD_GENERAL1_2XLARGE |
ARM_CONTAINER |
96 GB | 48 | 824 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 |
macOS Medium | BUILD_GENERAL1_MEDIUM |
MAC_ARM |
24 GB | 8 | 128 GB |
macOS Large | BUILD_GENERAL1_LARGE |
MAC_ARM |
32 GB | 12 | 256GB |
Windows Medium ¹ | BUILD_GENERAL1_MEDIUM |
WINDOWS_SERVER_2019_CONTAINER |
7 GB | 4 | 128 GB |
Windows Large ¹ | BUILD_GENERAL1_LARGE |
WINDOWS_SERVER_2019_CONTAINER |
15 GB | 8 | 128 GB |
¹缓存该映像类型的最新版本。如果您指定了更具体的版本,则 CodeBuild 会预置该版本,而不是缓存版本。这可能会导致构建时间更长。例如,要受益于缓存,请指定 aws/codebuild/amazonlinux2-x86_64-standard:5.0
而不是更精细的版本,例如 aws/codebuild/amazonlinux2-x86_64-standard:5.0-1.0.0
。
Amazon CodeBuild 为构建环境提供了以下可用内存和磁盘空间来运行 Amazon Lambda 计算模式:
计算类型 | 环境 computeType 值 | 环境类型值 | 内存 | 磁盘空间 |
---|---|---|---|---|
ARM Lambda 1GB | BUILD_LAMBDA_1GB |
ARM_LAMBDA_CONTAINER |
1 GB | 10 GB |
ARM Lambda 2GB | BUILD_LAMBDA_2GB |
ARM_LAMBDA_CONTAINER |
2 GB | 10 GB |
ARM Lambda 4GB | BUILD_LAMBDA_4GB |
ARM_LAMBDA_CONTAINER |
4 GB | 10 GB |
ARM Lambda 8GB | BUILD_LAMBDA_8GB |
ARM_LAMBDA_CONTAINER |
8 GB | 10 GB |
ARM Lambda 10GB | BUILD_LAMBDA_10GB |
ARM_LAMBDA_CONTAINER |
10 GB | 10 GB |
Linux Lambda 1GB | BUILD_LAMBDA_1GB |
LINUX_LAMBDA_CONTAINER |
1 GB | 10 GB |
Linux Lambda 2GB | BUILD_LAMBDA_2GB |
LINUX_LAMBDA_CONTAINER |
2 GB | 10 GB |
Linux Lambda 4GB | BUILD_LAMBDA_4GB |
LINUX_LAMBDA_CONTAINER |
4 GB | 10 GB |
Linux Lambda 8GB | BUILD_LAMBDA_8GB |
LINUX_LAMBDA_CONTAINER |
8 GB | 10 GB |
Linux Lambda 10GB | BUILD_LAMBDA_10GB |
LINUX_LAMBDA_CONTAINER |
10 GB | 10 GB |
使用其他环境类型时,建议您使用缓存的映像来缩短构建时间。
为每个构建环境列出的磁盘空间仅在 CODEBUILD_SRC_DIR
环境变量指定的目录中可用。
选择计算类型:
-
在 CodeBuild 控制台中,在创建构建项目向导或编辑构建项目页面的环境中展开其他配置,然后从计算类型中选择一个选项。有关更多信息,请参阅创建构建项目(控制台)或更改构建项目的设置(控制台)。
-
对于 Amazon CLI,请运行
create-project
或update-project
命令,指定environment
对象的computeType
值。有关更多信息,请参阅创建构建项目 (Amazon CLI) 或更改构建项目的设置 (Amazon CLI)。 -
对于 Amazon 开发工具包,请为您的目标编程语言调用等效于
CreateProject
或UpdateProject
的操作,指定environment
对象的computeType
等效值。有关更多信息,请参阅Amazon 开发工具包和工具参考。
某些环境和计算类型存在区域可用性限制:
-
计算类型 Linux GPU 小型 (
LINUX_GPU_CONTAINER
) 仅在以下区域可用:-
美国东部(弗吉尼亚州北部)
-
美国西部(俄勒冈)
-
Asia Pacific (Tokyo)
-
加拿大(中部)
-
欧洲地区(法兰克福)
-
欧洲地区(爱尔兰)
-
欧洲地区(伦敦)
-
-
计算类型 Linux GPU 大型 (
LINUX_GPU_CONTAINER
) 仅在以下区域可用:-
美国东部(俄亥俄)
-
美国东部(弗吉尼亚州北部)
-
美国西部(俄勒冈州)
-
亚太地区(首尔)
-
亚太地区(新加坡)
-
亚太地区(悉尼)
-
亚太地区(东京)
-
加拿大(中部)
-
中国(北京)
-
中国(宁夏)
-
欧洲地区(法兰克福)
-
欧洲地区(爱尔兰)
-
欧洲地区(伦敦)
-
-
环境类型
ARM_CONTAINER
仅在以下区域可用:-
美国东部(俄亥俄)
-
美国东部(弗吉尼亚州北部)
-
美国西部(加利福尼亚北部)
-
美国西部(俄勒冈)
-
亚太地区(香港)
-
亚太地区(雅加达)
-
亚太地区(海得拉巴)
-
亚太地区(孟买)
-
亚太地区(大阪)
-
亚太地区(首尔)
-
亚太地区(新加坡)
-
亚太地区(悉尼)
-
亚太地区(东京)
-
加拿大(中部)
-
中国(北京)
-
中国(宁夏)
-
欧洲地区(法兰克福)
-
欧洲地区(爱尔兰)
-
欧洲地区(伦敦)
-
欧洲地区(米兰)
-
欧洲地区(巴黎)
-
欧洲(西班牙)
-
欧洲地区(斯德哥尔摩)
-
以色列(特拉维夫)
-
中东(巴林)
-
中东(阿联酋)
-
南美洲(圣保罗)
-
-
计算类型
BUILD_GENERAL1_2XLARGE
仅在以下区域可用:-
美国东部(俄亥俄)
-
美国东部(弗吉尼亚州北部)
-
美国西部(加利福尼亚北部)
-
美国西部(俄勒冈)
-
亚太地区(海得拉巴)
-
亚太地区(香港)
-
亚太地区(雅加达)
-
亚太地区(墨尔本)
-
亚太地区(孟买)
-
亚太地区(首尔)
-
亚太地区(新加坡)
-
亚太地区(悉尼)
-
亚太地区(东京)
-
加拿大(中部)
-
中国(北京)
-
中国(宁夏)
-
欧洲地区(法兰克福)
-
欧洲地区(爱尔兰)
-
欧洲地区(伦敦)
-
Europe (Paris)
-
欧洲(西班牙)
-
欧洲地区(斯德哥尔摩)
-
欧洲(苏黎世)
-
以色列(特拉维夫)
-
中东(巴林)
-
中东(阿联酋)
-
南美洲(圣保罗)
-
-
计算模式 Amazon Lambda(
ARM_LAMBDA_CONTAINER
和LINUX_LAMBDA_CONTAINER
)仅在以下区域可用:-
美国东部(弗吉尼亚州北部)
-
美国东部(俄亥俄州)
-
美国西部(俄勒冈州)
-
亚太地区(孟买)
-
亚太地区(新加坡)
-
亚太地区(悉尼)
-
亚太地区(东京)
-
欧洲地区(法兰克福)
-
欧洲地区(爱尔兰)
-
南美洲(圣保罗)
-
-
计算模式
MAC_ARM
仅在以下区域可用:-
美国东部(弗吉尼亚州北部)
-
美国东部(俄亥俄州)
-
美国西部(俄勒冈州)
-
亚太地区(悉尼)
-
欧洲地区(法兰克福)
-
对于计算类型 BUILD_GENERAL1_2XLARGE
,支持高达 100 GB 的未压缩 Docker 映像。
注意
对于自定义构建环境映像,CodeBuild 在 Linux 和 Windows 中支持高达 50 GB 的未压缩的 Docker 映像,无论计算类型如何。要检查构建映像的大小,请使用 Docker 运行 docker images
命令。REPOSITORY
:TAG
您可以使用 Amazon EFS 在构建容器中访问更多空间。有关更多信息,请参阅适用于 Amazon CodeBuild 的 Amazon Elastic File System 示例。如果您希望在构建期间操作容器磁盘空间,则构建必须运行在特权模式下。
注意
默认情况下,为非 VPC 构建启用 Docker 进程守护程序。如果您想使用 Docker 容器进行 VPC 构建,请参阅 Docker 文档网站上的运行时权限和 Linux 功能