As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Criar um projeto de compilação (console)
Abra o AWS CodeBuild console em 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.
Configuração de projetos
- 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 ter 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:
-
Selecione Restringir número de compilações simultâneas que este projeto pode iniciar.
-
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 Add row (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
CodeBuild não é compatível com o Bitbucket Server.
Ambiente
- 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 Trabalhando com capacidade reservada em AWS CodeBuild.
-
- Imagem do ambiente
-
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
. 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. AWSdocker repository
/docker image name
-
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? no Guia do usuário do AWS Secrets Manager .
nota
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 a execução das ações.
-
Para usar a computação Lambda, escolha Lambda. A computação Lambda oferece velocidades de inicialização otimizadas para suas compilações. O Lambda suporta compilações mais rápidas devido à menor latência de inicialização. O Lambda também é escalado automaticamente, então as compilações não estão esperando na fila para serem executadas. Para mais informações, consulte Trabalhando com AWS Lambda computação em AWS CodeBuild.
-
- 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.
nota
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
-
- Timeout (Tempo limite)
-
Especifique um valor, entre 5 minutos e 8 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 esse sinalizador se quiser criar imagens do Docker ou quiser que suas compilações recebam privilégios elevados somente se você 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.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 de VPC, consulte Runtime Privilege e recursos 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ê 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 de VPC, escolha os grupos de segurança CodeBuild usados para permitir acesso aos recursos nas VPCs.
Para ter mais informações, consulte Use AWS CodeBuild com a 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
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, digiteLOGIN_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
). 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 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ê 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 demy_value
e você definir uma variável de ambiente chamadaMY_VAR
com um valor deother_value
,my_value
será substituído porother_value
. Da mesma maneira, se a imagem de Docker já contiver uma variável de ambiente chamadaPATH
com um valor de/usr/local/sbin:/usr/local/bin
e você definir uma variável de ambiente chamadaPATH
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
. Para mais informações, consulte Secrets Manager reference-key in the buildspec file.secret-id
:json-key
:version-stage
:version-id
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ê 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
- 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, CodeBuild procura um arquivo nomeado
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
ouconfiguration/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 arquivobuildspec.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 fasebuild
. 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 fasebuild
, adicione um arquivobuildspec.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 ter mais informações, consulte Batch é incorporado AWS CodeBuild.
- 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çõesStartBuild
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
eRetryBuild
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.
-
- 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ó 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
- 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 ter mais informações, consulte Sintaxe de buildspec.
-
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 defiles
em Sintaxe de buildspec. -
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:
-
Em Artifact identifier (Identificador de artefato), insira um valor com menos de 128 caracteres e que contenha apenas caracteres alfanuméricos e sublinhados.
-
Escolha Add artifact (Adicionar artefato).
-
Siga as etapas anteriores para configurar seus artefatos secundários.
-
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. Para obter mais informações sobre armazenamento em cache, consulte Armazenamento em cache de compilações no AWS CodeBuild.
-
Logs
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 troncos
-
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.