

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á.

# Crie um projeto de construção em AWS CodeBuild
<a name="create-project"></a>

Você pode usar o AWS CodeBuild console, AWS CLI, ou AWS SDKs para criar um projeto de construção.

**Topics**
+ [Pré-requisitos](#create-project-prerequisites)
+ [Criar um projeto de compilação (console)](#create-project-console)
+ [Criar um projeto de compilação (AWS CLI)](#create-project-cli)
+ [Criar um projeto de compilação (AWS SDKs)](#create-project-sdks)
+ [Criar 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 AWS CodeBuild console em [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home).

 Se uma página de CodeBuild informações for exibida, escolha **Criar projeto de construçã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)
+ [Fonte](#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 dos projetos de criação devem ser exclusivos em cada AWS conta. 

**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.

**Informações adicionais**  
(Opcional) Em **Tags**, insira o nome e o valor de todas as tags que você deseja que AWS os serviços de suporte usem. Use **Adicionar linha** para adicionar uma tag. É possível adicionar até 50 tags. 

### Fonte
<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:  
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 que você escolha nomes de ramificações do Git que não se pareçam com commit IDs, 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 do aplicativo** ou **token de acesso pessoal** para se conectar 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 que você escolha nomes de ramificações do Git que não se pareçam com commit IDs, 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 de origem primária**, selecione **Reconstruir sempre que uma alteração de código for enviada para esse repositório** se você quiser CodeBuild criar o código-fonte toda vez que uma alteração de código for enviada para 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 **GitHub Aplicativo** ou **Token de acesso pessoal** para se conectar CodeBuild. **OAuth**

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

 **Repositório**   
Escolha **Repositório em minha GitHub conta**, **repositório público** ou **webhook com GitHub escopo** definido e insira a 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 que você escolha nomes de ramificações do Git que não se pareçam com commit IDs, 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 `context` parâmetro no status de GitHub confirmação. 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 GitHub desenvolvedor.  
Em **URL de destino**, insira o valor a ser usado para o `target_url` parâmetro no status de GitHub confirmação. 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 GitHub desenvolvedor.  
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 de origem primária**, selecione **Reconstruir sempre que uma alteração de código for enviada para esse repositório** se você quiser CodeBuild criar o código-fonte toda vez que uma alteração de código for enviada para 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**o **token de acesso pessoal** ao qual se conectar CodeBuild.

 **Conexão**   
Selecione uma conexão 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 GitHub corporativa** ou **webhook com escopo GitHub corporativo** e insira a 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 que você escolha nomes de ramificações do Git que não se pareçam com commit IDs, 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 `context` parâmetro no status de GitHub confirmação. 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 GitHub desenvolvedor.  
Em **URL de destino**, insira o valor a ser usado para o `target_url` parâmetro no status de GitHub confirmação. 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 GitHub desenvolvedor.  
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 **Habilitar SSL inseguro** para ignorar os avisos de SSL ao se conectar ao seu GitHub repositório de projetos corporativos. 

Em **Eventos de webhook de origem primária**, selecione **Reconstruir sempre que uma alteração de código for enviada para esse repositório** se você quiser CodeBuild criar o código-fonte toda vez que uma alteração de código for enviada para 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**   
**CodeConnections**é usado para se GitLab conectar CodeBuild a.

 **Conexão**   
Selecione uma GitLab conexão pela qual se conectar 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 que você escolha nomes de ramificações do Git que não se pareçam com commit IDs, 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**   
**CodeConnections**é usado para conectar o GitLab Self Managed CodeBuild a.

 **Conexão**   
Selecione uma conexão GitLab autogerenciada para se conectar 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 que você escolha nomes de ramificações do Git que não se pareçam com commit IDs, 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 por AWS CodeBuild, escolha Sob demanda.** Com frotas sob demanda, CodeBuild fornece computação para suas construçõ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 por AWS CodeBuild, escolha **Capacidade reservada** e, em seguida, 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 por AWS CodeBuild, escolha **Imagem gerenciada** e, em seguida, faça seleções em **Sistema operacional**, **Tempo de execução (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 o **Amazon ECR**, use o **repositório Amazon ECR e** a imagem do **Amazon ECR para escolher a imagem** do Docker em sua conta. 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 *.
CodeBuild substitui as imagens personalizadas do `ENTRYPOINT` 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 uma função CodeBuild de serviço, escolha **Nova função de serviço**. No campo **Role name**, digite o nome da nova função.
+ Se você tiver uma função CodeBuild de serviço, escolha **Função 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, você pode criar uma função de CodeBuild serviço 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, CodeBuild chamará a `RetryBuild` API para repetir automaticamente sua compilação por até 2 vezes adicionais.  
**Timeout (Tempo limite)**  
Especifique um valor, entre 5 minutos e 36 horas, após o qual CodeBuild interrompe a compilação se ela não for 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 se você escolher uma imagem do ambiente de compilação fornecida CodeBuild com o 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"
```  
**VPC**  
Se você quiser CodeBuild trabalhar com sua VPC:  
+ Para **VPC**, escolha a ID da VPC que usa. CodeBuild 
+ Para sub-redes **VPC, escolha as sub-redes** que incluem os recursos que usa. CodeBuild 
+ Para **grupos de segurança da VPC**, escolha os grupos de segurança CodeBuild usados para permitir o acesso aos recursos no. 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.   
CodeBuild define automaticamente a variável de ambiente para sua AWS região. Defina as seguintes variáveis de ambiente se elas não tiverem sido adicionadas ao buildspec.yml:  
+ AWS\_ACCOUNT\_ID
+ IMAGE\_REPO\_NAME
+ IMAGE\_TAG
O console e AWS CLI os usuários podem ver 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 que você armazene uma variável de ambiente com um valor confidencial, como um ID de chave de AWS acesso, uma chave de acesso AWS secreta ou uma senha como parâmetro no Amazon EC2 Systems Manager Parameter Store AWS Secrets Manager ou.   
Se você usar o Amazon EC2 Systems Manager Parameter Store, em **Tipo**, escolha **Parâmetro**. Em **Nome**, insira um identificador 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`). Você pode usar o CodeBuild console 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, para a **chave KMS**, você pode especificar o ARN de AWS KMS uma chave na sua 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 CodeBuild console para criar um parâmetro, o console iniciará o nome do parâmetro com a `/CodeBuild/` forma como 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ê escolheu **Nova função de serviço** anteriormente, CodeBuild inclua essa ação na função de serviço padrão do seu 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 da .  
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 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ê escolheu **Nova função de serviço** anteriormente, CodeBuild inclua essa ação na função de serviço padrão do seu 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 o [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. Essa nova função é necessária, pois CodeBuild você deve poder chamar as `RetryBuild` ações `StartBuild``StopBuild`, e 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.
+ CodeBuild compilações em lote 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ó está disponível quando a fonte do projeto é Bitbucket ou GitHub Enterprise GitHub, e **Relatar os status de compilação ao provedor de origem quando suas compilações começam e terminam** é selecionado em Fonte.**   
 **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. Você pode criar Amazon CloudWatch Logs, Amazon S3 logs ou ambos. 

**CloudWatch**  
Se você quiser CloudWatch registros do Amazon Logs:    
**CloudWatch logs**  
Selecione **CloudWatch logs (Logs do &CW;)**.  
**Group name**  
Insira o nome do seu grupo de CloudWatch logs do Amazon Logs.  
**Nome do fluxo**  
Insira o nome do seu stream de CloudWatch log do Amazon Logs. 

**S3**  
Se você quiser que o Amazon S3 registre:    
**Logs do S3**  
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 S3**  
Selecione se não quiser que os logs do S3 sejam criptografados. 

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

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

Para criar um projeto de CodeBuild construção usando o AWS CLI, você cria uma estrutura de [projeto](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Project.html) formatada em JSON, preenche a estrutura e chama o [https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html](https://docs.aws.amazon.com/cli/latest/reference/codebuild/create-project.html)comando 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 exclusivo em todos os projetos de compilação em sua AWS conta.

#### **descrição**
<a name="cli.description"></a>

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

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

Obrigatório. Um [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html)objeto que contém informações sobre as configurações do código-fonte desse projeto de construçã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ê {{<source-type>}} defina como`CODEPIPELINE`. O local do código-fonte para o tipo de repositório especificado.  
+ Para CodeCommit, o URL do clone 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 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 AWS conta à sua GitHub conta. Para fazer isso, use o CodeBuild console para criar um projeto de construção.
  + Escolha **Autorizar aplicativo**. (Depois de se conectar à sua GitHub conta, você não precisa concluir a criação do projeto de construção. Você pode fechar o CodeBuild console.) 
+ Para o GitHub Enterprise Server, a URL do clone HTTP ou HTTPS para o repositório que contém o código-fonte e o arquivo buildspec. Você também deve conectar sua AWS conta à sua conta do GitHub Enterprise Server. Para fazer isso, use o CodeBuild console para criar um projeto de construção.

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

  1. Copie esse token na sua área de transferência para que você possa usá-lo ao criar seu CodeBuild projeto. Para obter mais informações, consulte [Criação de 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 da GitHub Ajuda. 

  1. Ao usar o console para criar seu CodeBuild projeto, em **Source**, para **Source provider**, escolha **GitHubEnterprise**.

  1. Em **Personal Access Token**, cole o token que foi copiado na área de transferência. Escolha **Salvar token**. Sua CodeBuild conta agora está conectada à sua conta do GitHub Enterprise Server.
+ Para GitLab e 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ê usar GitLab, o URL deverá conter gitlab.com. Se você usa GitLab autogerenciamento, o URL não precisa conter gitlab.com. Você deve conectar sua AWS conta à sua conta GitLab ou à sua conta GitLab autogerenciada. 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**. Nessa página, crie uma conexão GitLab ou uma conexão GitLab autogerenciada e escolha **Conectar a. 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 AWS conta à sua conta do Bitbucket. Para fazer isso, use o CodeBuild console para criar um projeto de construçã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 de se conectar à sua conta do Bitbucket, você não precisa terminar de criar o projeto de compilação. Você pode fechar o CodeBuild console.) 
+ Para AWS CodePipeline, não especifique um `location` valor para`source`. CodePipeline ignora esse valor porque, ao criar um pipeline em CodePipeline, você especifica a localização do código-fonte no estágio Fonte do pipeline.

fonte/ **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 AWS região do projeto de construçã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 CodeBuild para acessar o código-fonte a ser criado.

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 Secrets Manager ARN ou o CodeConnections ARN.

fonte/ **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 isso com um provedor de origem diferente do GitHub GitHub Enterprise Server ou do Bitbucket, um `invalidInputException` será lançado.   
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).

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

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

```
AWS CodeBuild sample-project Build #24 - pr/8
```  
**fonte///URL buildStatusConfig de destino**  
Para origens do Bitbucket, esse parâmetro é usado para o parâmetro `url` no status de confirmação do Bitbucket. Para GitHub fontes, esse parâmetro é usado para o `target_url` parâmetro no status de GitHub confirmação.  
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.  
Você também pode incluir variáveis de CodeBuild ambiente no `targetUrl` para adicionar informações adicionais 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
```

fonte/ **gitSubmodulesConfig**  <a name="cli.source.gitsubmodulesconfig"></a>
Opcional. Informações sobre a configuração dos submódulos do Git. Usado somente com CodeCommit GitHub,, GitHub Enterprise Server e Bitbucket.     
**fonte///fetchSubmodules gitSubmodulesConfig**  
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.

fonte/ **InsecureSsl**  <a name="cli.source.insecuressl"></a>
Opcional. Usado somente com o GitHub Enterprise Server. Defina esse valor `true` para ignorar os avisos de TLS ao se conectar ao seu repositório de projetos 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 [ProjectSource](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectSource.html)objetos que contém informações sobre as fontes secundárias de um projeto de construção. É possível adicionar até 12 origens secundárias. Os objetos `secondarySources` usam as mesmas propriedades usadas pelo objeto [**source**](#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 CodeCommit, o ID do commit, branch ou tag Git a ser usado.
+ Para GitHub, o ID do commit, o ID do pull request, o nome da ramificação ou o nome da tag que corresponde à versão do código-fonte que você deseja criar. 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 GitLab, o ID do commit, o ID do pull request, o nome da ramificação, o nome da tag ou a referência e um ID do commit. 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 [ProjectArtifacts](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html)objeto que contém informações sobre as configurações do artefato de saída desse projeto de construçã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`, CodeBuild usa `namespaceType` (se especificado) e `name` para determinar o caminho e o nome do arquivo ZIP ou pasta 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`, CodeBuild usa `path` (se especificado) e `name` para determinar o caminho e o nome do arquivo ZIP ou pasta 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`. 

artefatos/ **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 [ProjectArtifacts](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectArtifacts.html)objetos que contém informações sobre as configurações de artefatos secundários para um projeto de construçã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 [ProjectCache](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectCache.html)objeto que contém informações sobre as configurações de cache desse projeto de construção. Para obter mais informações, consulte [Compilações em cache](build-caching.md). 

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

Obrigatório. Um [ProjectEnvironment](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html)objeto que contém informações sobre as configurações do ambiente de construçã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 [digite](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectEnvironment.html#CodeBuild-Type-ProjectEnvironment-type) na *Referência CodeBuild da API*.

environment/**image**  <a name="cli.environment.image"></a>
Obrigatório. O identificador de imagem de Docker usado por esse ambiente de compilação. Normalmente, esse identificador é expresso como{{image-name}}:{{tag}}. Por exemplo, no repositório Docker CodeBuild usado para gerenciar suas imagens do Docker, isso pode ser. `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 CodeBuild Referência da API.*

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 [EnvironmentVariable](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_EnvironmentVariable.html)objetos que contém as variáveis de ambiente que você deseja especificar para esse ambiente de construção. Cada variável de ambiente é expressa como um objeto que contém um `name`, `value` e `type` de `name`, `value` e `type`.   
O console e AWS CLI os usuários 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 que você armazene variáveis de ambiente com valores confidenciais, como um ID de chave de AWS acesso, uma chave de acesso AWS secreta ou uma senha, como um parâmetro no Amazon EC2 Systems Manager Parameter Store AWS Secrets Manager ou. Para `name` esse parâmetro armazenado, defina um identificador CodeBuild para referência.   
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`). Você pode usar o CodeBuild console 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, para a **chave KMS**, você pode especificar o ARN de AWS KMS uma chave na sua 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 CodeBuild console para criar um parâmetro, o console iniciará o nome do parâmetro com a `/CodeBuild/` forma como 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ê escolheu **Nova função de serviço** anteriormente, CodeBuild inclua essa ação na função de serviço padrão do seu 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 da .  
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ê escolheu **Nova função de serviço** anteriormente, CodeBuild inclua essa ação na função de serviço padrão do seu 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 [RegistryCredential](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_RegistryCredential.html)objeto 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.

**ambiente/tipo imagePullCredentials**  <a name="cli.environment.imagepullcredentialstype"></a>
Opcional. O tipo de credencial CodeBuild usado para extrair imagens em sua compilação. Há dois valores válidos:    
CODEBUILD  
`CODEBUILD`especifica que CodeBuild usa suas próprias credenciais. Você deve editar sua política de repositório do Amazon ECR para confiar no responsável pelo CodeBuild serviço.   
SERVICE\_ROLE  
Especifica que CodeBuild usa a função de serviço do seu projeto de compilação. 
Quando você usa uma conta ou imagem de registro privado, você deve usar credenciais `SERVICE_ROLE`. Ao usar uma imagem com CodeBuild curadoria, você deve usar `CODEBUILD` credenciais. 

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 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"
```

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

Obrigatório. O ARN da função de serviço é CodeBuild usado para interagir com os 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, CodeBuild chamará a `RetryBuild` API para repetir automaticamente sua compilação por até 2 vezes adicionais.

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

Opcional. O número de minutos, entre 5 e 2160 (36 horas), após os quais CodeBuild interrompe a construção se ela não for concluída. Se não especificado, o padrão de 60 será usado. Para determinar se e quando uma compilação CodeBuild foi interrompida devido a um tempo limite, execute o `batch-get-builds` comando. 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`. 

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

Opcional. O número de minutos, entre 5 e 480 (8 horas), após os quais CodeBuild interrompe a compilação se ela ainda estiver na fila. Se não especificado, o padrão de 60 será usado. 

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

Opcional. O alias ou ARN do usado CodeBuild por para criptografar AWS KMS key 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 KMS AWS gerenciada 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 AWS serviço que ofereça suporte à CodeBuild criação de tags de projeto. Cada tag é expressa como um objeto com uma `key` e um `value`.

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

Opcional. Um [VpcConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_VpcConfig.html)objeto que contém informações sobre a configuração da VPC para seu 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 CodeBuild usa. Execute este comando para obter uma lista de todas as VPCs IDs em sua região:  

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

sub-redes  
Obrigatório. Uma matriz de sub-rede IDs que inclui 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 grupos de segurança IDs usada por CodeBuild para permitir o acesso aos recursos na VPC. 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ê deseja incluir emblemas de construção em seu CodeBuild projeto. 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 [LogsConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_LogsConfig.html)objeto que contém informações sobre onde os registros dessa compilação estão localizados.

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

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

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

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

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

Opcional. O `buildBatchConfig` objeto é uma [ProjectBuildBatchConfig](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_ProjectBuildBatchConfig.html)estrutura 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/**Combine artefatos**  
Um valor booliano que especifica se os artefatos da compilação em lote devem ser combinados em um único local de artefato.

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

buildBatchConfig/restrições/ **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**/restrições/ Frotas permitidas**  
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 CreateProject resposta](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 seu código-fonte estiver armazenado em um GitHub repositório e você quiser CodeBuild reconstruir o código-fonte toda vez que uma alteração de código for enviada para o 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 AWS CodeBuild com o AWS SDKs, consulte [AWS SDKs e referência de ferramentas](sdk-ref.md) o.

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

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