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á.
Etapa 5: criar o projeto de compilação
(Etapa anterior: Etapa 4: fazer upload do código-fonte e do arquivo buildspec)
Nessa etapa, você cria um projeto de compilação que o AWS CodeBuild usa para executar a compilação. Um projeto de compilação inclui informações sobre como executar uma compilação, incluindo onde obter o código-fonte, qual ambiente de compilação usar, quais comandos de compilação executar e onde armazenar a saída da compilação. Um ambiente de compilação representa uma combinação de sistema operacional, tempo de execução da linguagem de programação e ferramentas CodeBuild usadas para executar uma compilação. O ambiente de compilação é expresso como uma imagem do Docker. Para obter mais informações, consulte Visão geral do Docker
Para esse ambiente de compilação, você instrui CodeBuild a usar uma imagem do Docker que contém uma versão do Java Development Kit (JDK) e do Apache Maven.
Como criar o projeto de compilação
-
Use a AWS CLI para executar o comando create-project:
aws codebuild create-project --generate-cli-skeleton
Os dados formatados JSON aparecem na saída. Copie os dados para um arquivo chamado
create-project.json
em um local no computador local ou em uma instância na qual a AWS CLI esteja instalada. Se você optar por usar um nome de arquivo diferente, certifique-se de usá-lo durante todo este tutorial.Altere os dados copiados para acompanhar o formato e, em seguida, salve os resultados:
{ "name": "codebuild-demo-project", "source": { "type": "S3", "location": "codebuild-
region-ID
-account-ID
-input-bucket/MessageUtil.zip" }, "artifacts": { "type": "S3", "location": "codebuild-region-ID
-account-ID
-output-bucket" }, "environment": { "type": "LINUX_CONTAINER", "image": "aws/codebuild/standard:5.0", "computeType": "BUILD_GENERAL1_SMALL" }, "serviceRole": "serviceIAMRole
" }Substitua
ServiceIamRole
pelo Amazon Resource Name (ARN) de uma função CodeBuild de serviço (por exemplo,).arn:aws:iam::
Para criar uma, consulte Criar um perfil de serviço do CodeBuild.account-ID
:role/role-name
Nesses dados:
-
name
representa uma identificador necessário para o projeto de build (neste exemplo,codebuild-demo-project
). Os nomes de projeto de build devem ser únicos em todos os projetos de build em sua conta. -
Para
source
,type
é um valor necessário que representa o tipo de repositório de código-fonte (neste exemplo,S3
para um bucket do Amazon S3). -
Para
source
,location
representa o caminho para o código-fonte (neste exemplo, o nome de bucket de entrada seguido pelo nome do arquivo ZIP). -
Para
artifacts
,type
é um valor obrigatório que representa o tipo de repositório de artefato de saída da compilação (neste exemplo,S3
para um bucket do Amazon S3). -
Para
artifacts
,location
representa o nome do bucket de saída que você criou ou identificou anteriormente (neste exemplo,codebuild-
).region-ID
-account-ID
-output-bucket -
Para
environment
,type
é um valor obrigatório que representa o tipo de ambiente de compilação (neste exemplo,LINUX_CONTAINER
). -
Para
environment
,image
é um valor obrigatório que representa a combinação de nome de imagem e tag do Docker que esse projeto de construção usa, conforme especificado pelo tipo de repositório de imagens do Docker (neste exemplo,aws/codebuild/standard:5.0
para uma imagem do Docker no repositório de imagens do CodeBuild Docker).aws/codebuild/standard
é o nome da imagem do Docker.5.0
é a tag da imagem do Docker.Para encontrar mais imagens Docker que você possa utilizar em seus cenários, consulte Referência de ambiente de compilação.
-
Para
environment
,computeType
é um valor obrigatório que representa o CodeBuild uso dos recursos de computação (neste exemplo,BUILD_GENERAL1_SMALL
).
nota
Outros valores disponíveis nos dados formatados JSON originais, tais como
description
,buildspec
,auth
(incluindotype
eresource
),path
,namespaceType
,name
(paraartifacts
),packaging
,environmentVariables
(incluindoname
evalue
),timeoutInMinutes
,encryptionKey
etags
(incluindokey
evalue
) são opcionais. Eles não são usados neste tutorial, portanto, não são mostrados aqui. Para ter mais informações, consulte Criar um projeto de compilação (AWS CLI). -
-
Alterne para o diretório que contenha o arquivo que você acabou de salvar e execute o comando create-project novamente.
aws codebuild create-project --cli-input-json file://create-project.json
Se bem-sucedidos, dados semelhantes a estes aparecem na saída.
{ "project": { "name": "codebuild-demo-project", "serviceRole": "
serviceIAMRole
", "tags": [], "artifacts": { "packaging": "NONE", "type": "S3", "location": "codebuild-region-ID
-account-ID
-output-bucket", "name": "message-util.zip" }, "lastModified": 1472661575.244, "timeoutInMinutes": 60, "created": 1472661575.244, "environment": { "computeType": "BUILD_GENERAL1_SMALL", "image": "aws/codebuild/standard:5.0", "type": "LINUX_CONTAINER", "environmentVariables": [] }, "source": { "type": "S3", "location": "codebuild-region-ID
-account-ID
-input-bucket/MessageUtil.zip" }, "encryptionKey": "arn:aws:kms:region-ID
:account-ID
:alias/aws/s3", "arn": "arn:aws:codebuild:region-ID
:account-ID
:project/codebuild-demo-project" } }-
project
representa informações sobre esse projeto de build.-
tags
representa as tags que foram declaradas. -
packaging
representa como o artefato de saída de compilação é armazenado no bucket de saída.NONE
significa que uma pasta foi criada no bucket de saída. O artefato de saída de compilação foi armazenado na pasta. -
lastModified
representa quando as informações sobre o projeto de build foram modificadas pela última vez, em formato de data e hora Unix. -
timeoutInMinutes
representa o número de minutos após os quais CodeBuild interrompe a construção se a construção não tiver sido concluída. (O padrão é 60 minutos.) -
created
representa quando o projeto de build foi criado, em formato de data e hora Unix. -
environmentVariables
representa todas as variáveis de ambiente que foram declaradas e estão disponíveis CodeBuild para uso durante a construção. -
encryptionKey
representa o ARN da chave gerenciada pelo cliente CodeBuild usada para criptografar o artefato de saída da compilação. -
arn
representa o ARN do projeto de build.
-
-
nota
Depois de executar o create-project comando, uma mensagem de erro semelhante à seguinte pode ser gerada: Usuário: User-ARN
não está autorizado a executar: codebuild:. CreateProject Provavelmente, isso ocorre porque você configurou o AWS CLI com as credenciais de um usuário que não tem permissões suficientes CodeBuild para usar na criação de projetos de compilação. Para corrigir isso, configure a AWS CLI com credenciais pertencentes a uma das seguintes entidades do IAM:
-
Um usuário administrador na conta da AWS. Para obter informações, consulte Creating your first Conta da AWS root user and group no Guia do usuário.
-
Um usuário da conta da AWS com as políticas gerenciadas
AWSCodeBuildAdminAccess
,AmazonS3ReadOnlyAccess
eIAMFullAccess
anexadas a esse usuário ou a um grupo do IAM ao qual o usuário pertence. Se você não tiver um usuário ou um grupo na conta da AWS com essas permissões, e não puder adicioná-las ao usuário ou ao grupo, entre em contato com administrador da conta da AWS para obter ajuda. Para ter mais informações, consulte AWS políticas gerenciadas (predefinidas) para AWS CodeBuild.
Próxima etapa
Etapa 6: executar a compilação