

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Criar um projeto de compilação no AWS CodeBuild
<a name="create-project"></a>

É possível usar o console do AWS CodeBuild, a AWS CLI ou os AWS SDKs para criar um projeto de compilação.

**Topics**
+ [

## Pré-requisitos
](#create-project-prerequisites)
+ [

## Criar um projeto de compilação (console)
](#create-project-console)
+ [

## Crie um projeto de compilação (AWS CLI)
](#create-project-cli)
+ [

## Criar um projeto de compilação (AWS SDKs)
](#create-project-sdks)
+ [

## Crie um projeto de compilação (CloudFormation)
](#create-project-cloud-formation)

## Pré-requisitos
<a name="create-project-prerequisites"></a>

Antes de criar um projeto de compilação, responda às perguntas em [Planejar uma compilação](planning.md).

## Criar um projeto de compilação (console)
<a name="create-project-console"></a>

Abra o console do AWS CodeBuild em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

 Se uma página de informações do CodeBuild for exibida, selecione **Criar projeto de compilação**. Caso contrário, no painel de navegação, expanda **Compilar**, escolha **Projetos de compilação** e, depois, **Criar projeto de compilação**. 

Selecione **Create build project (Criar projeto de compilação)**. 

Preencha as seções a seguir. Depois de concluir, escolha **Criar projeto de compilação** na parte inferior da página.

**Topics**
+ [

### Configuração de projetos
](#create-project-console-project-config)
+ [

### Origem
](#create-project-console-source)
+ [

### Environment
](#create-project-console-environment)
+ [

### Buildspec
](#create-project-console-buildspec)
+ [

### Configuração em lote
](#create-project-console-batch-config)
+ [

### Artefatos
](#create-project-console-artifacts)
+ [

### Logs
](#create-project-console-logs)

### Configuração de projetos
<a name="create-project-console-project-config"></a>

**Nome do projeto**  
Insira um nome para esse projeto de compilação. Os nomes de projeto de build devem ser únicos em cada conta AWS. 

**Descrição**  
Insira uma descrição opcional do projeto de compilação para ajudar outros usuários a entender para que esse projeto é usado.

**Emblema da compilação**  
Selecione **Habilitar emblema da compilação** para que o status de compilação do projeto fique visível e possa ser incorporado. Para obter mais informações, consulte [Exemplo de emblemas de compilação](sample-build-badges.md).  
O emblema de compilação não se aplicará se o provedor de origem for Amazon S3. 

**Habilitar limite de compilações simultâneas**  <a name="enable-concurrent-build-limit.console"></a>
(Opcional) Se você quiser limitar o número de compilações simultâneas para esse projeto, execute as seguintes etapas:  

1. Selecione **Restringir número de compilações simultâneas que este projeto pode iniciar**.

1. Em **Limite de compilações simultâneas**, insira o número máximo de compilações simultâneas permitidas para esse projeto. Esse limite não pode ser maior que o limite de compilações simultâneas definido para a conta. Se você tentar inserir um número maior que o limite da conta, uma mensagem de erro será exibida.
Novas compilações só são iniciadas se o número atual de compilações for menor ou igual a esse limite. Se a contagem de compilações atual atender a esse limite, novas compilações serão limitadas e não serão executadas.

**Mais informações**  
(Opcional) Em **Tags**, insira o nome e o valor das tags que os serviços da AWS com suporte deverão usar. Use **Adicionar linha** para adicionar uma tag. É possível adicionar até 50 tags. 

### Origem
<a name="create-project-console-source"></a>

**Provedor de origem**  
Escolha o tipo de provedor do código-fonte. Use as seguintes listas para fazer seleções adequadas ao provedor de origem:  
O CodeBuild não é compatível com o Bitbucket Server.

------
#### [ Amazon S3 ]

 **Bucket**   
Escolha o nome do bucket de entrada que contém o código-fonte. 

 **Chave de objeto do S3 ou pasta do S3**   
Insira o nome do arquivo ZIP ou o caminho na pasta que contém o código-fonte. Insira uma barra (/) para fazer download de tudo no bucket do S3. 

 **Versão de origem**   
Insira o ID da versão do objeto que representa a compilação do arquivo de entrada. Para obter mais informações, consulte [Amostra da versão de origem com AWS CodeBuild](sample-source-version.md). 

------
#### [ CodeCommit ]

 **Repositório**   
Selecione o repositório que deseja usar.

**Tipo de referência**  
Selecione **Ramificação**, **Tag do Git** ou **ID de confirmação** para especificar a versão do código-fonte. Para obter mais informações, consulte [Amostra da versão de origem com AWS CodeBuild](sample-source-version.md).  
Recomendamos escolher nomes de ramificações do Git que não se pareçam com IDs de confirmação, como `811dd1ba1aba14473856cee38308caed7190c0d` ou `5392f7`. Isso ajuda você a evitar colisões de checkout do Git com confirmações reais.

 **Profundidade do clone do Git**   
Escolha para criar um clone superficial com um histórico truncado para o número especificado de confirmações. Se quiser um clone completo, escolha **Full**. 

**Submódulos do Git**  
Selecione **Use Git submodules (Usar submódulos Git)** se quiser incluir submódulos Git em seu repositório. 

------
#### [ Bitbucket ]

 **Credencial**   
Escolha **Credencial de origem padrão** ou **Credencial de origem personalizada** e siga as instruções para gerenciar a credencial de origem padrão ou personalizar a credencial de origem.

 **Tipo de conexão**   
Escolha **CodeConnections**, **OAuth**, **Senha da aplicação** ou **Token de acesso pessoal** para se conectar ao CodeBuild.

 **Conexão**   
Selecione uma conexão do Bitbucket ou um segredo do Secrets Manager para se conectar por meio do tipo de conexão especificado.

 **Repositório**   
Escolha **Repositório na minha conta Bitbucket** ou **repositório público** e insira o URL do repositório.

 **Versão de origem**   
Insira uma ramificação, um ID de confirmação, uma tag ou uma referência e um ID de confirmação. Para obter mais informações, consulte . [Amostra da versão de origem com AWS CodeBuild](sample-source-version.md)   
Recomendamos escolher nomes de ramificações do Git que não se pareçam com IDs de confirmação, como `811dd1ba1aba14473856cee38308caed7190c0d` ou `5392f7`. Isso ajuda você a evitar colisões de checkout do Git com confirmações reais.

 **Profundidade do clone do Git**   
Escolha **Git clone depth (Profundidade de clone Git)** para criar um clone superficial com um histórico truncado para o número especificado de confirmações. Se quiser um clone completo, escolha **Full**. 

**Submódulos do Git**  
Selecione **Use Git submodules (Usar submódulos Git)** se quiser incluir submódulos Git em seu repositório. 

**Status da compilação**  
Selecione **Relatar status de compilação ao provedor de origem quando as compilações iniciarem e terminarem** se quiser relatar os status de início e conclusão da compilação ao provedor de origem.   
Para poder relatar o status da compilação ao provedor de origem, o usuário associado ao provedor de origem deve ter acesso de gravação ao repositório. Se o usuário não tiver acesso de gravação, o status de compilação não poderá ser atualizado. Para obter mais informações, consulte [Acesso do provedor de origem](access-tokens.md).  
Em **Contexto de status**, insira o valor a ser usado para o parâmetro `name` no status de confirmação do Bitbucket. Para obter mais informações, consulte [compilação](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) na documentação da API do Bitbucket.  
Em **URL de destino**, insira o valor a ser usado para o parâmetro `url` no status de confirmação do Bitbucket. Para obter mais informações, consulte [compilação](https://developer.atlassian.com/bitbucket/api/2/reference/resource/repositories/%7Bworkspace%7D/%7Brepo_slug%7D/commit/%7Bnode%7D/statuses/build) na documentação da API do Bitbucket.  
O status de uma compilação acionada por um webhook sempre é relatado ao provedor de origem. Para que o status de uma compilação iniciada no console ou de uma chamada de API seja comunicado ao provedor de origem, é necessário selecionar essa configuração.  
Se as compilações do projeto forem acionadas por um webhook, será necessário enviar uma nova confirmação ao repositório para que uma alteração nessa configuração entre em vigor.

Em **Eventos de webhook da origem principal**, selecione **Compilar novamente sempre que uma alteração do código for enviada a esse repositório** se quiser que o CodeBuild compile o código-fonte sempre que uma alteração de código for enviada a esse repositório. Para obter mais informações sobre webhooks e grupos de filtros, consulte [Filtrar eventos de webhook do Bitbucket](bitbucket-webhook.md).

------
#### [ GitHub ]

 **Credencial**   
Escolha **Credencial de origem padrão** ou **Credencial de origem personalizada** e siga as instruções para gerenciar a credencial de origem padrão ou personalizar a credencial de origem.

 **Tipo de conexão**   
Escolha a **Aplicação GitHub**, **OAuth** ou **Token de acesso pessoal** para se conectar ao CodeBuild.

 **Conexão**   
Selecione uma conexão do GitHub ou um segredo do Secrets Manager para se conectar por meio do tipo de conexão especificado.

 **Repositório**   
Escolha **Repositório na minha conta do GitHub**, **repositório público** ou **Webhook com escopo do GitHub** e insira o URL do repositório.

 **Versão de origem**   
Insira uma ramificação, um ID de confirmação, uma tag ou uma referência e um ID de confirmação. Para obter mais informações, consulte . [Amostra da versão de origem com AWS CodeBuild](sample-source-version.md)   
Recomendamos escolher nomes de ramificações do Git que não se pareçam com IDs de confirmação, como `811dd1ba1aba14473856cee38308caed7190c0d` ou `5392f7`. Isso ajuda você a evitar colisões de checkout do Git com confirmações reais.

 **Profundidade do clone do Git**   
Escolha **Git clone depth (Profundidade de clone Git)** para criar um clone superficial com um histórico truncado para o número especificado de confirmações. Se quiser um clone completo, escolha **Full**. 

**Submódulos do Git**  
Selecione **Use Git submodules (Usar submódulos Git)** se quiser incluir submódulos Git em seu repositório. 

**Status da compilação**  
Selecione **Relatar status de compilação ao provedor de origem quando as compilações iniciarem e terminarem** se quiser relatar os status de início e conclusão da compilação ao provedor de origem.   
Para poder relatar o status da compilação ao provedor de origem, o usuário associado ao provedor de origem deve ter acesso de gravação ao repositório. Se o usuário não tiver acesso de gravação, o status de compilação não poderá ser atualizado. Para obter mais informações, consulte [Acesso do provedor de origem](access-tokens.md).  
Em **Contexto de status**, insira o valor a ser usado para o parâmetro `context` no status de confirmação do GitHub. Para obter mais informações, consulte [Criar um status de confirmação](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) no guia do desenvolvedor do GitHub.  
Em **URL de destino**, insira o valor a ser usado para o parâmetro `target_url` no status de confirmação do GitHub. Para obter mais informações, consulte [Criar um status de confirmação](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) no guia do desenvolvedor do GitHub.  
O status de uma compilação acionada por um webhook sempre é relatado ao provedor de origem. Para que o status de uma compilação iniciada no console ou de uma chamada de API seja comunicado ao provedor de origem, é necessário selecionar essa configuração.  
Se as compilações do projeto forem acionadas por um webhook, será necessário enviar uma nova confirmação ao repositório para que uma alteração nessa configuração entre em vigor.

Em **Eventos de webhook da origem principal**, selecione **Compilar novamente sempre que uma alteração do código for enviada a esse repositório** se quiser que o CodeBuild compile o código-fonte sempre que uma alteração de código for enviada a esse repositório. Para obter mais informações sobre webhooks e grupos de filtros, consulte [GitHub eventos de webhook](github-webhook.md).

------
#### [ GitHub Enterprise Server ]

 **Credencial**   
Escolha **Credencial de origem padrão** ou **Credencial de origem personalizada** e siga as instruções para gerenciar a credencial de origem padrão ou personalizar a credencial de origem.

 **Tipo de conexão**   
Escolha **CodeConnections** ou **Token de acesso pessoal** para se conectar ao CodeBuild.

 **Conexão**   
Selecione uma conexão do GitHub Enterprise ou um segredo do Secrets Manager para se conectar por meio do tipo de conexão especificado.

 **Repositório**   
Escolha **Repositório na minha conta do GitHub Enterprise** ou **Webhook com escopo do GitHub Enterprise** e insira o URL do repositório.

**Versão de origem**  
Insira uma solicitação pull, uma ramificação, um ID de confirmação, uma tag ou uma referência e um ID de confirmação. Para obter mais informações, consulte [Amostra da versão de origem com AWS CodeBuild](sample-source-version.md).   
Recomendamos escolher nomes de ramificações do Git que não se pareçam com IDs de confirmação, como `811dd1ba1aba14473856cee38308caed7190c0d` ou `5392f7`. Isso ajuda você a evitar colisões de checkout do Git com confirmações reais.

**Profundidade do clone do Git**  
Escolha **Git clone depth (Profundidade de clone Git)** para criar um clone superficial com um histórico truncado para o número especificado de confirmações. Se quiser um clone completo, escolha **Full**. 

**Submódulos do Git**  
Selecione **Use Git submodules (Usar submódulos Git)** se quiser incluir submódulos Git em seu repositório. 

**Status da compilação**  
Selecione **Relatar status de compilação ao provedor de origem quando as compilações iniciarem e terminarem** se quiser relatar os status de início e conclusão da compilação ao provedor de origem.   
Para poder relatar o status da compilação ao provedor de origem, o usuário associado ao provedor de origem deve ter acesso de gravação ao repositório. Se o usuário não tiver acesso de gravação, o status de compilação não poderá ser atualizado. Para obter mais informações, consulte [Acesso do provedor de origem](access-tokens.md).  
Em **Contexto de status**, insira o valor a ser usado para o parâmetro `context` no status de confirmação do GitHub. Para obter mais informações, consulte [Criar um status de confirmação](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) no guia do desenvolvedor do GitHub.  
Em **URL de destino**, insira o valor a ser usado para o parâmetro `target_url` no status de confirmação do GitHub. Para obter mais informações, consulte [Criar um status de confirmação](https://developer.github.com/v3/repos/statuses/#create-a-commit-status) no guia do desenvolvedor do GitHub.  
O status de uma compilação acionada por um webhook sempre é relatado ao provedor de origem. Para que o status de uma compilação iniciada no console ou de uma chamada de API seja comunicado ao provedor de origem, é necessário selecionar essa configuração.  
Se as compilações do projeto forem acionadas por um webhook, será necessário enviar uma nova confirmação ao repositório para que uma alteração nessa configuração entre em vigor.

**SSL inseguro**  
Selecione **Enable insecure SSL** para ignorar os avisos do SSL ao conectar-se ao seu repositório do projeto do GitHub Enterprise. 

Em **Eventos de webhook da origem principal**, selecione **Compilar novamente sempre que uma alteração do código for enviada a esse repositório** se quiser que o CodeBuild compile o código-fonte sempre que uma alteração de código for enviada a esse repositório. Para obter mais informações sobre webhooks e grupos de filtros, consulte [GitHub eventos de webhook](github-webhook.md).

------
#### [ GitLab ]

 **Credencial**   
Escolha **Credencial de origem padrão** ou **Credencial de origem personalizada** e siga as instruções para gerenciar a credencial de origem padrão ou personalizar a credencial de origem.

 **Tipo de conexão**   
O **CodeConnections** é usado para conectar o GitLab ao CodeBuild.

 **Conexão**   
Selecione uma conexão do GitLab para se conectar por meio do CodeConnections.

 **Repositório**   
Selecione o repositório que deseja usar.

 **Versão de origem**   
Insira um ID de solicitação pull, uma ramificação, um ID de confirmação, uma tag ou uma referência e um ID de confirmação. Para obter mais informações, consulte [Amostra da versão de origem com AWS CodeBuild](sample-source-version.md).   
Recomendamos escolher nomes de ramificações do Git que não se pareçam com IDs de confirmação, como `811dd1ba1aba14473856cee38308caed7190c0d` ou `5392f7`. Isso ajuda você a evitar colisões de checkout do Git com confirmações reais.

 **Profundidade do clone do Git**   
Escolha **Git clone depth (Profundidade de clone Git)** para criar um clone superficial com um histórico truncado para o número especificado de confirmações. Se quiser um clone completo, escolha **Full**. 

**Status da compilação**  
Selecione **Relatar status de compilação ao provedor de origem quando as compilações iniciarem e terminarem** se quiser relatar os status de início e conclusão da compilação ao provedor de origem.   
Para poder relatar o status da compilação ao provedor de origem, o usuário associado ao provedor de origem deve ter acesso de gravação ao repositório. Se o usuário não tiver acesso de gravação, o status de compilação não poderá ser atualizado. Para obter mais informações, consulte [Acesso do provedor de origem](access-tokens.md).

------
#### [ GitLab Self Managed ]

 **Credencial**   
Escolha **Credencial de origem padrão** ou **Credencial de origem personalizada** e siga as instruções para gerenciar a credencial de origem padrão ou personalizar a credencial de origem.

 **Tipo de conexão**   
O **CodeConnections** é usado para conectar o GitLab Self Managed ao CodeBuild.

 **Conexão**   
Selecione uma conexão do GitLab Self Managed para se conectar por meio do CodeConnections.

 **Repositório**   
Selecione o repositório que deseja usar.

 **Versão de origem**   
Insira um ID de solicitação pull, uma ramificação, um ID de confirmação, uma tag ou uma referência e um ID de confirmação. Para obter mais informações, consulte [Amostra da versão de origem com AWS CodeBuild](sample-source-version.md).   
Recomendamos escolher nomes de ramificações do Git que não se pareçam com IDs de confirmação, como `811dd1ba1aba14473856cee38308caed7190c0d` ou `5392f7`. Isso ajuda você a evitar colisões de checkout do Git com confirmações reais.

 **Profundidade do clone do Git**   
Escolha **Git clone depth (Profundidade de clone Git)** para criar um clone superficial com um histórico truncado para o número especificado de confirmações. Se quiser um clone completo, escolha **Full**. 

**Status da compilação**  
Selecione **Relatar status de compilação ao provedor de origem quando as compilações iniciarem e terminarem** se quiser relatar os status de início e conclusão da compilação ao provedor de origem.   
Para poder relatar o status da compilação ao provedor de origem, o usuário associado ao provedor de origem deve ter acesso de gravação ao repositório. Se o usuário não tiver acesso de gravação, o status de compilação não poderá ser atualizado. Para obter mais informações, consulte [Acesso do provedor de origem](access-tokens.md).

------

### Environment
<a name="create-project-console-environment"></a>

**Modelo de provisionamento**  
Execute um destes procedimentos:  
+ Para usar frotas sob demanda gerenciadas pelo AWS CodeBuild, escolha **Sob demanda**. Com as frotas sob demanda, o CodeBuild fornece computação para suas compilações. As máquinas são destruídas quando a compilação termina. As frotas sob demanda são totalmente gerenciadas e incluem recursos de escalabilidade automática para lidar com picos de demanda.
+ Para usar frotas de capacidade reservada gerenciadas pelo AWS CodeBuild, escolha **Capacidade reservada** e selecione o **Nome da frota**. Com frotas de capacidade reservada, você configura um conjunto de instâncias dedicadas para seu ambiente de compilação. Essas máquinas permanecem ociosas, prontas para processar compilações ou testes imediatamente e reduzem a duração da compilação. Com frotas de capacidade reservada, suas máquinas estão sempre funcionando e continuarão a incorrer em custos enquanto forem provisionadas.
Para mais informações, consulte [Executar compilações em frotas de capacidade reservada](fleets.md).

**Imagem do ambiente**  <a name="environment-image.console"></a>
Execute um destes procedimentos:  
+ Para usar uma imagem do Docker gerenciada pelo AWS CodeBuild, selecione **Imagem gerenciada** e faça as escolhas em **Sistema operacional**, **Runtime(s)**, **Imagem** e **Versão da imagem**. Faça uma seleção em **Environment type (Tipo de ambiente)** se estiver disponível.
+ Para usar outra imagem do Docker, selecione **Custom image (Imagem personalizada)**. Em **Tipo de ambiente**, selecione **ARM**, **Linux**, **Linux GPU** ou **Windows**. Se você selecionar **Other registry (Outro registro)**, em **External registry URL (URL de registro externo)**, insira o nome e a tag da imagem do Docker no Docker Hub usando o formato `docker repository/docker image name`. Se você escolher **Amazon ECR**, use **Repositório do Amazon ECR** e **Imagem do Amazon ECR** para selecionar a imagem do Docker na conta da AWS.
+ Para usar uma imagem privada do Docker, selecione **Imagem personalizada**. Em **Tipo de ambiente**, selecione **ARM**, **Linux**, **Linux GPU** ou **Windows**. Em **Image registry (Registro da imagem)**, selecione **Other registry (Outro registro)** e insira o ARN das credenciais da imagem privada do Docker. As credenciais devem ser criadas pelo Secrets Manager. Para obter mais informações, consulte [O que é o AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/) no *Guia do usuário do AWS Secrets Manager*.
O CodeBuild substitui o `ENTRYPOINT` para as imagens personalizadas do Docker.

**Computação**  
Execute um destes procedimentos:  
+ Para usar a computação do EC2, escolha **EC2**. A computação do EC2 oferece flexibilidade otimizada durante execuções de ação.
+ Para usar a computação Lambda, escolha **Lambda**. A computação Lambda oferece velocidades de inicialização otimizadas para as compilações. O Lambda oferece suporte a compilações mais rápidas devido à menor latência de inicialização. O Lambda também é escalado automaticamente, portanto as compilações não aguardam na fila para serem executadas. Para mais informações, consulte [Execute compilações em computação AWS Lambda](lambda.md).

**Perfil de serviço**  
Execute um destes procedimentos:  
+ Se você não tiver um perfil de serviço do CodeBuild, selecione **Novo perfil de serviço**. No campo **Role name**, digite o nome da nova função.
+ Se você tiver um perfil de serviço do CodeBuild, selecione **Perfil de serviço existente**. Em **ARN do perfil**, escolha o perfil de serviço.
Ao usar o console para criar um projeto de compilação, é possível criar um perfil de serviço do CodeBuild ao mesmo tempo. Por padrão, a função funciona somente com esse projeto de build. Se você usar o console para associar essa função de serviço a outro projeto de compilação, a função será atualizada para funcionar com os outros projetos de compilação. Uma função de serviço pode funcionar com até 10 projetos de compilação.

**Configuração adicional**    
**Limite de repetição automática**  
Especifique o número de repetições automáticas adicionais após a falha de uma compilação. Por exemplo, se o limite de repetição automática estiver definido como 2, o CodeBuild chamará a API `RetryBuild` para repetir automaticamente a compilação por até 2 vezes adicionais.  
**Timeout (Tempo limite**  
Especifique um valor entre 5 minutos e 36 horas, tempo depois do qual o CodeBuild para a compilação se ela não estiver concluída. Se **hours** e **minutes** forem deixados em branco, o valor padrão de 60 minutos será usado.  
**Privilegiado**  
(Opcional) Selecione **Ativar este sinalizador se quiser criar imagens do Docker ou desejar que suas compilações obtenham privilégios elevados** somente se planeja usar esse projeto de compilação para criar imagens do Docker. Do contrário, todas as compilações associadas que tentarem interagir com o daemon do Docker falharão. Você também deve iniciar o daemon do Docker, de maneira que as compilações possam interagir com ele. Uma maneira de fazer isso é inicializar o daemon do Docker na fase `install` de especificação da compilação executando os comandos de compilação a seguir. Não execute esses comandos caso você escolha uma imagem de ambiente da compilação fornecida pelo CodeBuild com suporte do Docker.  
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](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) no site do Docker Docs e ative o modo privilegiado. Além disso, o Windows não é compatível com o modo privilegiado.

```
- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 &
- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
```  
**da VPC**  
Se você desejar que o CodeBuild funcione com a VPC:  
+ Em **VPC**, escolha o ID da VPC que o CodeBuild usa.
+ Em **Sub-redes da VPC**, selecione as sub-redes que incluem recursos usados pelo CodeBuild.
+ Em **Grupos de segurança da VPC**, selecione os grupos de segurança que o CodeBuild usa para permitir acesso a recursos nas VPCs.
Para obter mais informações, consulte [Use AWS CodeBuild com a Amazon Virtual Private Cloud](vpc-support.md).  
**Computação**  
Selecione uma das opções disponíveis.  
**Credencial de registro**  
Especifique uma credencial de registro quando o projeto estiver configurado com uma imagem de registro não privada.  
Essa credencial só será utilizada se as imagens forem substituídas pelas de registros privados.  
**Variáveis de ambiente**  
Insira o nome e o valor e, depois, selecione o tipo de cada variável de ambiente a ser usada pelas compilações.   
O CodeBuild define a variável de ambiente para a região da AWS automaticamente. Defina as seguintes variáveis de ambiente se elas não tiverem sido adicionadas ao buildspec.yml:  
+ AWS\$1ACCOUNT\$1ID
+ IMAGE\$1REPO\$1NAME
+ IMAGE\$1TAG
Os usuários do console e da AWS CLI podem visualizar as variáveis de ambiente. Caso você não tenha problema em relação à visibilidade da variável de ambiente, defina os campos **Name** e **Value** e **Type** como **Plaintext**.  
Recomendamos armazenar uma variável de ambiente com um valor confidencial, como um ID de chave de acesso da AWS, uma chave de acesso secreta da AWS ou uma senha como um parâmetro no Amazon EC2 Systems Manager Parameter Store ou AWS Secrets Manager.   
Se você usar o Amazon EC2 Systems Manager Parameter Store, em **Tipo**, escolha **Parâmetro**. Em **Nome**, insira um identificador para o CodeBuild para referência. Em **Valor**, insira o nome do parâmetro conforme armazenado no Amazon EC2 Systems Manager Parameter Store. Usando um parâmetro chamado `/CodeBuild/dockerLoginPassword` como exemplo, em **Type (Tipo)**, escolha **Parameter (Parâmetro)**. Em **Nome**, digite `LOGIN_PASSWORD`. Em **Valor**, insira `/CodeBuild/dockerLoginPassword`.   
Se você usa o Amazon EC2 Systems Manager Parameter Store, recomendamos armazenar os parâmetros com nomes de parâmetro que comecem com `/CodeBuild/` (por exemplo, `/CodeBuild/dockerLoginPassword`). É possível usar o console do CodeBuild para criar um parâmetro no Amazon EC2 Systems Manager. Selecione **Create parameter (Criar parâmetro)** e siga as instruções na caixa de diálogo. (Nessa caixa de diálogo, em **Chave do KMS**, é possível especificar o ARN de uma chave do AWS KMS na conta. O Amazon EC2 Systems Manager usa essa chave para criptografar o valor do parâmetro durante o armazenamento e descriptografá-lo durante a recuperação.) Se você usar o console do CodeBuild para criar um parâmetro, o console começará o nome do parâmetro com `/CodeBuild/`, pois ele está sendo armazenado. Para obter mais informações, consulte [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) e [Systems Manager Parameter Store Console Walkthrough](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) no *Guia do usuário do Amazon EC2 Systems Manager*.  
Se o projeto de compilação se referir a parâmetros armazenados no Amazon EC2 Systems Manager Parameter Store, o perfil de serviço do projeto de compilação deverá permitir a ação `ssm:GetParameters`. Se você selecionar **Novo perfil de serviço** anteriormente, o CodeBuild incluirá essa ação no perfil de serviço padrão do projeto de compilação. No entanto, se você tiver selecionado **Existing service role (Função de serviço existente)**, deverá incluir essa ação na função de serviço separadamente.  
Se o projeto de compilação fizer referência a parâmetros armazenados no Amazon EC2 Systems Manager Parameter Store com nomes de parâmetro que não comecem com `/CodeBuild/` e você selecionar **Novo perfil de serviço**, será necessário atualizar esse perfil de serviço para conceder acesso a nomes de parâmetro que não comecem com `/CodeBuild/`. Isso porque essa função de serviço permite acesso apenas a nomes de parâmetro que comecem com `/CodeBuild/`.  
Se você selecionar **Novo perfil de serviço**, o perfil de serviço incluirá permissão para descriptografar todos os parâmetros no namespace `/CodeBuild/` no Amazon EC2 Systems Manager Parameter Store.  
As variáveis de ambiente definidas por você substituem variáveis de ambiente existentes. Por exemplo, se a imagem de Docker já contiver uma variável de ambiente chamada `MY_VAR` com um valor de `my_value` e você definir uma variável de ambiente chamada `MY_VAR` com um valor de `other_value`, `my_value` será substituído por `other_value`. Da mesma maneira, se a imagem de Docker já contiver uma variável de ambiente chamada `PATH` com um valor de `/usr/local/sbin:/usr/local/bin` e você definir uma variável de ambiente chamada `PATH` com um valor de `$PATH:/usr/share/ant/bin`, `/usr/local/sbin:/usr/local/bin` será substituído pelo valor literal `$PATH:/usr/share/ant/bin`.  
Não defina nenhuma variável de ambiente com um nome que comece com `CODEBUILD_`. Este prefixo está reservado para uso interno.  
Se uma variável de ambiente com o mesmo nome é definida em vários locais, o valor será determinado como se segue:  
+ O valor na chamada de operação de início de build tem a maior prioridade.
+ O valor na definição de projeto de build tem a precedência seguinte.
+ O valor na declaração de buildspec tem a menor prioridade.
Se você usar o Secrets Manager, em **Tipo**, escolha **Secrets Manager**. Em **Nome**, insira um identificador para o CodeBuild para referência. Em **Value (Valor)**, insira um `reference-key` usando o padrão `secret-id:json-key:version-stage:version-id`. Para mais informações, consulte [Secrets Manager reference-key in the buildspec file](build-spec-ref.md#secrets-manager-build-spec).  
Se você usa o Secrets Manager, recomendamos armazenar segredos com nomes que comecem com `/CodeBuild/` (por exemplo, `/CodeBuild/dockerLoginPassword`). Para obter mais informações, consulte [O que é o AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) no *Guia do usuário do AWS Secrets Manager*.   
Se o projeto de compilação se referir a segredos armazenados no Secrets Manager, o perfil de serviço do projeto de compilação deverá permitir a ação `secretsmanager:GetSecretValue`. Se você selecionar **Novo perfil de serviço** anteriormente, o CodeBuild incluirá essa ação no perfil de serviço padrão do projeto de compilação. No entanto, se você tiver selecionado **Existing service role (Função de serviço existente)**, deverá incluir essa ação na função de serviço separadamente.   
Se o projeto de compilação fizer referência a segredos armazenados no Secrets Manager com nomes que não comecem com `/CodeBuild/` e você selecionar **Novo perfil de serviço**, será necessário atualizar esse perfil de serviço para conceder acesso a nomes de segredo que não comecem com `/CodeBuild/`. O motivo é que o perfil de serviço permite acesso apenas a nomes de segredo que comecem com `/CodeBuild/`.  
Se você selecionar **Novo perfil de serviço**, o perfil de serviço incluirá permissão para descriptografar todos os segredos no namespace `/CodeBuild/` no Secrets Manager.

### Buildspec
<a name="create-project-console-buildspec"></a>

**Especificações de compilação**  
Execute um destes procedimentos:  
+ Se o seu código-fonte inclui um arquivo buildspec, escolha **Use a buildspec file (Usar um arquivo buildspec)**. Por padrão, o CodeBuild procura um arquivo chamado `buildspec.yml` no diretório raiz do código-fonte. Se o arquivo buildspec usar um nome ou um local diferente, insira o caminho a partir da raiz de origem em **Nome do buildspec** (por exemplo, `buildspec-two.yml` ou `configuration/buildspec.yml`. Se o arquivo buildspec estiver em um bucket do S3, ele deverá estar na mesma região da AWS do projeto de compilação. Especifique o arquivo buildspec usando o ARN (por exemplo, `arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml`).
+ Se o código-fonte não incluir um arquivo de especificação de compilação ou se você quiser executar comandos de compilação diferentes dos especificados para a fase `build` no arquivo `buildspec.yml`, no diretório raiz do código-fonte, escolha **Insert build commands**. Para **Build commands (Comandos de compilação)**, insira os comandos que você quer executar na fase `build`. Para vários comandos, separe-os com `&&` (por exemplo, `mvn test && mvn package`). Para executar comandos em outras fases, ou se você tiver uma lista longa de comandos para a fase `build`, adicione um arquivo `buildspec.yml` ao diretório raiz do código-fonte, adicione os comandos ao arquivo e escolha **Usar o buildspec.yml no diretório raiz do código-fonte**.
Para obter mais informações, consulte a [Referência de buildspec](build-spec-ref.md).

### Configuração em lote
<a name="create-project-console-batch-config"></a>

É possível executar um grupo de compilações como uma única operação. Para obter mais informações, consulte [Executar compilações em lotes](batch-build.md).

**Definir a configuração em lote**  
Selecione para permitir compilações em lote neste projeto.

**Perfil de serviço em lote**  
Fornece o perfil de serviço para compilações em lote.   
Escolha uma das seguintes opções:  
+ Se você não tiver um perfil de serviço em lote, selecione **Novo perfil de serviço**. Em **Perfil de serviço**, insira um nome para o novo perfil.
+ Se você tiver um perfil de serviço em lote, selecione **Perfil de serviço existente**. Em **Perfil de serviço**, selecione o perfil de serviço.
As compilações em lote introduzem um novo perfil de segurança na configuração em lote. Esse novo perfil é necessário, pois o CodeBuild deve ser capaz de chamar as ações `StartBuild`, `StopBuild` e `RetryBuild` em seu nome para executar compilações como parte de um lote. Os clientes devem usar um novo perfil, e não o mesmo perfil que usam na compilação, por dois motivos:  
+ Fornecer ao perfil de compilação as permissões `StartBuild`, `StopBuild` e `RetryBuild` que permitem a uma única compilação iniciar mais compilações por meio do buildspec.
+ As compilações em lote do CodeBuild fornecem restrições que restringem o número de compilações e tipos de computação que podem ser usados para as compilações no lote. Se o perfil de compilação tiver essas permissões, será possível que as próprias compilações ignorem essas restrições.

**Tipos de computação permitidos para lote**  
Selecione os tipos de computação permitidos para o lote. Selecione todas as opções aplicáveis.

**Frotas permitidas por lote**  
Selecione as frotas permitidas para o lote. Selecione todas as opções aplicáveis.

**Máximo de compilações permitidas em lote**  
Insira o número máximo de compilações permitidas no lote. Se um lote exceder esse limite, ele falhará.

**Tempo limite do lote**  
Insira o tempo máximo para a conclusão da compilação em lote.

**Combinar artefatos**  
Selecione **Combinar todos os artefatos do lote em um único local** para que todos os artefatos do lote sejam combinados em um único local.

 **Modo de relatório em lote**   
Selecione o modo de relatório de status de compilação desejado para compilações em lote.  
Esse campo só estará disponível quando a origem do projeto for Bitbucket, GitHub ou GitHub Enterprise, e a opção **Relatar status de compilação ao provedor de origem no início e no término das compilações** estiver selecionada em **Origem**.   
 **Compilações agregadas**   
Selecione para que os status de todas as compilações do lote sejam combinados em um único relatório de status.  
 **Compilações individuais**   
Selecione para que os status de todas as compilações no lote sejam relatados separadamente.

### Artefatos
<a name="create-project-console-artifacts"></a>

**Tipo**  
Execute um destes procedimentos:  
+ Se você não quiser criar artefatos de saída de build, escolha **No artifacts**. É recomendável fazer isso caso esteja executando apenas testes de compilação ou queira enviar uma imagem do Docker a um repositório do Amazon ECR.
+ Para armazenar a saída de compilação em um bucket do S3, escolha **Amazon S3** e faça o seguinte:
  + Se você quiser usar o nome do projeto para a pasta ou arquivo ZIP de saída da compilação, deixe **Name (Nome)** em branco. Caso contrário, insira o nome. (Se quiser um arquivo ZIP como saída e quiser que esse arquivo tenha uma extensão de arquivo, não se esqueça de incluir a extensão depois do nome do arquivo.)
  + Selecione **Enable semântico versioning (Habilitar versionamento semântico)** se quiser que um nome especificado no arquivo buildspec substitua qualquer nome especificado no console. O nome em um arquivo buildspec é calculado no tempo de compilação e usa a linguagem de comandos do Shell. Por exemplo, você pode anexar uma data e hora ao nome do artefato para que ele seja sempre exclusivo. Os nomes de artefato exclusivos impedem que os artefatos sejam substituídos. Para obter mais informações, consulte [Sintaxe de buildspec](build-spec-ref.md#build-spec-ref-syntax).
  + Para **Bucket name**, selecione o nome do bucket de saída.
  + Se você tiver escolhido **Insert build commands (Inserir comandos de compilação)** antes neste procedimento, em **Output files (Arquivos de saída)**, insira os locais dos arquivos da compilação que deseja incluir no arquivo ZIP de saída da compilação ou na pasta. Para vários locais, separe-os com uma vírgula (por exemplo, `appspec.yml, target/my-app.jar`). Para obter mais informações, consulte a descrição de `files` em [Sintaxe de buildspec](build-spec-ref.md#build-spec-ref-syntax).
  + Se você não quiser que os artefatos de compilação sejam criptografados, selecione **Remove artifacts encryption (Remover a criptografia dos artefatos)**.
Para cada conjunto secundário de artefatos desejado:  

1. Em **Artifact identifier (Identificador de artefato)**, insira um valor com menos de 128 caracteres e que contenha apenas caracteres alfanuméricos e sublinhados.

1. Escolha **Add artifact (Adicionar artefato)**.

1. Siga as etapas anteriores para configurar seus artefatos secundários.

1. Escolha **Save artifact (Salvar artefato)**.

**Configuração adicional**    
**Chave de criptografia**  
(Opcional) Siga um destes procedimentos:  
+ Para usar a Chave gerenciada pela AWS para o Amazon S3 na conta para criptografar os artefatos de saída de compilação, deixe **Chave de criptografia** em branco. Esse é o padrão.
+ Para usar uma chave gerenciada pelo cliente para criptografar os artefatos de saída da compilação, em **Chave de criptografia**, insira o ARN da chave do KMS. Use o formato `arn:aws:kms:region-ID:account-ID:key/key-ID`.  
**Tipo de cache**  
Em **Cache type (Tipo de cache)**, selecione uma das seguintes opções:  
+ Se não quiser usar um cache, escolha **No cache**.
+ Se você quiser um cache do Amazon S3, selecione **Amazon S3** e faça o seguinte:
  + Em **Bucket**, escolha o nome do bucket do S3 onde o cache está armazenado.
  + (Opcional) Em **Prefixo do caminho do cache**, insira um prefixo de caminho do Amazon S3. O valor **Cache path prefix (Prefixo do caminho do cache)** é semelhante ao nome de um diretório. Ele permite que você armazene o cache em um bucket no mesmo diretório. 
**Importante**  
Não acrescente uma barra (/) ao final do prefixo do caminho.
+  Se você quiser usar um cache local, selecione **Local** e depois selecione um ou mais modos de cache local. 
**nota**  
O modo de cache de camada do Docker está disponível apenas para o Linux. Se optar por esse modo, o projeto deverá ser executado no modo privilegiado. 
O uso do cache economiza um tempo de compilação considerável porque as partes reutilizáveis do ambiente de compilação são armazenadas no cache e usadas em diferentes compilações. Para obter informações sobre como especificar um cache no arquivo de especificação de compilação, consulte [Sintaxe de buildspec](build-spec-ref.md#build-spec-ref-syntax). Para obter mais informações sobre armazenamento em cache, consulte [Compilações em cache para melhorar o desempenho](build-caching.md). 

### Logs
<a name="create-project-console-logs"></a>

Selecione os logs que deseja criar. É possível criar o Amazon CloudWatch Logs, os logs do Amazon S3 ou ambos. 

**CloudWatch**  
Se você quiser os logs do Amazon CloudWatch Logs:    
**Logs do CloudWatch**  
Selecione **Logs do CloudWatch**.  
**Group name**  
Insira o nome do grupo de logs do Amazon CloudWatch Logs.  
**Nome do fluxo**  
Insira o nome do fluxo de logs do Amazon CloudWatch Logs. 

**S3**  
Se você quiser que o Amazon S3 registre:    
**Logs do S**  
Selecione **S3 logs (Logs do S3)**.  
**Bucket**  
Escolha o nome do bucket do S3 para os logs.   
**Prefixo do caminho**  
Insira o prefixo para seus logs.   
**Desabilitar a criptografia de logs do S**  
Selecione se não quiser que os logs do S3 sejam criptografados. 

## Crie um projeto de compilação (AWS CLI)
<a name="create-project-cli"></a>

Para obter mais informações sobre como usar o AWS CLI com o CodeBuild, consulte [Referência da linha de comando](cmd-ref.md).

Para criar um projeto de compilação do CodeBuild usando a AWS CLI, crie uma estrutura de [projeto](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Project.html) formatada em JSON, preencha a estrutura e chame o comando [https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html) para criar o projeto.

### Criar o arquivo JSON
<a name="cp-cli-create-file"></a>

Crie um arquivo JSON esqueleto com o comando [https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html), usando a opção `--generate-cli-skeleton`:

```
aws codebuild create-project --generate-cli-skeleton > <json-file>
```

Isso cria um arquivo JSON com o caminho e o nome do arquivo especificados por*<json-file>*.

### Preencher o arquivo JSON
<a name="cp-cli-fill-in-file"></a>

Modifique os dados JSON da maneira a seguir e salve os resultados.

```
{
  "name": "<project-name>",
  "description": "<description>",
  "source": {
    "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE",
    "location": "<source-location>",
    "gitCloneDepth": "<git-clone-depth>",
    "buildspec": "<buildspec>",
    "InsecureSsl": "<insecure-ssl>",
    "reportBuildStatus": "<report-build-status>",
    "buildStatusConfig": {
      "context": "<context>",
      "targetUrl": "<target-url>"
    },
    "gitSubmodulesConfig": {
      "fetchSubmodules": "<fetch-submodules>"
    },
    "auth": {
      "type": "<auth-type>",
      "resource": "<auth-resource>"
    },
    "sourceIdentifier": "<source-identifier>"
  },
  "secondarySources": [
    {
        "type": "CODECOMMIT" | "CODEPIPELINE" | "GITHUB" | "GITHUB_ENTERPRISE" | "GITLAB" | "GITLAB_SELF_MANAGED" | "BITBUCKET" | "S3" | "NO_SOURCE",
        "location": "<source-location>",
        "gitCloneDepth": "<git-clone-depth>",
        "buildspec": "<buildspec>",
        "InsecureSsl": "<insecure-ssl>",
        "reportBuildStatus": "<report-build-status>",
        "auth": {
          "type": "<auth-type>",
          "resource": "<auth-resource>"
        },
        "sourceIdentifier": "<source-identifier>"
    }
  ],
  "secondarySourceVersions": [
    {
      "sourceIdentifier": "<secondary-source-identifier>",
      "sourceVersion": "<secondary-source-version>"
    }
  ],
  "sourceVersion": "<source-version>",
  "artifacts": {
    "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS",
    "location": "<artifacts-location>",
    "path": "<artifacts-path>",
    "namespaceType": "<artifacts-namespacetype>",
    "name": "<artifacts-name>",
    "overrideArtifactName": "<override-artifact-name>",
    "packaging": "<artifacts-packaging>"
  },
  "secondaryArtifacts": [
    {
      "type": "CODEPIPELINE" | "S3" | "NO_ARTIFACTS",
      "location": "<secondary-artifact-location>",
      "path": "<secondary-artifact-path>",
      "namespaceType": "<secondary-artifact-namespaceType>",
      "name": "<secondary-artifact-name>",
      "packaging": "<secondary-artifact-packaging>",
      "artifactIdentifier": "<secondary-artifact-identifier>"
    }
  ],
  "cache": {
    "type": "<cache-type>",
    "location": "<cache-location>",
    "mode": [
      "<cache-mode>"
    ]
  },
  "environment": {
    "type": "LINUX_CONTAINER" | "LINUX_GPU_CONTAINER" | "ARM_CONTAINER" | "WINDOWS_SERVER_2019_CONTAINER" | "WINDOWS_SERVER_2022_CONTAINER",
    "image": "<image>",
    "computeType": "BUILD_GENERAL1_SMALL" | "BUILD_GENERAL1_MEDIUM" | "BUILD_GENERAL1_LARGE" | "BUILD_GENERAL1_2XLARGE",
    "certificate": "<certificate>",
    "environmentVariables": [
      {
        "name": "<environmentVariable-name>",
        "value": "<environmentVariable-value>",
        "type": "<environmentVariable-type>"
      }
    ],
    "registryCredential": [
      {
        "credential": "<credential-arn-or-name>",
        "credentialProvider": "<credential-provider>"
      }
    ],
    "imagePullCredentialsType": "CODEBUILD" | "SERVICE_ROLE",
    "privilegedMode": "<privileged-mode>"
  },
  "serviceRole": "<service-role>",
  "autoRetryLimit": <auto-retry-limit>,
  "timeoutInMinutes": <timeout>,
  "queuedTimeoutInMinutes": <queued-timeout>,
  "encryptionKey": "<encryption-key>",
  "tags": [
    {
      "key": "<tag-key>",
      "value": "<tag-value>"
    }
  ],
  "vpcConfig": {
    "securityGroupIds": [
         "<security-group-id>"
    ],
    "subnets": [
         "<subnet-id>"
    ],
    "vpcId": "<vpc-id>"
  },
  "badgeEnabled": "<badge-enabled>",
  "logsConfig": {
    "cloudWatchLogs": {
      "status": "<cloudwatch-logs-status>",
      "groupName": "<group-name>",
      "streamName": "<stream-name>"
    },
    "s3Logs": {
      "status": "<s3-logs-status>",
      "location": "<s3-logs-location>",
      "encryptionDisabled": "<s3-logs-encryption-disabled>"
    }
  },
  "fileSystemLocations": [
    {
      "type": "EFS",
      "location": "<EFS-DNS-name-1>:/<directory-path>",
      "mountPoint": "<mount-point>",
      "identifier": "<efs-identifier>",
      "mountOptions": "<efs-mount-options>"
    }
  ],
  "buildBatchConfig": {
    "serviceRole": "<batch-service-role>",
    "combineArtifacts": <combine-artifacts>,
    "restrictions": {
      "maximumBuildsAllowed": <max-builds>,
      "computeTypesAllowed": [
        "<compute-type>"
      ],
      "fleetsAllowed": [
        "<fleet-name>"
      ]
    },
    "timeoutInMins": <batch-timeout>,
    "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS"
  },
  "concurrentBuildLimit": <concurrent-build-limit>
}
```

Substitua o seguinte:

#### **name**
<a name="cli.project-name"></a>

Obrigatório. O nome deste projeto de build. Esse nome deve ser único em todos os projetos de build em sua conta AWS.

#### **description**
<a name="cli.description"></a>

Opcional. A descrição desse projeto de build.

#### **Fonte de**
<a name="cli.source"></a>

Obrigatório. Um objeto [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html) que contém informações sobre as configurações do código-fonte desse projeto de compilação. Depois de adicionar um objeto `source`, você poderá adicionar até 12 outras origens com o [**secondarySources**](#cli.secondarysources). Essas configurações incluem o seguinte:

source/**type**  <a name="cli.source.type"></a>
Obrigatório. O tipo de repositório que contém o código-fonte para build. Os valores válidos são:  
+ `CODECOMMIT`
+ `CODEPIPELINE`
+ `GITHUB`
+ `GITHUB_ENTERPRISE`
+ `GITLAB`
+ `GITLAB_SELF_MANAGED`
+ `BITBUCKET`
+ `S3`
+ `NO_SOURCE`
Se você usar `NO_SOURCE`, o buildspec não poderá ser um arquivo porque o projeto não terá uma origem. Em vez disso, você deve usar o atributo `buildspec` para especificar uma string formatada em YAML para seu buildspec. Para obter mais informações, consulte [Criar um projeto de compilação sem uma origem](no-source.md).

source/**location**  <a name="cli.source.location"></a>
Obrigatório, a menos que você defina *<source-type>* como `CODEPIPELINE`. O local do código-fonte para o tipo de repositório especificado.  
+ Para o CodeCommit, o URL do clone do HTTPS para o repositório que contém o código-fonte e o arquivo buildspec (por exemplo, `https://git-codecommit.<region-id>.amazonaws.com/v1/repos/<repo-name>`).
+ Para o Amazon S3, o nome do bucket de entrada da compilação, seguido pelo caminho e o nome do arquivo ZIP que contém o código-fonte e o buildspec. Por exemplo:
  + Para um arquivo ZIP localizado na raiz do bucket de entrada: `<bucket-name>/<object-name>.zip`.
  + Para um arquivo ZIP localizado em uma subpasta no bucket de entrada: `<bucket-name>/<subfoler-path>/<object-name>.zip`.
+ Para o GitHub, o URL do clone HTTPS para o repositório que contém o código-fonte e o arquivo buildspec. O URL deve conter github.com. Você deve conectar sua conta da AWS à sua conta do GitHub. Para isso, use o console do CodeBuild para criar um projeto de compilação.
  + Escolha **Autorizar aplicativo**. (Depois que tiver se conectado à conta do GitHub, você não precisará concluir a criação do projeto de compilação. Você pode sair do console do CodeBuild). 
+ Para o GitHub Enterprise Server, o URL do clone HTTPS ou HTTP para o repositório que contém o código-fonte e o arquivo buildspec. Também é necessário conectar sua conta da AWS à sua conta do GitHub Enterprise Server. Para isso, use o console do CodeBuild para criar um projeto de compilação.

  1. Crie um token de acesso pessoal no GitHub Enterprise Server.

  1. Copie este token na área de transferência para usá-lo ao criar o projeto do CodeBuild. Para obter mais informações, consulte [Criar um token de acesso pessoal para a linha de comando](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/) no site de Ajuda do GitHub. 

  1. Quando você usa o console para criar o projeto do CodeBuild, em **Origem**, em **Provedor de origem**, escolha **GitHub Enterprise**.

  1. Em **Personal Access Token**, cole o token que foi copiado na área de transferência. Escolha **Salvar token**. A conta do CodeBuild agora está conectada à conta do GitHub Enterprise Server.
+ Para o GitLab e o GitLab autogerenciado, o URL do clone HTTPS para o repositório que contém o código-fonte e o arquivo buildspec. Observe que, se você usa o GitLab, o URL deve conter gitlab.com. Se você usa o GitLab autogerenciado, o URL não precisa conter gitlab.com. Você deve conectar a conta da AWS à conta do GitLab ou do GitLab autogerenciado. Para isso, use o console do CodeBuild para criar um projeto de compilação.
  + No painel de navegação Developer Tools, escolha **Configurações**, **Conexões** e **Criar conexão**. Nesta página, crie uma conexão do GitLab ou do GitLab autogerenciado e escolha **Conectar ao GitLab**.
+ Para o Bitbucket, o URL do clone HTTPS para o repositório que contém o código-fonte e o arquivo buildspec. O URL deve conter bitbucket.org. Você também deve conectar sua conta da AWS à conta do Bitbucket. Para isso, use o console do CodeBuild para criar um projeto de compilação. 

  1. Quando você usa o console para se conectar (ou se reconectar) ao Bitbucket, na página **Confirm access to your account** do Bitbucket, escolha **Grant access**. (Depois que tiver se conectado à conta do Bitbucket, não será necessário concluir a criação do projeto de compilação. Você pode sair do console do CodeBuild). 
+ Em AWS CodePipeline, não especifique um valor `location` para `source`. O CodePipeline ignora esse valor porque, ao criar um pipeline no CodePipeline, você especifica o local do código-fonte no estágio de origem do pipeline.

source/**gitCloneDepth**  <a name="cli.source.gitclonedepth"></a>
Opcional. A profundidade do histórico a ser obtido por download. O valor mínimo é 0. Se o valor for 0, superior a 25 ou não fornecido, o histórico completo será obtido por download com cada projeto de compilação. Se o tipo de origem é o Amazon S3, esse valor não é compatível.

source/**buildspec**  <a name="cli.source.buildspec"></a>
Opcional. A definição de especificação do build ou arquivo a ser usado. Se esse valor não for fornecido ou for definido como uma string vazia, o código-fonte deverá conter um arquivo `buildspec.yml` em seu diretório raiz. Se estiver definido, esse valor poderá ser uma definição de buildspec em linha, o caminho para um arquivo buildspec alternativo relativo ao diretório raiz da origem principal ou ao caminho para um bucket do S3. O bucket deve estar na mesma região da AWS que o projeto de compilação. Especifique o arquivo buildspec usando seu ARN (por exemplo, `arn:aws:s3:::<my-codebuild-sample2>/buildspec.yml`). Para obter mais informações, consulte [Nome do arquivo buildspec e local de armazenamento](build-spec-ref.md#build-spec-ref-name-storage).

source/**auth**  <a name="cli.source.auth"></a>
Contém informações sobre as configurações de autorização para o CodeBuild acessar o código-fonte a ser compilado.

source/auth/**type**  <a name="cli.source.auth.type"></a>
Obrigatório. O tipo de autorização a ser usado. Os valores válidos são:  
+ `OAUTH`
+ `CODECONNECTIONS`
+ `SECRETS_MANAGER`

source/auth/**resource**  <a name="cli.source.auth.resource"></a>
Opcional. O valor do recurso que se aplica ao tipo de autorização especificado. Isso pode ser o ARN do Secrets Manager ou o ARN do CodeConnections.

source/**reportBuildStatus**  <a name="cli.source.reportbuildstatus"></a>
Especifica se é necessário enviar os status inicial e final de uma compilação ao seu provedor de origem. Se você definir esse valor com um provedor de origem que não seja o GitHub, o GitHub Enterprise Server ou o Bitbucket, uma `invalidInputException` será lançada.   
Para poder relatar o status da compilação ao provedor de origem, o usuário associado ao provedor de origem deve ter acesso de gravação ao repositório. Se o usuário não tiver acesso de gravação, o status de compilação não poderá ser atualizado. Para obter mais informações, consulte [Acesso do provedor de origem](access-tokens.md).

source/**buildStatusConfig**  <a name="cli.source.buildstatusconfig"></a>
Contém informações que definem como o projeto de compilação do CodeBuild relata o status da compilação ao provedor de origem. Essa opção só é usada quando o provedor de origem é `GITHUB`, `GITHUB_ENTERPRISE` ou `BITBUCKET`.    
source/buildStatusConfig/**context**  
Para origens do Bitbucket, esse parâmetro é usado para o parâmetro `name` no status de confirmação do Bitbucket. Para origens do GitHub, esse parâmetro é usado para o parâmetro `context` no status de confirmação do GitHub.   
Por exemplo, é possível fazer com que o `context` contenha o número da compilação e o gatilho do webhook usando as variáveis de ambiente do CodeBuild:  

```
AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER
```
Isso faz com que o contexto apareça assim para a compilação \$124 acionada por um evento de solicitação pull de webhook:  

```
AWS CodeBuild sample-project Build #24 - pr/8
```  
source/buildStatusConfig/**targetUrl**  
Para origens do Bitbucket, esse parâmetro é usado para o parâmetro `url` no status de confirmação do Bitbucket. Para origens do GitHub, esse parâmetro é usado para o parâmetro `target_url` no status de confirmação do GitHub.  
Por exemplo, é possível definir o `targetUrl` como `https://aws.amazon.com/codebuild/<path to build>` e o status de confirmação será vinculado a esse URL.  
Também é possível incluir variáveis de ambiente do CodeBuild no `targetUrl` para adicionar mais informações ao URL. Por exemplo, para adicionar a região de compilação ao URL, defina o `targetUrl` como:  

```
"targetUrl": "https://aws.amazon.com/codebuild/<path to build>?region=$AWS_REGION"
```
Se a região de construção for `us-east-2`, ela se expandirá para:   

```
https://aws.amazon.com/codebuild/<path to build>?region=us-east-2
```

source/**gitSubmodulesConfig**  <a name="cli.source.gitsubmodulesconfig"></a>
Opcional. Informações sobre a configuração dos submódulos do Git. Usado somente com o CodeCommit, o GitHub, o GitHub Enterprise Server e o Bitbucket.     
source/gitSubmodulesConfig/**fetchSubmodules**  
Defina `fetchSubmodules` como `true` se quiser incluir os submódulos do Git em seu repositório. Os submódulos do Git incluídos devem ser configurados como HTTPS.

source/**InsecureSsl**  <a name="cli.source.insecuressl"></a>
Opcional. Usado somente com o GitHub Enterprise Server. Defina esse valor como `true` para ignorar os avisos do TLS ao conectar-se ao repositório do projeto do GitHub Enterprise Server. O valor padrão é `false`. `InsecureSsl` deve ser usado apenas para fins de teste. Ele não deve ser usado em um ambiente de produção.

source/**sourceIdentifier**  <a name="cli.source.sourceidentifier"></a>
Um identificador definido pelo usuário para a origem do projeto. Opcional para a origem principal. Obrigatório para origens secundárias.

#### **secondarySources**
<a name="cli.secondarysources"></a>

Opcional. Uma matriz de objetos [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html) que contêm informações sobre as origens secundárias de um projeto de compilação. É possível adicionar até 12 origens secundárias. Os objetos `secondarySources` usam as mesmas propriedades usadas pelo objeto [**Fonte de**](#cli.source). Em um objeto de origem secundário, o `sourceIdentifier` é obrigatório.

#### **secondarySourceVersions**
<a name="cli.secondarysourceversions"></a>

Opcional. Uma matriz de objetos [ProjectSourceVersion](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSourceVersion.html). Se `secondarySourceVersions` for especificado no nível de compilação, ele terá precedência. 

#### **sourceVersion**
<a name="cli.sourceversion"></a>

Opcional. A versão da entrada de compilação a ser criada para esse projeto. Se não for especificada, a versão mais recente será usada. Se for especificada, ela deverá ser uma das seguintes: 
+ Para o CodeCommit: o ID de confirmação, a ramificação ou a tag do Git a ser usada.
+ Para o GitHub, o ID de confirmação, a solicitação, o nome da ramificação ou o nome da tag que corresponda à versão do código-fonte que você deseja compilar. Caso seja especificado, um ID de solicitação deve usar o formato `pr/pull-request-ID` (por exemplo, `pr/25`). Se um nome de ramificação for especificado, o ID de confirmação HEAD da ramificação será usado. Se não estiver especificado, o ID de confirmação HEAD da ramificação padrão será usado. 
+ Para o GitLab, o ID de confirmação, o ID da solicitação pull, o nome da ramificação, o nome da tag ou uma referência e um ID de confirmação. Para obter mais informações, consulte [Amostra da versão de origem com AWS CodeBuild](sample-source-version.md).
+ Para o Bitbucket, o ID de confirmação, o nome da ramificação ou o nome da tag que corresponda à versão do código-fonte que você deseja compilar. Se um nome de ramificação for especificado, o ID de confirmação HEAD da ramificação será usado. Se não estiver especificado, o ID de confirmação HEAD da ramificação padrão será usado. 
+ Para o Amazon S3, o ID da versão do objeto que representa o arquivo ZIP de entrada da compilação a ser usado. 

Se `sourceVersion` for especificado no nível de compilação, essa versão terá precedência sobre esta `sourceVersion` (no nível do projeto). Para obter mais informações, consulte [Amostra da versão de origem com AWS CodeBuild](sample-source-version.md). 

#### **artifacts**
<a name="cli.artifacts"></a>

Obrigatório. Um objeto [ProjectArtifacts](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html) que contém informações sobre as configurações do artefato de saída do projeto de compilação. Depois de adicionar um objeto `artifacts`, você poderá adicionar até 12 outros artefatos com o [secondaryArtifacts](#cli.secondaryartifacts). Essas configurações incluem o seguinte: 

artifacts/**type**  <a name="cli.artifacts.type"></a>
Obrigatório. O tipo de artefato de saída de build. Os valores válidos são:   
+ `CODEPIPELINE`
+ `NO_ARTIFACTS`
+ `S3`

artifacts/**location**  <a name="cli.artifacts.location"></a>
Usado somente com o tipo de artefato do `S3`. Não é usado para outros tipos de artefatos.  
O nome do bucket de saída que você criou ou identificou nos pré-requisitos. 

artifacts/**path**  <a name="cli.artifacts.path"></a>
Usado somente com o tipo de artefato do `S3`. Não é usado para outros tipos de artefatos.  
O caminho do bucket de saída para colocar a pasta ou o arquivo ZIP. Se você não especificar um valor para `path`, o CodeBuild usará `namespaceType` (se especificado) e `name` para determinar o caminho e o nome do arquivo ou da pasta ZIP de saída da compilação. Por exemplo, se você especificar `MyPath` para `path`, `MyArtifact.zip` para `name`, o caminho e o nome serão `MyPath/MyArtifact.zip`. 

artifacts/**namespaceType**  <a name="cli.artifacts.namespacetype"></a>
Usado somente com o tipo de artefato do `S3`. Não é usado para outros tipos de artefatos.  
O namespace da pasta ou do arquivo ZIP de saída da compilação. Os valores válidos são `BUILD_ID` e `NONE`. Use `BUILD_ID` para inserir a ID de build no caminho da pasta ou do arquivo ZIP de saída do build. Caso contrário, use `NONE`. Se você não especificar um valor para `namespaceType`, o CodeBuild usará `path` (se especificado) e `name` para determinar o caminho e o nome do arquivo ou da pasta ZIP de saída da compilação. Por exemplo, se você especificar `MyPath` para `path`, `BUILD_ID` para `namespaceType` e `MyArtifact.zip` para `name`, o caminho e o nome serão `MyPath/build-ID/MyArtifact.zip`. 

artifacts/**name**  <a name="cli.artifacts.name"></a>
Usado somente com o tipo de artefato do `S3`. Não é usado para outros tipos de artefatos.  
O nome da pasta ou do arquivo ZIP de saída da compilação dentro de `location`. Por exemplo, se você especificar `MyPath` para `path`, `MyArtifact.zip` para `name`, o caminho e o nome serão `MyPath/MyArtifact.zip`. 

artifacts/**overrideArtifactName**  <a name="cli.artifacts.overrideartifactname"></a>
Usado somente com o tipo de artefato do S3. Não é usado para outros tipos de artefatos.  
Opcional. Se definido como `true`, o nome especificado no bloco `artifacts` do arquivo buildspec substitui `name`. Para obter mais informações, consulte [Referência de especificação de construção para CodeBuild](build-spec-ref.md). 

artifacts/**packaging**  <a name="cli.artifacts.packaging"></a>
Usado somente com o tipo de artefato do `S3`. Não é usado para outros tipos de artefatos.   
Opcional. Especifica como empacotar os artefatos. Os valores permitidos são:    
NONE  
Crie uma pasta que contenha os artefatos de compilação. Este é o valor padrão.   
ZIP  
Crie um arquivo ZIP que contenha os artefatos de compilação.

#### secondaryArtifacts
<a name="cli.secondaryartifacts"></a>

Opcional. Uma matriz de objetos [ProjectArtifacts](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html) que contêm informações sobre as configurações de artefatos secundários de um projeto de compilação. Você pode adicionar até 12 artefatos secundários. O `secondaryArtifacts` usa muitas das mesmas configurações usadas pelo objeto [**artifacts**](#cli.artifacts). 

#### cache
<a name="cli.cache"></a>

Obrigatório. Um objeto [ProjectCache](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectCache.html) que contém informações sobre as configurações de cache desse projeto de compilação. Para obter mais informações, consulte [Compilações em cache](build-caching.md). 

#### ambiente
<a name="cli.environment"></a>

Obrigatório. Um objeto [ProjectEnvironment](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html) que contém informações sobre as configurações de ambiente de compilação desse projeto. Essas configurações incluem:

environment/**type**  <a name="cli.environment.type"></a>
Obrigatório. O tipo de ambiente de build. Para obter mais informações, consulte [type](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html#CodeBuild-Type-ProjectEnvironment-type) na *Referência da API do CodeBuild*.

environment/**image**  <a name="cli.environment.image"></a>
Obrigatório. O identificador de imagem de Docker usado por esse ambiente de compilação. Em geral, esse identificador é expresso como *image-name*:*tag*. Por exemplo, no repositório do Docker usado pelo CodeBuild para gerenciar as imagens do Docker, seria `aws/codebuild/standard:5.0`. No Docker Hub, `maven:3.3.9-jdk-8`. No Amazon ECR, `account-id.dkr.ecr.region-id.amazonaws.com/your-Amazon-ECR-repo-name:tag`. Para obter mais informações, consulte [Imagens do Docker fornecidas por CodeBuild](build-env-ref-available.md). 

environment/**computeType**  <a name="cli.environment.computetype"></a>
Obrigatório. Especifica os recursos computacionais usados por esse ambiente de compilação. Para obter mais informações, consulte [computeType](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html#CodeBuild-Type-ProjectEnvironment-computeType) na *Referência da API do CodeBuild*.

environment/**certificate**  <a name="cli.environment.certificate"></a>
Opcional. O ARN do bucket do Amazon S3, prefixo do caminho e chave de objeto que contém o certificado codificado em PEM. A chave de objeto pode ser apenas o arquivo .pem ou um arquivo .zip que contenha o certificado codificado em PEM. Por exemplo, se o nome do bucket do Amazon S3 for `<my-bucket>`, o prefixo do caminho for `<cert>` e o nome da chave do objeto for `<certificate.pem>`, os formatos aceitáveis para `certificate` serão `<my-bucket/cert/certificate.pem>` ou `arn:aws:s3:::<my-bucket/cert/certificate.pem>`.

environment/**environmentVariables**  <a name="cli.environment.environmentvariables"></a>
Opcional. Uma matriz de objetos [EnvironmentVariable](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_EnvironmentVariable.html) que contém as variáveis de ambiente que você deseja especificar para esse ambiente de compilação. Cada variável de ambiente é expressa como um objeto que contém um `name`, `value` e `type` de `name`, `value` e `type`.   
Os usuários do console e da AWS CLI podem ver todas as variáveis de ambiente. Caso você não tenha problema em relação à visibilidade da variável de ambiente, defina os campos `name` e `value` e definir `type` como `PLAINTEXT`.  
Recomendamos armazenar variáveis de ambiente com valores confidenciais, como um ID de chave de acesso da AWS, uma chave de acesso secreta da AWS ou uma senha, como um parâmetro no Amazon EC2 Systems Manager Parameter Store ou AWS Secrets Manager. Para `name` para esse parâmetro armazenado, defina um identificador para referência do CodeBuild.   
Se você usa o Amazon EC2 Systems Manager Parameter Store, para `value`, defina o nome do parâmetro conforme armazenado no Parameter Store. Defina `type` como `PARAMETER_STORE`. Usando um parâmetro denominado `/CodeBuild/dockerLoginPassword` como exemplo, defina `name` como `LOGIN_PASSWORD`. Defina `value` como `/CodeBuild/dockerLoginPassword`. Defina `type` como `PARAMETER_STORE`.   
Se você usa o Amazon EC2 Systems Manager Parameter Store, recomendamos armazenar os parâmetros com nomes de parâmetro que comecem com `/CodeBuild/` (por exemplo, `/CodeBuild/dockerLoginPassword`). É possível usar o console do CodeBuild para criar um parâmetro no Amazon EC2 Systems Manager. Selecione **Create parameter (Criar parâmetro)** e siga as instruções na caixa de diálogo. (Nessa caixa de diálogo, em **Chave do KMS**, é possível especificar o ARN de uma chave do AWS KMS na conta. O Amazon EC2 Systems Manager usa essa chave para criptografar o valor do parâmetro durante o armazenamento e descriptografá-lo durante a recuperação.) Se você usar o console do CodeBuild para criar um parâmetro, o console começará o nome do parâmetro com `/CodeBuild/`, pois ele está sendo armazenado. Para obter mais informações, consulte [Systems Manager Parameter Store](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-paramstore.html) e [Systems Manager Parameter Store Console Walkthrough](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-paramstore-walk.html#sysman-paramstore-console) no *Guia do usuário do Amazon EC2 Systems Manager*.  
Se o projeto de compilação se referir a parâmetros armazenados no Amazon EC2 Systems Manager Parameter Store, o perfil de serviço do projeto de compilação deverá permitir a ação `ssm:GetParameters`. Se você selecionar **Novo perfil de serviço** anteriormente, o CodeBuild incluirá essa ação no perfil de serviço padrão do projeto de compilação. No entanto, se você tiver selecionado **Existing service role (Função de serviço existente)**, deverá incluir essa ação na função de serviço separadamente.  
Se o projeto de compilação fizer referência a parâmetros armazenados no Amazon EC2 Systems Manager Parameter Store com nomes de parâmetro que não comecem com `/CodeBuild/` e você selecionar **Novo perfil de serviço**, será necessário atualizar esse perfil de serviço para conceder acesso a nomes de parâmetro que não comecem com `/CodeBuild/`. Isso porque essa função de serviço permite acesso apenas a nomes de parâmetro que comecem com `/CodeBuild/`.  
Se você selecionar **Novo perfil de serviço**, o perfil de serviço incluirá permissão para descriptografar todos os parâmetros no namespace `/CodeBuild/` no Amazon EC2 Systems Manager Parameter Store.  
As variáveis de ambiente definidas por você substituem variáveis de ambiente existentes. Por exemplo, se a imagem de Docker já contiver uma variável de ambiente chamada `MY_VAR` com um valor de `my_value` e você definir uma variável de ambiente chamada `MY_VAR` com um valor de `other_value`, `my_value` será substituído por `other_value`. Da mesma maneira, se a imagem de Docker já contiver uma variável de ambiente chamada `PATH` com um valor de `/usr/local/sbin:/usr/local/bin` e você definir uma variável de ambiente chamada `PATH` com um valor de `$PATH:/usr/share/ant/bin`, `/usr/local/sbin:/usr/local/bin` será substituído pelo valor literal `$PATH:/usr/share/ant/bin`.  
Não defina nenhuma variável de ambiente com um nome que comece com `CODEBUILD_`. Este prefixo está reservado para uso interno.  
Se uma variável de ambiente com o mesmo nome é definida em vários locais, o valor será determinado como se segue:  
+ O valor na chamada de operação de início de build tem a maior prioridade.
+ O valor na definição de projeto de build tem a precedência seguinte.
+ O valor na declaração de buildspec tem a menor prioridade.
Se você usar o Secrets Manager, para `value`, defina o nome do parâmetro conforme armazenado no Secrets Manager. Defina `type` como `SECRETS_MANAGER`. Usando um segredo denominado `/CodeBuild/dockerLoginPassword` como exemplo, defina `name` como `LOGIN_PASSWORD`. Defina `value` como `/CodeBuild/dockerLoginPassword`. Defina `type` como `SECRETS_MANAGER`.  
Se você usa o Secrets Manager, recomendamos armazenar segredos com nomes que comecem com `/CodeBuild/` (por exemplo, `/CodeBuild/dockerLoginPassword`). Para obter mais informações, consulte [O que é o AWS Secrets Manager?](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html) no *Guia do usuário do AWS Secrets Manager*.   
Se o projeto de compilação se referir a segredos armazenados no Secrets Manager, o perfil de serviço do projeto de compilação deverá permitir a ação `secretsmanager:GetSecretValue`. Se você selecionar **Novo perfil de serviço** anteriormente, o CodeBuild incluirá essa ação no perfil de serviço padrão do projeto de compilação. No entanto, se você tiver selecionado **Existing service role (Função de serviço existente)**, deverá incluir essa ação na função de serviço separadamente.   
Se o projeto de compilação fizer referência a segredos armazenados no Secrets Manager com nomes que não comecem com `/CodeBuild/` e você selecionar **Novo perfil de serviço**, será necessário atualizar esse perfil de serviço para conceder acesso a nomes de segredo que não comecem com `/CodeBuild/`. O motivo é que o perfil de serviço permite acesso apenas a nomes de segredo que comecem com `/CodeBuild/`.  
Se você selecionar **Novo perfil de serviço**, o perfil de serviço incluirá permissão para descriptografar todos os segredos no namespace `/CodeBuild/` no Secrets Manager.

environment/**registryCredential**  <a name="cli.environment.registrycredential"></a>
Opcional. Um objeto [RegistryCredential](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_RegistryCredential.html) que especifica as credenciais que fornecem acesso a um registro privado do Docker.     
environment/registryCredential/**credential**  
Especifica o ARN ou o nome das credenciais criadas usando o AWS Managed Services. Você poderá usar o nome das credenciais somente se elas existirem na região atual.  
environment/registryCredential/**credentialProvider**  
O único valor válido é `SECRETS_MANAGER`.
Quando isso for configurado:   
+ `imagePullCredentials` deve ser definido como `SERVICE_ROLE`.
+ A imagem não pode ser selecionada nem uma imagem do Amazon ECR.

environment/**imagePullCredentialsType**  <a name="cli.environment.imagepullcredentialstype"></a>
Opcional. O tipo de credenciais que o CodeBuild usa para extrair imagens na compilação. Há dois valores válidos:    
CODEBUILD  
`CODEBUILD` especifica que o CodeBuild usa as próprias credenciais. Você deve editar a política de repositório do Amazon ECR para confiar na entidade principal do serviço do CodeBuild.   
SERVICE\$1ROLE  
Especifica que o CodeBuild usa o perfil de serviço do projeto de compilação. 
Quando você usa uma conta ou imagem de registro privado, você deve usar credenciais `SERVICE_ROLE`. Quando você usa uma imagem selecionada do CodeBuild, é necessário usar credenciais de `CODEBUILD`. 

environment/**privilegedMode**  <a name="cli.environment.privilegedmode"></a>
Defina `true` somente se planeja usar esse projeto de compilação para criar imagens do Docker. Do contrário, todas as compilações associadas que tentarem interagir com o daemon do Docker falharão. Você também deve iniciar o daemon do Docker, de maneira que as compilações possam interagir com ele. Uma maneira de fazer isso é inicializar o daemon do Docker na fase `install` de seu arquivo buildspec executando os seguintes comandos de compilação. Não execute esses comandos caso você tenha especificado uma imagem de ambiente de compilação fornecida pelo CodeBuild com suporte do Docker.  
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](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities) no site do Docker Docs e ative o modo privilegiado. Além disso, o Windows não é compatível com o modo privilegiado.

```
- nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 &
- timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
```

#### serviceRole
<a name="cli.servicerole"></a>

Obrigatório. O ARN do perfil de serviço que o CodeBuild usa para interagir com serviços em nome do usuário (por exemplo, `arn:aws:iam::account-id:role/role-name`).

#### autoRetryLimit
<a name="cli.autoretrylimit"></a>

Opcional. O número de repetições automáticas adicionais após a falha de uma compilação. Por exemplo, se o limite de repetição automática estiver definido como 2, o CodeBuild chamará a API `RetryBuild` para repetir automaticamente a compilação por até 2 vezes adicionais.

#### timeoutInMinutes
<a name="cli.timeoutinminutes"></a>

Opcional. O número de minutos, entre 5 e 2.160 (36 horas), tempo depois do qual o CodeBuild para a compilação caso ela não tenha sido concluída. Se não especificado, o padrão de 60 será usado. Para determinar se e quando o CodeBuild interromperá uma compilação por tempo limite, execute o comando `batch-get-builds`. Para saber se o build parou, observe a saída para um valor `buildStatus` de `FAILED`. Para saber qual foi o tempo limite do build, observe a saída para o valor `endTime` associado ao valor `phaseStatus` de `TIMED_OUT`. 

#### queuedTimeoutInMinutes
<a name="cli.queuedtimeoutinminutes"></a>

Opcional. O número de minutos, entre 5 e 480 (8 horas), tempo depois do qual o CodeBuild para a compilação caso ela ainda esteja na fila. Se não especificado, o padrão de 60 será usado. 

#### encryptionKey
<a name="cli.encryptionkey"></a>

Opcional. O alias ou o ARN do AWS KMS key usado pelo CodeBuild para criptografar a saída da compilação. Se você especificar um alias, use o formato `arn:aws:kms:region-ID:account-ID:key/key-ID` ou, se já houver um alias, use o formato `alias/key-alias`. Se não for especificada, a chave gerenciada da AWS para o Amazon S3 será usada.

#### tags
<a name="cli.tags"></a>

Opcional. Uma matriz de objetos [Tag](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Tag.html) que fornecem as tags que você deseja associar a esse projeto de compilação. Você pode especificar até 50 tags. Essas tags podem ser usadas por qualquer serviço da AWS que seja compatível com tags de projeto de compilação do CodeBuild. Cada tag é expressa como um objeto com uma `key` e um `value`.

#### vpcConfig
<a name="cli.vpcconfig"></a>

Opcional. Um objeto [VpcConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_VpcConfig.html) que contém informações sobre a configuração da VPC para o projeto. Para obter mais informações, consulte [Use AWS CodeBuild com a Amazon Virtual Private Cloud](vpc-support.md).

Essas propriedades incluem: 

vpcId  
Obrigatório. O ID da VPC que o CodeBuild usa. Execute este comando para obter uma lista de todos os IDs de VPC na sua região:  

```
aws ec2 describe-vpcs --region <region-ID>
```

sub-redes  
Obrigatório. Uma matriz de IDs de sub-rede que incluem recursos usados pelo CodeBuild. Execute este comando para obter estes IDs:  

```
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region <region-ID>
```

securityGroupIds  
Obrigatório. Uma matriz de IDs de grupo de segurança usados pelo CodeBuild para permitir acesso a recursos nas VPCs. Execute este comando para obter estes IDs:  

```
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=<vpc-id>" --<region-ID>
```

#### badgeEnabled
<a name="cli.badgeenabled"></a>

Opcional. Especifica se você deve incluir emblemas de compilação no projeto do CodeBuild. Defina como `true` para habilitar a criação de emblemas. Caso contrário, como `false`. Para obter mais informações, consulte [Crie uma amostra de crachás com CodeBuild](sample-build-badges.md).

#### logsConfig
<a name="cli.logsconfig"></a>

Um objeto [LogsConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_LogsConfig.html) que contém informações sobre onde os logs dessa compilação estão localizados.

logsConfig/**cloudWatchLogs**  <a name="cli.logsconfig.cloudwatchlogs"></a>
Um objeto [CloudWatchLogsConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CloudWatchLogsConfig.html) que contém informações sobre o envio de logs ao CloudWatch Logs.

logsConfig/**s3Logs**  <a name="cli.logsconfig.s3logs"></a>
Um objeto [S3LogsConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_S3LogsConfig.html) que contém informações sobre o envio de logs ao Amazon S3.

#### fileSystemLocations
<a name="cli.filesystemlocations"></a>

Opcional. Uma matriz de objetos [ProjectFileSystemsLocation](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectFileSystemLocation.html) que contém informações sobre a configuração do Amazon EFS. 

#### buildBatchConfig
<a name="cli.buildbatchconfig"></a>

Opcional. O objeto `buildBatchConfig` é uma estrutura [ProjectBuildBatchConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectBuildBatchConfig.html) que contém as informações de configuração de compilação em lote para o projeto.

buildBatchConfig/**serviceRole**  
O ARN do perfil de serviço para o projeto de compilação em lote.

buildBatchConfig/**combineArtifacts**  
Um valor booliano que especifica se os artefatos da compilação em lote devem ser combinados em um único local de artefato.

buildBatchConfig/restrictions/**maximumBuildsAllowed**  
O número máximo de compilações permitidas.

buildBatchConfig/restrictions/**computeTypesAllowed**  
Uma matriz de strings que especificam os tipos de computação que são permitidos para a compilação em lote. Consulte [Build environment compute types](https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html) para obter esses valores. 

buildBatchConfig/restrictions/**fleetsAllowed**  
Uma matriz de strings que especificam as frotas que são permitidas para a compilação em lote. Consulte mais informações em [Executar compilações em frotas com capacidade reservada](https://docs.aws.amazon.com/codebuild/latest/userguide/fleets.html). 

buildBatchConfig/**timeoutInMinutes**  
A quantidade máxima de tempo, em minutos, em que a compilação em lote deve ser concluída.

buildBatchConfig/**batchReportMode**   
Especifica como os relatórios de status de compilação são enviados ao provedor de origem para a compilação em lote. Os valores válidos são:    
`REPORT_AGGREGATED_BATCH`  
(Padrão) Agregue todos os status de compilação em um único relatório de status.  
`REPORT_INDIVIDUAL_BUILDS`  
Envie um relatório de status separado para cada compilação individual.

#### concurrentBuildLimit
<a name="cli.concurrentbuildlimit"></a>

Define o número máximo de compilações simultâneas permitidas para este projeto.

Novas compilações só são iniciadas se o número atual de compilações for menor ou igual a esse limite. Se a contagem de compilações atual atender a esse limite, novas compilações serão limitadas e não serão executadas.

### Criar o projeto
<a name="cp-cli-create-project"></a>

Para criar o projeto, execute o comando **[https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html)** novamente, transmitindo o arquivo JSON:

```
aws codebuild create-project --cli-input-json file://<json-file>
```

Se for bem-sucedida, a representação JSON de um objeto do [projeto](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Project.html) aparecerá na saída do console. Consulte a [sintaxe de resposta CreateProject](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateProject.html#API_CreateProject_ResponseSyntax) para ver um exemplo desses dados.

Exceto o nome de projeto de build, você pode alterar qualquer configuração do projeto de build, posteriormente. Para obter mais informações, consulte [Alterar configurações de um projeto de compilação (AWS CLI)](change-project.md#change-project-cli).

Para começar a executar um build, consulte [Executar uma compilação (AWS CLI)](run-build-cli.md).

Se o código-fonte estiver armazenado em um repositório do GitHub e você quiser que o CodeBuild recompile o código-fonte sempre que uma alteração no código for enviada ao repositório, consulte [Começar a executar compilações automaticamente (AWS CLI)](run-build-cli-auto-start.md).

## Criar um projeto de compilação (AWS SDKs)
<a name="create-project-sdks"></a>

Para obter informações sobre como usar o AWS CodeBuild com os SDKs da AWS, consulte [AWS SDKs e referência de ferramentas](sdk-ref.md).

## Crie um projeto de compilação (CloudFormation)
<a name="create-project-cloud-formation"></a>

Para obter informações sobre como usar o AWS CodeBuild com o CloudFormation, consulte [the CloudFormation template for CodeBuild](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-codebuild-project.html) no *Guia do usuário do AWS CloudFormation*.