As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Crie um projeto de construção em AWS CodeBuild
Você pode usar o AWS CodeBuild console, AWS CLI, ou AWS SDKs para criar um projeto de construção.
Tópicos
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 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 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:
-
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 selecione um nome de 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 ter mais informações, consulte O Run se baseia em frotas de capacidade reservada.
-
- 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 ARM, escolha LinuxGPU, Linux ou Windows. Se você escolher Outro registro, em Registro externo URL, insira o nome e a tag da imagem do Docker no Docker Hub, usando o formato.
Se você escolher a Amazon ECR, use o ECRrepositório da Amazon e a ECRimagem da Amazon para escolher a imagem do Docker em sua AWS conta.docker repository
/docker image name
-
Para usar uma imagem privada do Docker, selecione Imagem personalizada. Em Tipo de ambiente ARM, escolha LinuxGPU, Linux ou Windows. Em Registro de imagem, escolha Outro registro e, em seguida, insira as credenciais ARN da sua 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 EC2 computação, escolha EC2. EC2a computação oferece flexibilidade otimizada durante a execução de 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 ter mais informações, consulte Execute compilações em computação AWS Lambda.
-
- 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 Função ARN, escolha a função 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
-
- Limite de repetição automática
-
Especifique o número de novas tentativas automáticas adicionais após uma compilação com falha. Por exemplo, se o limite de repetição automática estiver definido como 2, CodeBuild chamará o
RetryBuild
API para repetir automaticamente sua compilação por até 2 vezes adicionais. - Timeout (Tempo limite)
-
Especifique um valor, entre 5 minutos e 36 horas, após o qual CodeBuild interrompe a compilação se ela não for concluída. Se hours e minutes forem deixados em branco, o valor padrão de 60 minutos será usado.
- Privilegiado
-
(Opcional) Selecione Ativar 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 não-compilações. VPC Se você quiser usar contêineres do Docker para VPC compilações, consulte Runtime Privilege e Linux Capabilities
no site do Docker Docs e ative o modo privilegiado. Além disso, o Windows não é compatível com o modo privilegiado. - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
- VPC
Se você quiser CodeBuild trabalhar com seuVPC:
-
Para VPC, escolha o VPC ID que CodeBuild usa.
-
Em VPCSub-redes, escolha as sub-redes que incluem os recursos que usa. CodeBuild
-
Em Grupos de VPC segurança, escolha os grupos de segurança CodeBuild usados para permitir o acesso aos recursos noVPCs.
Para obter 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 ou AWS Secrets Manager.
Se você usa o Amazon EC2 Systems Manager Parameter Store, em Tipo, escolha Parâmetro. Em Nome, insira um identificador CodeBuild para referência. Em Value, 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 que você armazene parâmetros com nomes de parâmetros 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 KMSchave, você pode especificar a ARN de uma AWS KMS 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 seu projeto de construção se referir a parâmetros armazenados no Amazon EC2 Systems Manager Parameter Store, a função de serviço do projeto de construção deve permitir a
ssm:GetParameters
ação. 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 seu projeto de construção se referir a parâmetros armazenados no Amazon EC2 Systems Manager Parameter Store com nomes de parâmetros que não começam com
/CodeBuild/
, e você escolheu Nova função de serviço, você deve atualizar essa função de serviço para permitir acesso aos nomes de parâmetros que não começam com/CodeBuild/
. Isso porque essa função de serviço permite acesso apenas a nomes de parâmetro que comecem com/CodeBuild/
.Se você escolher Nova função de serviço, a função de serviço incluirá permissão para descriptografar todos os parâmetros sob o
/CodeBuild/
namespace no Amazon Systems EC2 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 ter 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 seu arquivo buildspec usar um nome ou local diferente, insira seu caminho a partir da raiz de origem no nome Buildspec (por exemplo, ou.buildspec-two.yml
configuration/buildspec.yml
Se o arquivo buildspec estiver em um bucket do S3, ele deverá estar na mesma AWS região do seu projeto de compilação. Especifique o arquivo buildspec usando seu 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 obter mais informações, consulte Execute 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. 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. Talvez você queira fazer isso se estiver apenas executando testes de compilação ou quiser enviar uma imagem do Docker para um ECR repositório da Amazon.
-
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 seu projeto para o ZIP arquivo ou pasta de saída da compilação, deixe Nome em branco. Caso contrário, insira o nome. (Se você quiser gerar um ZIP arquivo e quiser que o ZIP arquivo tenha uma extensão de arquivo, não se esqueça de incluí-lo após o nome do ZIP arquivo.)
-
Selecione Enable semântico versioning (Habilitar versionamento semântico) se quiser que um nome especificado no arquivo buildspec substitua qualquer nome especificado no console. O nome em um arquivo buildspec é calculado no tempo de compilação e usa a linguagem de comandos do Shell. Por exemplo, você pode anexar uma data e hora ao nome do artefato para que ele seja sempre exclusivo. Os nomes de artefato exclusivos impedem que os artefatos sejam substituídos. Para obter mais informações, consulte Sintaxe de buildspec.
-
Para Bucket name, selecione o nome do bucket de saída.
-
Se você escolheu Inserir comandos de compilação anteriormente neste procedimento, em Arquivos de saída, insira os locais dos arquivos da compilação que você deseja colocar no ZIP arquivo ou pasta de saída da compilação. 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 ARN de criptografia, insira a chave. 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 Construções de cache para melhorar o desempenho.
-
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 registros.
- Group name
-
Insira o nome do seu grupo de CloudWatch logs do Amazon Logs.
- Nome do fluxo
-
Insira o nome do seu stream de CloudWatch log do Amazon Logs.
- S3
-
Se você quiser que o Amazon S3 registre:
- Logs do S3
-
Selecione S3 logs (Logs do S3).
- Bucket
-
Escolha o nome do bucket do S3 para os logs.
- Prefixo do caminho
-
Insira o prefixo para seus logs.
- Desabilitar a criptografia de logs do S3
-
Selecione se não quiser que os logs do S3 sejam criptografados.
Criar um projeto de compilação (AWS CLI)
Para obter mais informações sobre como usar o AWS CLI with CodeBuild, consulte Referência da linha de comando o.
Para criar um projeto de CodeBuild construção usando o AWS CLI, você cria uma estrutura JSON de projeto formatada, preenche a estrutura e chama o create-project
comando para criar o projeto.
Crie o JSON arquivo
Crie um JSON arquivo esqueleto com o create-project
comando, usando a --generate-cli-skeleton
opção:
aws codebuild create-project --generate-cli-skeleton >
<json-file>
Isso cria um JSON arquivo com o caminho e o nome do arquivo especificados por <json-file>
.
Preencha o JSON arquivo
Modifique os JSON dados da seguinte forma e salve seus 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 exclusivo em todos os projetos de compilação em sua AWS conta.
descrição
Opcional. A descrição desse projeto de build.
source
Obrigatório. Um ProjectSourceobjeto que contém informações sobre as configurações do código-fonte desse projeto de construção. Depois de adicionar um objeto source
, você poderá adicionar até 12 outras origens com o secondarySources. 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 obuildspec
atributo para especificar uma string YAML formatada em -para seu buildspec. Para obter mais informações, consulte Crie um projeto de compilação sem uma fonte. -
- source/location
-
Obrigatório a menos que você defina
<source-type>
paraCODEPIPELINE
. O local do código-fonte para o tipo de repositório especificado.-
Para CodeCommit, o HTTPS clone URL do 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 nome do ZIP arquivo que contém o código-fonte e o buildspec. Por exemplo:
-
Para um ZIP arquivo localizado na raiz do bucket de entrada:
.<bucket-name>
/<object-name>
.zip -
Para um ZIP arquivo localizado em uma subpasta no bucket de entrada:
.<bucket-name>
/<subfoler-path>
/<object-name>
.zip
-
-
Para GitHub, o HTTPS clone URL do repositório que contém o código-fonte e o arquivo buildspec. Eles URL devem conter github.com. Você deve conectar sua AWS conta à sua GitHub conta. Para fazer isso, use o CodeBuild console para criar um projeto de construção.
-
Escolha Autorizar aplicativo. (Depois de se conectar à sua GitHub conta, você não precisa concluir a criação do projeto de construção. Você pode fechar o CodeBuild console.)
-
-
Para o GitHub Enterprise Server, o HTTPS clone HTTP ou URL para o repositório que contém o código-fonte e o arquivo buildspec. Você também deve conectar sua AWS conta à sua conta do GitHub Enterprise Server. Para fazer isso, use o CodeBuild console para criar um projeto de construção.
-
Crie um token de acesso pessoal no GitHub Enterprise Server.
-
Copie esse token na sua área de transferência para que você possa usá-lo ao criar seu CodeBuild projeto. Para obter mais informações, consulte Criação de um token de acesso pessoal para a linha de comando
no site da GitHub Ajuda. -
Ao usar o console para criar seu CodeBuild projeto, em Source, para Source provider, escolha GitHubEnterprise.
-
Em Personal Access Token, cole o token que foi copiado na área de transferência. Escolha Salvar token. Sua CodeBuild conta agora está conectada à sua conta do GitHub Enterprise Server.
-
-
Para GitLab e GitLab autogerenciado, o HTTPS clone URL do repositório que contém o código-fonte e o arquivo buildspec. Observe que, se você usar GitLab, o URL deverá conter gitlab.com. Se você usa GitLab autogerenciamento, o URL não precisa conter gitlab.com. Você deve conectar sua AWS conta à sua conta GitLab ou à sua conta GitLab autogerenciada. Para fazer isso, use o CodeBuild console para criar um projeto de construção.
-
No painel de navegação Ferramentas do desenvolvedor, escolha Configurações, Conexões e, em seguida, Criar conexão. Nessa página, crie uma conexão GitLab ou uma conexão GitLab autogerenciada e escolha Conectar a. GitLab
-
-
Para o Bitbucket, o HTTPS clone URL do repositório que contém o código-fonte e o arquivo buildspec. Eles URL devem conter bitbucket.org. Você também deve conectar sua AWS conta à sua conta do Bitbucket. Para fazer isso, use o CodeBuild console para criar um projeto de construção.
-
Quando você usa o console para se conectar (ou se reconectar) ao Bitbucket, na página Confirm access to your account do Bitbucket, escolha Grant access. (Depois de se conectar à sua conta do Bitbucket, você não precisa terminar de criar o projeto de compilação. Você pode fechar o CodeBuild console.)
-
-
Para AWS CodePipeline, não especifique um
location
valor parasource
. CodePipeline ignora esse valor porque, ao criar um pipeline em CodePipeline, você especifica a localização do código-fonte no estágio Fonte do pipeline.
-
- fonte/ gitCloneDepth
-
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 AWS região do projeto de construção. Especifique o arquivo buildspec usando seu ARN (por exemplo,).arn:aws:s3:::
Para obter mais informações, consulte Nome do arquivo buildspec e local de armazenamento.<my-codebuild-sample2>
/buildspec.yml - source/auth
-
Contém informações sobre as configurações de autorização CodeBuild para acessar o código-fonte a ser criado.
- fonte/autentique/tipo
-
Obrigatório. O tipo de autorização a ser usado. Os valores válidos são:
-
OAUTH
-
CODECONNECTIONS
-
SECRETS_MANAGER
-
- fonte/autentidade/recurso
-
Opcional. O valor do recurso que se aplica ao tipo de autorização especificado. Isso pode ser o Secrets Manager ARN ou CodeConnections ARN o.
- fonte/ reportBuildStatus
-
Especifica se é necessário enviar os status inicial e final de uma compilação ao seu provedor de origem. Se você definir isso com um provedor de origem diferente do GitHub GitHub Enterprise Server ou do Bitbucket, um
invalidInputException
será lançado.Para poder relatar o status da compilação ao provedor de origem, o usuário associado ao provedor de origem deve ter acesso de gravação ao repositório. Se o usuário não tiver acesso de gravação, o status de compilação não poderá ser atualizado. Para obter mais informações, consulte Acesso do provedor de origem.
- fonte/ buildStatusConfig
-
Contém informações que definem como o projeto de CodeBuild compilação reporta o status da compilação ao provedor de origem. Essa opção só é usada quando o provedor de origem é
GITHUB
,GITHUB_ENTERPRISE
ouBITBUCKET
.- fonte//contexto buildStatusConfig
-
Para origens do Bitbucket, esse parâmetro é usado para o parâmetro
name
no status de confirmação do Bitbucket. Para GitHub fontes, esse parâmetro é usado para ocontext
parâmetro no status de GitHub confirmação.Por exemplo, você pode fazer com que
context
contenha o número da compilação e o gatilho do webhook usando as variáveis de CodeBuild ambiente:AWS CodeBuild sample-project Build #$CODEBUILD_BUILD_NUMBER - $CODEBUILD_WEBHOOK_TRIGGER
Isso faz com que o contexto apareça assim para a compilação #24 acionada por um evento de solicitação pull de webhook:
AWS CodeBuild sample-project Build #24 - pr/8
- fonte//buildStatusConfigtargetUrl
-
Para origens do Bitbucket, esse parâmetro é usado para o parâmetro
url
no status de confirmação do Bitbucket. Para GitHub fontes, esse parâmetro é usado para otarget_url
parâmetro no status de GitHub confirmação.Por exemplo, você pode definir o
targetUrl
parahttps://aws.amazon.com/codebuild/
e o status de confirmação será vinculado a eleURL.<path to build>
Você também pode incluir variáveis de CodeBuild ambiente no
targetUrl
para adicionar informações adicionais aoURL. Por exemplo, para adicionar a região de construção aoURL,targetUrl
defina o como:"targetUrl": "https://aws.amazon.com/codebuild/
<path to build>
?region=$AWS_REGION"Se a região de construção for
us-east-2
, ela se expandirá para:https://aws.amazon.com/codebuild/
<path to build>
?region=us-east-2
- fonte/ gitSubmodulesConfig
-
Opcional. Informações sobre a configuração dos submódulos do Git. Usado somente com CodeCommit GitHub,, GitHub Enterprise Server e Bitbucket.
- fonte//gitSubmodulesConfigfetchSubmodules
-
Defina
fetchSubmodules
comotrue
se quiser incluir os submódulos do Git em seu repositório. Os submódulos Git incluídos devem ser configurados como. HTTPS
- fonte/ InsecureSsl
-
Opcional. Usado somente com o GitHub Enterprise Server. Defina esse valor
true
para ignorar os TLS avisos ao se conectar ao seu repositório de projetos do GitHub Enterprise Server. O valor padrão éfalse
.InsecureSsl
deve ser usado apenas para fins de teste. Ele não deve ser usado em um ambiente de produção. - fonte/ 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 ProjectSourceobjetos que contém informações sobre as fontes secundárias de um projeto de construção. É possível adicionar até 12 origens secundárias. Os objetos secondarySources
usam as mesmas propriedades usadas pelo objeto source. 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 CodeCommit, o ID do commit, branch ou tag Git a ser usado.
-
Para GitHub, o ID do commit, o ID do pull request, o nome da ramificação ou o nome da tag que corresponde à versão do código-fonte que você deseja criar. Caso seja especificado, um ID de solicitação deve usar o formato
pr/pull-request-ID
(por exemplo,pr/25
). Se o nome de uma ramificação for especificado, o ID de HEAD confirmação da ramificação será usado. Se não for especificado, o ID de HEAD confirmação da ramificação padrão será usado. -
Para GitLab, o ID do commit, o ID do pull request, o nome da ramificação, o nome da tag ou a referência e um ID do commit. Para obter mais informações, consulte Amostra da versão de origem com AWS CodeBuild.
-
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 o nome de uma ramificação for especificado, o ID de HEAD confirmação da ramificação será usado. Se não for especificado, o ID de HEAD confirmação da ramificação padrão será usado.
-
Para o Amazon S3, o ID da versão do objeto que representa o ZIP arquivo de entrada de compilação a ser usado.
Se sourceVersion
for especificado no nível de compilação, essa versão terá precedência sobre esta sourceVersion
(no nível do projeto). Para obter mais informações, consulte Amostra da versão de origem com AWS CodeBuild.
artifacts
Obrigatório. Um ProjectArtifactsobjeto que contém informações sobre as configurações do artefato de saída desse projeto de construção. Depois de adicionar um objeto artifacts
, você poderá adicionar até 12 outros artefatos com o secondaryArtifacts. 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 de entrada do bucket de saída para colocar o ZIP arquivo ou a pasta. Se você não especificar um valor para
path
, CodeBuild usanamespaceType
(se especificado) ename
para determinar o caminho e o nome do ZIP arquivo ou pasta de saída da compilação. Por exemplo, se você especificarMyPath
parapath
,MyArtifact.zip
paraname
, o caminho e o nome serãoMyPath/MyArtifact.zip
. - artefatos/ namespaceType
-
Usado somente com o tipo de artefato do
S3
. Não é usado para outros tipos de artefatos.O namespace do ZIP arquivo ou pasta de saída da compilação. Os valores válidos são
BUILD_ID
eNONE
. UseBUILD_ID
para inserir o ID da compilação no caminho do ZIP arquivo ou pasta de saída da compilação. Caso contrário, useNONE
. Se você não especificar um valor paranamespaceType
, CodeBuild usapath
(se especificado) ename
para determinar o caminho e o nome do ZIP arquivo ou pasta de saída da compilação. Por exemplo, se você especificarMyPath
parapath
,BUILD_ID
paranamespaceType
eMyArtifact.zip
paraname
, o caminho e o nome serãoMyPath/
.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 do ZIP arquivo ou pasta de saída da compilação dentro do
location
. Por exemplo, se você especificarMyPath
parapath
,MyArtifact.zip
paraname
, o caminho e o nome serãoMyPath/MyArtifact.zip
. - artefatos/ 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 blocoartifacts
do arquivo buildspec substituiname
. Para obter mais informações, consulte Referência de especificação de construção para 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 ZIP arquivo que contenha os artefatos de construção.
secondaryArtifacts
Opcional. Uma matriz de ProjectArtifactsobjetos que contém informações sobre as configurações de artefatos secundários para um projeto de construção. Você pode adicionar até 12 artefatos secundários. O secondaryArtifacts
usa muitas das mesmas configurações usadas pelo objeto artifacts.
cache
Obrigatório. Um ProjectCacheobjeto que contém informações sobre as configurações de cache desse projeto de construção. Para obter mais informações, consulte Compilações de cache.
environment (ambiente)
Obrigatório. Um ProjectEnvironmentobjeto que contém informações sobre as configurações do ambiente de construção desse projeto. Essas configurações incluem:
- environment/type
-
Obrigatório. O tipo de ambiente de build. Para obter mais informações, consulte digite na CodeBuild APIReferência.
- environment/image
-
Obrigatório. O identificador de imagem de Docker usado por esse ambiente de compilação. Normalmente, esse identificador é expresso como
image-name
:tag
. Por exemplo, no repositório Docker CodeBuild usado para gerenciar suas imagens do Docker, isso pode ser.aws/codebuild/standard:5.0
No Docker Hub,maven:3.3.9-jdk-8
. Na AmazonECR,
. Para obter mais informações, consulte Imagens do Docker fornecidas por CodeBuild.account-id
.dkr.ecr.region-id
.amazonaws.com/your-Amazon-ECR-repo-name
:tag
- meio ambiente/ computeType
-
Obrigatório. Especifica os recursos computacionais usados por esse ambiente de compilação. Para obter mais informações, consulte computeTypena CodeBuild APIReferência.
- environment/certificate
-
Opcional. O ARN do bucket, prefixo do caminho e chave de objeto do Amazon S3 que contém o PEM certificado codificado. A chave do objeto pode ser apenas o arquivo.pem ou um arquivo.zip contendo o certificado codificado em -. PEM Por exemplo, se o nome do bucket do Amazon S3 for
, o prefixo do caminho for<my-bucket>
e o nome da chave do objeto for<cert>
, os formatos aceitáveis para<certificate.pem>
certificate
serão
ou<my-bucket/cert/certificate.pem>
arn:aws:s3:::
.<my-bucket/cert/certificate.pem>
- meio ambiente/ environmentVariables
-
Opcional. Uma matriz de EnvironmentVariableobjetos que contém as variáveis de ambiente que você deseja especificar para esse ambiente de construção. Cada variável de ambiente é expressa como um objeto que contém um
name
,value
etype
dename
,value
etype
.O console e AWS CLI os usuários podem ver todas as variáveis de ambiente. Caso você não tenha problema em relação à visibilidade da variável de ambiente, defina os campos
name
evalue
e definirtype
comoPLAINTEXT
.Recomendamos que você armazene variáveis de ambiente com valores confidenciais, como um ID de chave de AWS acesso, uma chave de acesso AWS secreta ou uma senha, como um parâmetro no Amazon EC2 Systems Manager Parameter Store ou AWS Secrets Manager. Para
name
esse parâmetro armazenado, defina um identificador CodeBuild para referência.Se você usa o Amazon EC2 Systems Manager Parameter Store
value
, para, defina o nome do parâmetro conforme armazenado no Parameter Store. Definatype
comoPARAMETER_STORE
. Usando um parâmetro denominado/CodeBuild/dockerLoginPassword
como exemplo, definaname
comoLOGIN_PASSWORD
. Definavalue
como/CodeBuild/dockerLoginPassword
. Definatype
comoPARAMETER_STORE
.Importante
Se você usa o Amazon EC2 Systems Manager Parameter Store, recomendamos que você armazene parâmetros com nomes de parâmetros 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 KMSchave, você pode especificar a ARN de uma AWS KMS 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 seu projeto de construção se referir a parâmetros armazenados no Amazon EC2 Systems Manager Parameter Store, a função de serviço do projeto de construção deve permitir a
ssm:GetParameters
ação. 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 seu projeto de construção se referir a parâmetros armazenados no Amazon EC2 Systems Manager Parameter Store com nomes de parâmetros que não começam com
/CodeBuild/
, e você escolheu Nova função de serviço, você deve atualizar essa função de serviço para permitir acesso aos nomes de parâmetros que não começam com/CodeBuild/
. Isso porque essa função de serviço permite acesso apenas a nomes de parâmetro que comecem com/CodeBuild/
.Se você escolher Nova função de serviço, a função de serviço incluirá permissão para descriptografar todos os parâmetros sob o
/CodeBuild/
namespace no Amazon Systems EC2 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, para
value
, defina o nome do parâmetro conforme armazenado no Secrets Manager. Definatype
comoSECRETS_MANAGER
. Usando um segredo denominado/CodeBuild/dockerLoginPassword
como exemplo, definaname
comoLOGIN_PASSWORD
. Definavalue
como/CodeBuild/dockerLoginPassword
. Definatype
comoSECRETS_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ê 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. -
- meio ambiente/ registryCredential
-
Opcional. Um RegistryCredentialobjeto que especifica as credenciais que fornecem acesso a um registro privado do Docker.
- ambiente//credencial registryCredential
-
Especifica o nome ARN ou das credenciais criadas usando. AWS Managed Services Você poderá usar o nome das credenciais somente se elas existirem na região atual.
- meio ambiente//registryCredentialcredentialProvider
-
O único valor válido é
SECRETS_MANAGER
.
Quando isso for configurado:
-
imagePullCredentials
deve ser definido comoSERVICE_ROLE
. -
A imagem não pode ser uma imagem curada ou uma ECR imagem da Amazon.
- ambiente/tipo imagePullCredentials
-
Opcional. O tipo de credencial CodeBuild usado para extrair imagens em sua compilação. Há dois valores válidos:
- CODEBUILD
-
CODEBUILD
especifica que CodeBuild usa suas próprias credenciais. Você deve editar sua política de ECR repositório da Amazon para confiar no responsável pelo CodeBuild serviço. - SERVICE_ROLE
-
Especifica que CodeBuild usa a função de serviço do seu projeto de compilação.
Quando você usa uma conta ou imagem de registro privado, você deve usar credenciais
SERVICE_ROLE
. Ao usar uma imagem com CodeBuild curadoria, você deve usarCODEBUILD
credenciais. - meio ambiente/ 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 faseinstall
de seu arquivo buildspec executando os seguintes comandos de compilação. Não execute esses comandos se você especificou 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 não-compilações. VPC Se você quiser usar contêineres do Docker para VPC compilações, consulte Runtime Privilege e Linux Capabilities
no site do Docker Docs e ative o modo privilegiado. Além disso, o Windows não é compatível com o modo privilegiado. - nohup /usr/local/bin/dockerd --host=unix:///var/run/docker.sock --host=tcp://127.0.0.1:2375 --storage-driver=overlay2 & - timeout 15 sh -c "until docker info; do echo .; sleep 1; done"
serviceRole
Obrigatório. A função ARN de serviço CodeBuild usada 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 novas tentativas automáticas adicionais após uma compilação com falha. Por exemplo, se o limite de repetição automática estiver definido como 2, CodeBuild chamará o RetryBuild
API para repetir automaticamente sua compilação por até 2 vezes adicionais.
timeoutInMinutes
Opcional. O número de minutos, entre 5 e 2160 (36 horas), após os quais CodeBuild interrompe a construção se ela não for concluída. Se não especificado, o padrão de 60 será usado. Para determinar se e quando uma compilação CodeBuild foi interrompida devido a um tempo limite, execute o batch-get-builds
comando. Para saber se o build parou, observe a saída para um valor buildStatus
de FAILED
. Para saber qual foi o tempo limite do build, observe a saída para o valor endTime
associado ao valor phaseStatus
de TIMED_OUT
.
queuedTimeoutInMinutos
Opcional. O número de minutos, entre 5 e 480 (8 horas), após os quais CodeBuild interrompe a compilação se ela ainda estiver na fila. Se não especificado, o padrão de 60 será usado.
encryptionKey
Opcional. O alias ou ARN do AWS KMS key usado por CodeBuild para criptografar a saída da compilação. Se você especificar um alias, use o formato arn:aws:kms:
ou, se já houver um alias, use o formato region-ID
:account-ID
:key/key-ID
alias/
. Se não for especificada, a KMS chave AWS gerenciada para o Amazon S3 será usada.key-alias
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 AWS serviço que ofereça suporte à CodeBuild criação de tags de projeto. Cada tag é expressa como um objeto com uma key
e um value
.
vpcConfig
Opcional. Um VpcConfigobjeto que contém informações sobre a VPC configuração do seu projeto. Para obter mais informações, consulte Use AWS CodeBuild com a Amazon Virtual Private Cloud.
Essas propriedades incluem:
- vpcId
-
Obrigatório. O VPC ID que CodeBuild usa. Execute este comando para obter uma lista de tudo VPC IDs na sua região:
aws ec2 describe-vpcs --region
<region-ID>
- sub-redes
-
Obrigatório. Uma matriz de sub-rede IDs que inclui recursos usados pelo CodeBuild. Execute este comando para obter estesIDs:
aws ec2 describe-subnets --filters "Name=vpc-id,Values=<vpc-id>" --region
<region-ID>
- securityGroupIds
-
Obrigatório. Uma matriz de grupos de segurança IDs usada por CodeBuild para permitir o acesso aos recursos noVPC. Execute este comando para obter estesIDs:
aws ec2 describe-security-groups --filters "Name=vpc-id,Values=
<vpc-id>
" --<region-ID>
badgeEnabled
Opcional. Especifica se você deseja incluir emblemas de construção em seu CodeBuild projeto. Defina como true
para habilitar a criação de emblemas. Caso contrário, como false
. Para obter mais informações, consulte Crie uma amostra de crachás com CodeBuild.
logsConfig
Um LogsConfigobjeto que contém informações sobre onde os registros dessa compilação estão localizados.
- logsConfig/cloudWatchLogs
-
Um CloudWatchLogsConfigobjeto que contém informações sobre como enviar registros para o CloudWatch Logs.
- logsConfig/S3logs
-
Um LogsConfig objeto do S3 que contém informações sobre o envio de registros para o Amazon S3.
fileSystemLocations
Opcional. Uma matriz de ProjectFileSystemsLocationobjetos que contém informações sobre sua configuração da AmazonEFS.
buildBatchConfig
Opcional. O buildBatchConfig
objeto é uma ProjectBuildBatchConfigestrutura que contém as informações de configuração de compilação em lote para o projeto.
- buildBatchConfig/serviceRole
-
A função de serviço ARN para o projeto de criaçã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/restrições/ maximumBuildsAllowed
-
O número máximo de compilações permitidas.
- buildBatchConfig/restrições/ computeTypesAllowed
-
Uma matriz de strings que especificam os tipos de computação que são permitidos para a compilação em lote. Consulte Build environment compute types 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 create-project
comando novamente, passando seu JSON arquivo:
aws codebuild create-project --cli-input-json file://
<json-file>
Se for bem-sucedida, a JSON representação de um objeto do Projeto aparecerá na saída do console. Consulte a sintaxe de CreateProject resposta 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 seu código-fonte estiver armazenado em um GitHub repositório e você quiser CodeBuild reconstruir o código-fonte toda vez que uma alteração de código for enviada para o repositório, consulte. Começar a executar compilações automaticamente (AWS CLI)
Criar um projeto de compilação (AWS SDKs)
Para obter informações sobre como usar AWS CodeBuild com o AWS SDKs, consulte Referência de SDKs e ferramentas da AWS o.
Criar um projeto de compilação (AWS CloudFormation)
Para obter informações sobre como usar AWS CodeBuild com AWS CloudFormation, consulte o AWS CloudFormation modelo CodeBuild no Guia do AWS CloudFormation usuário.