Selecione suas preferências de cookies

Usamos cookies essenciais e ferramentas semelhantes que são necessárias para fornecer nosso site e serviços. Usamos cookies de desempenho para coletar estatísticas anônimas, para que possamos entender como os clientes usam nosso site e fazer as devidas melhorias. Cookies essenciais não podem ser desativados, mas você pode clicar em “Personalizar” ou “Recusar” para recusar cookies de desempenho.

Se você concordar, a AWS e terceiros aprovados também usarão cookies para fornecer recursos úteis do site, lembrar suas preferências e exibir conteúdo relevante, incluindo publicidade relevante. Para aceitar ou recusar todos os cookies não essenciais, clique em “Aceitar” ou “Recusar”. Para fazer escolhas mais detalhadas, clique em “Personalizar”.

Criar um projeto de compilação no AWS CodeBuild

Modo de foco
Criar um projeto de compilação no AWS CodeBuild - AWS CodeBuild

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

Pré-requisitos

Antes de criar um projeto de compilação, responda às perguntas em Planejar uma compilação.

Criar um projeto de compilação (console)

Abra o console do AWS CodeBuild em 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 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.

Configuração de projetos

Nome do projeto

Insira um nome para esse projeto de compilação. Os nomes de projeto de compilação devem ser únicos em cada conta da 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.

nota

O emblema de compilação não se aplicará se o provedor de origem for Amazon S3.

Habilitar limite de compilações simultâneas

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

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

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:

nota

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 Exemplo de versão de fonte com o AWS CodeBuild.

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 Exemplo de versão de fonte com o AWS CodeBuild.

nota

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

Submódulos do Git

Selecione Usar submódulos do Git se quiser incluir submódulos do Git no 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 Exemplo de versão de fonte com o AWS CodeBuild.

nota

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 Profundidade do clone de 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 Completo.

Submódulos do Git

Selecione Usar submódulos do Git se quiser incluir submódulos do Git no 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.

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

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 Exemplo de versão de fonte com o AWS CodeBuild.

nota

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 Profundidade do clone de 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 Completo.

Submódulos do Git

Selecione Usar submódulos do Git se quiser incluir submódulos do Git no 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.

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 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 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 Eventos de webhook do GitHub.

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 Exemplo de versão de fonte com o AWS CodeBuild.

nota

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 Profundidade do clone de 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 Completo.

Submódulos do Git

Selecione Usar submódulos do Git se quiser incluir submódulos do Git no 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.

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 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 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 Habilitar SSL não seguro 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 Eventos de webhook do GitHub.

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 Exemplo de versão de fonte com o AWS CodeBuild.

nota

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 Profundidade do clone de 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 Completo.

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.

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 Exemplo de versão de fonte com o AWS CodeBuild.

nota

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 Profundidade do clone de 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 Completo.

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.

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 Exemplo de versão de fonte com o AWS CodeBuild.

Ambiente

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 obter mais informações, consulte Executar compilações em frotas de capacidade reservada.

Imagem do ambiente

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 Tipo de ambiente se estiver disponível.

  • Para usar outra imagem do Docker, selecione Imagem personalizada. Em Tipo de ambiente, selecione ARM, Linux, Linux GPU ou Windows. Se você selecionar Outro registro, em 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 Registro da imagem, selecione 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? no Guia do usuário do AWS Secrets Manager.

nota

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 obter mais informações, consulte Execute compilações na computação do AWS Lambda.

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 Nome da função, 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.

nota

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 compilação. Se você usar o console para associar esse perfil de serviço a outro projeto de compilação, a função será atualizada para funcionar com os outros projetos de compilação. Um perfil 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.

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 horas e minutos 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.

nota

Por padrão, o daemon do Docker está habilitado para compilações não VPC. Se você quiser usar contêineres do Docker para compilações da VPC, consulte Privilégio de tempo de execução e funcionalidades do Linux 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ê 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 Usar o AWS CodeBuild com o Amazon Virtual Private Cloud.

Computação

Selecione uma das opções disponíveis.

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.

nota

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_ACCOUNT_ID

  • IMAGE_REPO_NAME

  • IMAGE_TAG

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 Nome e Valor e Tipo como Texto simples.

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 Tipo, escolha Parâmetro. Em Nome, insira LOGIN_PASSWORD. Em Valor, insira /CodeBuild/dockerLoginPassword.

Importante

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 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 e Systems Manager Parameter Store Console Walkthrough 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 Perfil de serviço existente, deverá incluir essa ação no perfil 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 esse perfil 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 do 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 do 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 compilação tem a maior prioridade.

  • O valor na definição de projeto de compilação 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 Valor, insira um reference-key usando o padrão secret-id:json-key:version-stage:version-id. Para obter mais informações, consulte Secrets Manager reference-key in the buildspec file.

Importante

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? 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 Perfil de serviço existente, deverá incluir essa ação no perfil 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

Especificações de compilação

Execute um destes procedimentos:

  • Se o seu código-fonte inclui um arquivo buildspec, escolha 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 buildspec 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 Inserir comandos de compilação. Para 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 Referência de buildspec.

Configuração em lote

É possível executar um grupo de compilações como uma única operação. Para obter mais informações, consulte Executar compilações em lotes.

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.

Tipo(s) de computação permitido(s) para lote

Selecione os tipos de computação permitidos 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.

nota

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

Tipo

Execute um destes procedimentos:

  • Se você não quiser criar artefatos de saída da compilação, escolha Nenhum artefato. É 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 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 Habilitar o controle semântico de versões 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.

    • Para Nome do bucket, selecione o nome do bucket de saída.

    • Se você tiver escolhido Inserir comandos de compilação anteriormente neste procedimento, em 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.

    • Se você não quiser que os artefatos de compilação sejam criptografados, selecione Remover a criptografia dos artefatos.

Para cada conjunto secundário de artefatos desejado:

  1. Em Identificador do artefato, insira um valor com menos de 128 caracteres e que contenha apenas caracteres alfanuméricos e sublinhados.

  2. Escolha Adicionar artefato.

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

  4. Escolha 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 Tipo de cache, selecione uma das seguintes opções:

  • Se não quiser usar um cache, escolha Nenhum 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 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. Para obter mais informações sobre armazenamento em cache, consulte Compilações em cache para melhorar o desempenho.

Logs

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.

Nome do grupo

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 S3

Selecione 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)

Para obter mais informações sobre como usar o AWS CLI com o CodeBuild, consulte Referência da linha de comando.

Para criar um projeto de compilação do CodeBuild usando a AWS CLI, crie uma estrutura de projeto formatada em JSON, preencha a estrutura e chame o comando create-project para criar o projeto.

Criar o arquivo JSON

Crie um arquivo JSON esqueleto com o comando create-project, 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

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>" ] }, "timeoutInMins": <batch-timeout>, "batchReportMode": "REPORT_AGGREGATED_BATCH" | "REPORT_INDIVIDUAL_BUILDS" }, "concurrentBuildLimit": <concurrent-build-limit> }

Substitua o seguinte:

name

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

descrição

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

source

Obrigatório. Um objeto ProjectSource 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. Essas configurações incluem o seguinte:

source/type

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.

source/location

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.

    2. 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 no site de Ajuda do GitHub.

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

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

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

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.

source/auth

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

Obrigatório. O tipo de autorização a ser usado. Os valores válidos são:

  • OAUTH

  • CODECONNECTIONS

  • SECRETS_MANAGER

source/auth/resource

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

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.

source/buildStatusConfig

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 #24 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

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

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

Um identificador definido pelo usuário para a origem do projeto. Opcional para a origem principal. Obrigatório para origens secundárias.

secondarySources

Opcional. Uma matriz de objetos ProjectSource 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 source. Em um objeto de origem secundário, o sourceIdentifier é obrigatório.

secondarySourceVersions

Opcional. Uma matriz de objetos ProjectSourceVersion. Se secondarySourceVersions for especificado no nível de compilação, ele terá precedência.

sourceVersion

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 Exemplo de versão de fonte com o AWS CodeBuild.

  • 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 Exemplo de versão de fonte com o AWS CodeBuild.

artifacts

Obrigatório. Um objeto ProjectArtifacts 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. Essas configurações incluem o seguinte:

artifacts/type

Obrigatório. O tipo de artefato de saída de build. Os valores válidos são:

  • CODEPIPELINE

  • NO_ARTIFACTS

  • S3

artifacts/location

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

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

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

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

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 Crie a referência de especificação para o CodeBuild.

artifacts/packaging

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

Opcional. Uma matriz de objetos ProjectArtifacts 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.

cache

Obrigatório. Um objeto ProjectCache 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.

environment (ambiente)

Obrigatório. Um objeto ProjectEnvironment que contém informações sobre as configurações de ambiente de compilação desse projeto. Essas configurações incluem:

environment/type

Obrigatório. O tipo de ambiente de build. Para obter mais informações, consulte type na Referência da API do CodeBuild.

environment/image

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 pelo CodeBuild.

environment/computeType

Obrigatório. Especifica os recursos computacionais usados por esse ambiente de compilação. Para obter mais informações, consulte computeType na Referência da API do CodeBuild.

environment/certificate

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

Opcional. Uma matriz de objetos EnvironmentVariable 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.

Importante

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 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 e Systems Manager Parameter Store Console Walkthrough 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 Perfil de serviço existente, deverá incluir essa ação no perfil 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 esse perfil 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 do 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 do 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 compilação tem a maior prioridade.

  • O valor na definição de projeto de compilação 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.

Importante

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? 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 Perfil de serviço existente, deverá incluir essa ação no perfil 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

Opcional. Um objeto RegistryCredential 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

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_ROLE

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

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.

nota

Por padrão, o daemon do Docker está habilitado para compilações não VPC. Se você quiser usar contêineres do Docker para compilações da VPC, consulte Privilégio de tempo de execução e funcionalidades do Linux 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

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

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

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

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

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

Opcional. Uma matriz de objetos Tag 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

Opcional. Um objeto VpcConfig que contém informações sobre a configuração da VPC para o projeto. Para obter mais informações, consulte Usar o AWS CodeBuild com o Amazon Virtual Private Cloud.

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

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 Exemplo de emblemas de compilação com o CodeBuild.

logsConfig

Um objeto LogsConfig que contém informações sobre onde os logs dessa compilação estão localizados.

logsConfig/cloudWatchLogs

Um objeto CloudWatchLogsConfig que contém informações sobre o envio de logs ao CloudWatch Logs.

logsConfig/s3Logs

Um objeto S3LogsConfig que contém informações sobre o envio de logs ao Amazon S3.

fileSystemLocations

Opcional. Uma matriz de objetos ProjectFileSystemsLocation que contém informações sobre a configuração do Amazon EFS.

buildBatchConfig

Opcional. O objeto buildBatchConfig é uma estrutura ProjectBuildBatchConfig 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 para obter esses valores.

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

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

Para criar o projeto, execute o comando create-project 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 aparecerá na saída do console. Consulte a sintaxe de resposta CreateProject 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).

Para começar a executar um build, consulte Executar uma compilação (AWS CLI).

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

Criar um projeto de compilação (AWS SDKs)

Para obter informações sobre como usar o AWS CodeBuild com os SDKs da AWS, consulte Referência de SDKs e ferramentas da AWS.

Criar um projeto de compilação (AWS CloudFormation)

Para obter informações sobre como usar o AWS CodeBuild com o AWS CloudFormation, consulte the AWS CloudFormation template for CodeBuild no Guia do usuário do AWS CloudFormation.

PrivacidadeTermos do sitePreferências de cookies
© 2025, Amazon Web Services, Inc. ou suas afiliadas. Todos os direitos reservados.