Header Ads

Como configurar um pipeline de implantação automatizada para um site S3

Hospedar seu site usando o S3 é uma prática bastante comum na AWS. É barato, não requer servidores e até suporta aplicativos Web do lado do cliente com estruturas como o React. Para facilitar as coisas, configuraremos um pipeline de implantação para lidar com atualizações.

Como isso funciona?

Para um site S3, você pode fazer atualizações executando o aws s3 sync ou adicionando novos objetos ao bucket manualmente. No entanto, este é um processo muito manual e pode ser automatizado com bastante facilidade.

Usando o serviço de CI / CD do CodePipeline da AWS, você pode configurar um pipeline para ouvir alterações no controle de origem. Sempre que uma alteração é detectada, o CodePipeline envia a fonte para o CodeBuild, que cuidará da criação do projeto. Para aplicativos da Web, isso inclui a execução de execução do npm, que agrupará os ativos do projeto em uma produção. A compilação é enviada diretamente para o S3, atualizando o aplicativo.

Observe que, se seu projeto não requer nenhum tipo de construção com npm, e você deseja sincronizar seu repositório Git com o S3, a configuração será muito mais fácil. Simplesmente configure o estágio de origem para conectar-se ao seu controle de origem, pule o estágio de construção e escolha 'AWS S3' ” para a etapa de implantação. Digite os detalhes do seu bucket e o conteúdo do seu repo será sincronizado com o bucket a cada atualização.

Configurando o pipeline

No CodePipeline Console, clique em "Criar novo pipeline", ” dê um nome a ele e escolha criar uma nova função de serviço.

Para o estágio de origem, selecione seu repositório Git. Se você estiver usando o CodeCommit da AWS, poderá selecionar o repo e a ramificação. Caso contrário, você precisará se conectar à sua conta do Github ou Bitbucket. O Gitlab não é suportado.

Para o estágio de construção, selecione "CodeBuild", ” e crie um novo projeto de construção.

Isso abrirá uma janela de diálogo, que irá configurar automaticamente a fonte do novo projeto CodeBuild para usar o CodePipeline. Você precisará configurar seu ambiente aqui, selecionar um sistema operacional e escolher uma versão de tempo de execução. Você também desejará criar uma nova função de serviço, que precisará ser modificada para poder acessar seu bucket de implantação.

Para a configuração da compilação, escolha usar um arquivo buildspec.

Buildspec é um formato YAML para definir quais comandos o CodeBuild executará. Isso varia dependendo da sua aplicação. Neste exemplo, assumiremos que você está construindo seu aplicativo JavaScript com o npm. Cole o seguinte em um novo arquivo chamado buildspec. yml, colocado na raiz do seu repositório.

 versão: 0.2 fases: instalação: versões de tempo de execução: nodejs: 10 comandos: - npm i npm @ latest -g pre_build: comandos: - npm install build: comandos: - npm execute build post_build: comandos: - aws s3 sync ./build s3: // nome do bloco 

Este Buildspec realmente cuida da implantação do S3 durante o estágio de pós-compilação, o CodeBuild executará a aws s3 sync para sincronizar a pasta / build com o bucket especificado.

Clique em criar no projeto de compilação, que o levará de volta ao CodePipeline. Clique em 'Próximo', ” e escolha pular o estágio de implantação, porque o CodeBuild pode lidar com a execução do comando. Crie o pipeline.

Na primeira execução, o estágio de criação falhará, porque a função de serviço CodeBuild não tem acesso ao S3. Vá para o Console de Gerenciamento do IAM, encontre a função CodeBuild em "Funções", ” e anexar uma nova política que permita o acesso ao S3. Realmente, você provavelmente deve limitar isso para acessar apenas o bucket de implantação.

Volte para o CodePipeline e clique em "Release Change" ” no seu pipeline para acionar manualmente uma atualização do pipeline. Se nada estiver errado com o seu Buildspec, você verá o pipeline bem-sucedido.

Se você confirmar o Git, uma nova compilação será gerada e o S3 será atualizado com os artefatos da compilação. Se houver algum erro na compilação, o CodePipeline será interrompido antes da atualização.

Se o seu pipeline estiver falhando, você poderá clicar em "CodeBuild" ” na barra lateral para visualizar os logs da versão mais recente, o que ajudará a rastrear erros.

Via: How to Geek

Nenhum comentário