É recomendável criar compilações do AWS CodeBuild no Amazon Elastic File System, um serviço de arquivos compartilhado e escalável para instâncias do Amazon EC2. A capacidade de armazenamento com o Amazon EFS é elástica, portanto, aumenta ou diminui à medida que arquivos são adicionados e removidos. Ela tem uma interface simples de serviços da Web que pode ser usada para criar e configurar sistemas de arquivos. Ela também gerencia toda a infraestrutura de armazenamento de arquivos para você, para que você não precise se preocupar com a implantação, atualização nem com a manutenção das configurações do sistema de arquivos. Para obter mais informações, consulte What is Amazon Elastic File System? no Guia do usuário do Amazon Elastic File System.
Este exemplo mostra como configurar um projeto do CodeBuild para que ele monte e crie uma aplicação Java em um sistema de arquivos do Amazon EFS. Antes de começar, é necessário ter um aplicativo Java pronto para ser compilado que tenha sido carregado em um bucket de entrada do S3 ou em um repositório do AWS CodeCommit, do GitHub, do GitHub Enterprise Server ou do Bitbucket.
Os dados em trânsito para o sistema de arquivos estão criptografados. Para criptografar os dados em trânsito usando uma imagem diferente, consulte Criptografar dados em trânsito.
Tópicos
Use o AWS CodeBuild com o Amazon Elastic File System
O exemplo abrange quatro etapas de nível superior necessárias para usar o Amazon EFS com o AWS CodeBuild. Eles são:
-
Crie uma nuvem privada virtual (VPC) na conta da AWS.
-
Crie um sistema de arquivos que usa essa VPC.
-
Crie e compile um projeto do CodeBuild que use a VPC. O projeto do CodeBuild usa o seguinte para identificar o sistema de arquivos:
-
Um identificador de sistema de arquivos exclusivo. Você escolhe o identificador ao especificar o sistema de arquivos no projeto de compilação.
-
O ID do sistema de arquivos. O ID é exibido quando você visualiza o sistema de arquivos no console do Amazon EFS.
-
Um ponto de montagem. Este é um diretório no contêiner do Docker que monta o sistema de arquivos.
-
Opções de montagem. Elas incluem os detalhes sobre como montar o sistema de arquivos.
-
-
Revise o projeto de compilação para garantir que os arquivos e variáveis corretos do projeto foram gerados.
nota
Um sistema de arquivos criado no Amazon EFS é compatível somente com as plataformas Linux.
Tópicos
Etapa 1: criar uma VPC usando o AWS CloudFormation
Crie a VPC com um modelo do AWS CloudFormation.
-
Siga as instruções no Modelo da VPC do AWS CloudFormation para usar o AWS CloudFormation para criar uma VPC.
nota
A VPC criada por este modelo do AWS CloudFormation tem duas sub-redes privadas e duas sub-redes públicas. Use somente as sub-redes privadas quando usar o AWS CodeBuild para montar o sistema de arquivos criado no Amazon EFS. Se você usar uma das sub-redes públicas, a compilação falhará.
Faça login no AWS Management Console e abra o console da Amazon VPC em https://console.aws.amazon.com/vpc/
. -
Escolha a VPC que você criou com o AWS CloudFormation.
-
Na guia Description (Descrição) anote o nome da sua VPC e do ID. Os dois serão necessários quando você criar o projeto do AWS CodeBuild posteriormente neste exemplo.
Etapa 2: criar um sistema de arquivos do Amazon Elastic File System com a VPC
Crie um sistema de arquivos Amazon EFS simples para esse exemplo usando a VPC criada anteriormente.
Faça login no AWS Management Console e abra o console do Amazon EFS em https://console.aws.amazon.com/efs/
. -
Escolha Create file system (Criar sistema de arquivos).
-
Em VPC, escolha o nome da VPC que você anotou anteriormente neste exemplo.
-
Deixe as zonas de disponibilidade associadas às suas sub-redes selecionadas.
-
Escolha Next Step.
-
Em Adicionar tags, para a chave Nome, em Valor, insira o nome do sistema de arquivos Amazon EFS.
-
Mantenha Bursting e General Purpose (Uso geral) selecionados como modos padrão de desempenho e de taxa de transferência e selecione Next Step (Próxima etapa).
-
Para Configure client access (Configurar acesso de cliente), escolha Next Step (Próxima etapa).
-
Escolha Criar sistema de arquivos.
-
(Opcional) Recomendamos adicionar uma política ao sistema de arquivos Amazon EFS que imponha a criptografia de dados em trânsito. No console do Amazon EFS, escolha Política do sistema de arquivos, escolha Editar, selecione a caixa Aplicar criptografia em trânsito para todos os clientes e escolha Salvar.
Etapa 3: criar um projeto do CodeBuild a ser usado com o Amazon EFS
Crie um projeto do AWS CodeBuild que usa a VPC criada anteriormente neste exemplo. Quando a compilação for executada, ela montará o sistema de arquivos do Amazon EFS criado anteriormente. Depois, armazenará o arquivo .jar criado pelo aplicativo Java no diretório do ponto de montagem do sistema de arquivos.
Abra o console do AWS CodeBuild em https://console.aws.amazon.com/codesuite/codebuild/home
. -
No painel de navegação, escolha Projetos de compilação e, depois, Criar projeto de compilação.
-
Em Nome do projeto, digite um nome para o seu projeto.
-
Em Provedor de origem, escolha o repositório que contém o aplicativo Java que você deseja criar.
-
Insira as informações, como um URL do repositório, que o CodeBuild usa para localizar a aplicação. As opções são diferentes para cada provedor de origem. Para obter mais informações, consulte Choose source provider.
-
Em Environment image (Imagem do ambiente), escolha Managed image (Imagem gerenciada).
-
Em Operating system (Sistema operacional), escolha Amazon Linux 2.
-
Em Runtime(s) (Tempo(s) de execução), selecione Standard (Padrão).
-
Em Imagem, escolha aws/codebuild/amazonlinux2-x86_64-standard:4.0.
-
Em Environment type (Tipo de ambiente), escolha Linux.
-
Em Função do serviço, selecione Nova função de serviço. Em Nome da função, digite um nome para o perfil que o CodeBuild cria para você.
-
Expanda Configuração Adicional.
-
Selecione Enable this flag if you want to build Docker images or want your builds to get elevated privileges (Ativar este sinalizador se quiser criar imagens do Docker ou desejar que suas compilações obtenham privilégios elevados).
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. -
Em VPC, escolha o ID do VPC.
-
Em Sub-redes, escolha uma ou mais sub-redes privadas associadas à VPC. É necessário usar sub-redes privadas em uma compilação que monta um sistema de arquivos Amazon EFS. Se você usar uma sub-rede pública, a compilação falhará.
-
Em Security groups (Grupos de segurança), escolha o grupo de segurança padrão.
-
Em File systems (Sistemas de arquivo), insira as seguintes informações:
-
Em Identifer (Identificador), insira um identificador exclusivo do sistema de arquivos. Deve ter menos de 129 caracteres e conter somente caracteres alfanuméricos e sublinhados. O CodeBuild usa esse identificador para criar uma variável de ambiente que identifica o sistema de arquivos elástico. O formato da variável de ambiente é
CODEBUILD_
em letras maiúsculas. Por exemplo, se você inserir<file_system_identifier>
my_efs
, a variável de ambiente seráCODEBUILD_MY_EFS
. -
Para ID, escolha o ID do sistema de arquivos.
-
(Opcional) Insira um diretório no sistema de arquivos. O CodeBuild monta esse diretório. Se você deixar o Caminho do diretório em branco, o CodeBuild montará todo o sistema de arquivos. O caminho é relativo à raiz do sistema de arquivos.
-
Em Ponto de montagem, digite o caminho absoluto do diretório no contêiner de compilação onde o sistema de arquivos é montado. Se esse diretório não existir, o CodeBuild o criará durante a compilação.
-
(Opcional) Insira as opções de montagem. Se você deixar Opções de montagem em branco, o CodeBuild usa suas opções de montagem padrão.
nfsvers=4.1 rsize=1048576 wsize=1048576 hard timeo=600 retrans=2
Para obter mais informações, consulte Recommended NFS Mount Options no Guia do usuário do Amazon Elastic File System.
-
-
Em Build specification (Criar especificação), escolha Insert build commands (Inserir comandos de compilação) e escolha Switch to editor (Alternar para editor).
-
Insira os comandos buildspec a seguir no editor. Substitua
pelo identificador inserido na etapa 17. Use letras maiúsculas (por exemplo,<file_system_identifier>
CODEBUILD_MY_EFS
).version: 0.2 phases: install: runtime-versions: java: corretto11 build: commands: - mvn compile -Dgpg.skip=true -Dmaven.repo.local=$CODEBUILD_
<file_system_identifier>
-
Use os valores padrão para todas as outras configurações e, em seguida, escolha Criar projeto de compilação. Quando a compilação estiver concluída, a página do console para o projeto será exibida.
-
Selecione Iniciar compilação.
Etapa 4: revisar o projeto de compilação
Depois que o projeto do AWS CodeBuild for criado:
-
Você terá um arquivo .jar criado pela aplicação Java criada para o sistema de arquivos Amazon EFS no diretório do ponto de montagem.
-
Uma variável de ambiente que identifica o sistema de arquivos é criada usando o identificador de sistema de arquivos inserido quando o projeto foi criado.
Para obter mais informações, consulte Mounting file systems no Guia do usuário do Amazon Elastic File System.