No CodeBuild, é possível especificar a imagem do ambiente de computação e runtime que o CodeBuild usa para executar as compilações. Computação refere-se ao mecanismo de computação (CPU, memória e sistema operacional) gerenciado e mantido pelo CodeBuild. Uma imagem de ambiente de runtime é uma imagem de contêiner executada na plataforma de computação escolhida e inclui ferramentas extras de que sua compilação pode precisar, como a AWS CLI.
Sobre os modos de computação
O CodeBuild oferece os seguintes modos de computação:
-
EC2
-
AWS Lambda
O EC2 oferece flexibilidade otimizada durante sua compilação e o AWS Lambda oferece velocidades de inicialização otimizadas. O AWS Lambda é compatível com compilações mais rápidas devido a uma menor latência de inicialização. O AWS Lambda também é escalado automaticamente, para que as compilações não fiquem esperando na fila para serem executadas. Para obter mais informações, consulte Execute compilações na computação do AWS Lambda.
Sobre tipos de ambiente
O AWS CodeBuild oferece ambientes de compilação com a seguinte memória disponível, vCPUs e espaço em disco para o modo de computação do EC2:
Tipo de computação | Valor computeType do ambiente | Valor de tipo do ambiente | Memória | vCPUs | Espaço em disco |
---|---|---|---|---|---|
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 | 256 GB |
ARM 2XLarge ¹ | BUILD_GENERAL1_2XLARGE |
ARM_CONTAINER |
96 GB | 48 | 824 GB |
Linux Small ¹ | BUILD_GENERAL1_SMALL |
LINUX_CONTAINER |
3 GB | 2 | 64 GB |
Linux Medium ¹ | BUILD_GENERAL1_MEDIUM |
LINUX_CONTAINER |
7 GB | 4 | 128 GB |
Linux Large ¹ | BUILD_GENERAL1_LARGE |
LINUX_CONTAINER |
15 GB | 8 | 128 GB |
Linux XLarge ¹ | BUILD_GENERAL1_XLARGE |
LINUX_CONTAINER |
70 GB | 36 | 256 GB |
Linux 2XLarge | BUILD_GENERAL1_2XLARGE |
LINUX_CONTAINER |
145 GB | 72 | 824 GB (SSD) |
Linux GPU Small | BUILD_GENERAL1_SMALL |
LINUX_GPU_CONTAINER |
16 GB | 4 | 220 GB |
Linux GPU Large | 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 | 256 GB |
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 |
¹ A versão mais recente desse tipo de imagem é armazenada em cache. Se você especificar uma versão mais específica, o CodeBuild provisionará essa versão em vez da versão armazenada em cache. Isso pode resultar em tempos de compilação mais longos. Por exemplo, para se beneficiar do cache, especifique aws/codebuild/amazonlinux2-x86_64-standard:5.0
em vez de uma versão mais granular, como aws/codebuild/amazonlinux2-x86_64-standard:5.0-1.0.0
.
O AWS CodeBuild oferece ambientes de compilação com a seguinte memória disponível e espaço em disco para o modo de computação do AWS Lambda:
Tipo de computação | Valor computeType do ambiente | Valor de tipo do ambiente | Memória | Espaço em disco |
---|---|---|---|---|
ARM Lambda de 1 GB | BUILD_LAMBDA_1GB |
ARM_LAMBDA_CONTAINER |
1 GB | 10 GB |
ARM Lambda de 2 GB | BUILD_LAMBDA_2GB |
ARM_LAMBDA_CONTAINER |
2 GB | 10 GB |
ARM Lambda de 4 GB | BUILD_LAMBDA_4GB |
ARM_LAMBDA_CONTAINER |
4 GB | 10 GB |
ARM Lambda de 8 GB | BUILD_LAMBDA_8GB |
ARM_LAMBDA_CONTAINER |
8 GB | 10 GB |
ARM Lambda de 10 GB | BUILD_LAMBDA_10GB |
ARM_LAMBDA_CONTAINER |
10 GB | 10 GB |
Linux Lambda de 1 GB | BUILD_LAMBDA_1GB |
LINUX_LAMBDA_CONTAINER |
1 GB | 10 GB |
Linux Lambda de 2 GB | BUILD_LAMBDA_2GB |
LINUX_LAMBDA_CONTAINER |
2 GB | 10 GB |
Linux Lambda de 4 GB | BUILD_LAMBDA_4GB |
LINUX_LAMBDA_CONTAINER |
4 GB | 10 GB |
Linux Lambda de 8 GB | BUILD_LAMBDA_8GB |
LINUX_LAMBDA_CONTAINER |
8 GB | 10 GB |
Linux Lambda de 10 GB | BUILD_LAMBDA_10GB |
LINUX_LAMBDA_CONTAINER |
10 GB | 10 GB |
Ao usar outros tipos de ambiente, é recomendável usar uma imagem em cache para reduzir os tempos de compilação.
O espaço em disco listado para cada ambiente de compilação está disponível somente no diretório especificado pela variável de ambiente CODEBUILD_SRC_DIR
.
Para escolher um tipo de computação:
-
No console do CodeBuild, no assistente Criar projeto de compilação ou na página Editar projeto de compilação, em Ambiente, expanda Configuração adicional e selecione uma das opções em Tipo de computação. Para obter mais informações, consulte Criar um projeto de compilação (console) ou Alterar configurações de um projeto de compilação (console).
-
Para a AWS CLI, execute o comando
create-project
ouupdate-project
, especificando o valorcomputeType
do objetoenvironment
. Para obter mais informações, consulte Criar um projeto de compilação (AWS CLI) ou Alterar configurações de um projeto de compilação (AWS CLI). -
Para os SDKs da AWS, chame o equivalente da operação
CreateProject
ouUpdateProject
para sua linguagem de programação, especificando o equivalente do valorcomputeType
do objetoenvironment
. Para obter mais informações, consulte Referência de SDKs e ferramentas da AWS.
Alguns tipos de ambiente e computação têm limitações de disponibilidade de região:
-
O tipo de computação Linux GPU Small (
LINUX_GPU_CONTAINER
) só está disponível nas seguintes regiões:-
Leste dos EUA (N. da Virgínia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Tóquio)
-
Canadá (Central)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Londres)
-
-
O tipo de computação Linux GPU Large (
LINUX_GPU_CONTAINER
) só está disponível nas seguintes regiões:-
Leste dos EUA (Ohio)
-
Leste dos EUA (N. da Virgínia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Seul)
-
Ásia-Pacífico (Singapura)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Canadá (Central)
-
China (Pequim)
-
China (Ningxia)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Londres)
-
-
O modo de ambiente
ARM_CONTAINER
só está disponível nas seguintes regiões:-
Leste dos EUA (Ohio)
-
Leste dos EUA (N. da Virgínia)
-
Oeste dos EUA (N. da Califórnia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Hong Kong)
-
Ásia-Pacífico (Jacarta)
-
Ásia-Pacífico (Hyderabad)
-
Ásia-Pacífico (Mumbai)
-
Ásia-Pacífico (Osaka)
-
Ásia-Pacífico (Seul)
-
Ásia-Pacífico (Singapura)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Canadá (Central)
-
China (Pequim)
-
China (Ningxia)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Londres)
-
Europa (Milão)
-
Europa (Paris)
-
Europa (Espanha)
-
Europa (Estocolmo)
-
Israel (Tel Aviv)
-
Oriente Médio (Bahrein)
-
Oriente Médio (Emirados Árabes Unidos)
-
América do Sul (São Paulo)
-
-
O modo de computação
BUILD_GENERAL1_2XLARGE
só está disponível nas seguintes regiões:-
Leste dos EUA (Ohio)
-
Leste dos EUA (N. da Virgínia)
-
Oeste dos EUA (N. da Califórnia)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Hyderabad)
-
Ásia-Pacífico (Hong Kong)
-
Ásia-Pacífico (Jacarta)
-
Ásia-Pacífico (Melbourne)
-
Ásia-Pacífico (Mumbai)
-
Ásia-Pacífico (Seul)
-
Ásia-Pacífico (Singapura)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Canadá (Central)
-
China (Pequim)
-
China (Ningxia)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
Europa (Londres)
-
Europa (Paris)
-
Europa (Espanha)
-
Europa (Estocolmo)
-
Europa (Zurique)
-
Israel (Tel Aviv)
-
Oriente Médio (Bahrein)
-
Oriente Médio (Emirados Árabes Unidos)
-
América do Sul (São Paulo)
-
-
O modo de computação AWS Lambda (
ARM_LAMBDA_CONTAINER
eLINUX_LAMBDA_CONTAINER
) só está disponível nas seguintes regiões:-
Leste dos EUA (N. da Virgínia)
-
Leste dos EUA (Ohio)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Mumbai)
-
Ásia-Pacífico (Singapura)
-
Ásia-Pacífico (Sydney)
-
Ásia-Pacífico (Tóquio)
-
Europa (Frankfurt)
-
Europa (Irlanda)
-
América do Sul (São Paulo)
-
-
O modo de computação
MAC_ARM
só está disponível nas seguintes regiões:-
Leste dos EUA (N. da Virgínia)
-
Leste dos EUA (Ohio)
-
Oeste dos EUA (Oregon)
-
Ásia-Pacífico (Sydney)
-
Europa (Frankfurt)
-
Para o tipo de computação BUILD_GENERAL1_2XLARGE
, há suporte para imagens de Docker de até 100 GB descompactadas.
nota
Para imagens de ambiente de compilação personalizadas, o CodeBuild é compatível com imagens do Docker de até 50 GB descompactadas em Linux e Windows, independentemente do tipo de computação. Para verificar o tamanho da imagem da compilação, use o Docker para executar o comando docker images
.REPOSITORY
:TAG
É possível usar o Amazon EFS para acessar mais espaço no contêiner de compilação. Para obter mais informações, consulte Exemplo do Amazon Elastic File System para o AWS CodeBuild. Se você deseja manipular espaço em disco do contêiner durante uma compilação, a compilação deverá ser executada no modo privilegiado.
nota
Por padrão, o daemon do Docker está habilitado para compilações não VPC. Se você quiser usar contêineres do Docker para compilações da VPC, consulte Privilégio de tempo de execução e funcionalidades do Linux