Tutorial: Criar um pipeline simples (repositório CodeCommit) - AWS CodePipeline

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á.

Tutorial: Criar um pipeline simples (repositório CodeCommit)

Neste tutorial, use CodePipeline para implantar o código mantido em um repositório CodeCommit em uma única instância do Amazon EC2. O pipeline é acionado quando você envia uma alteração ao repositório CodeCommit. O pipeline implanta suas alterações em uma instância do Amazon EC2 usando o CodeDeploy como o serviço de implantação.

O pipeline tem dois estágios:

  • Um estágio de origem (Origem) para sua ação de código-fonte CodeCommit.

  • Um estágio de implantação (Implante) para a ação de implantação do CodeDeploy.

A maneira mais fácil de começar a usar oAWS CodePipelineé usar oCriar pipelineAssistente no console do CodePipeline.

nota

Antes de começar, verifique se o cliente Git está configurado para funcionar com o CodeCommit. Para obter instruções, consulteConfigurando o CodeCommit.

Etapa 1: Criar um repositório CodeCommit

Primeiro, crie um repositório no CodeCommit. Seu pipeline obtém o código-fonte desse repositório quando for executado. Você também cria um repositório local para manter e atualizar o código antes de enviá-lo para o repositório CodeCommit.

Como criar um repositório CodeCommit

  1. Abra o console do CodeCommit em.https://console.aws.amazon.com/codecommit/.

  2. No seletor da região, escolha a Região da AWS onde você deseja criar o repositório e o pipeline. Para obter mais informações, consulte Regiões e endpoints da AWS.

  3. Na página Repositories (Repositórios), selecione Create repository (Criar repositório).

  4. Na página Create repository (Criar repositório), em Repository name (Nome do repositório), insira um nome para o repositório (por exemplo MyDemoRepo).

  5. Escolha Create (Criar).

nota

As etapas restantes neste tutorial usam oMyDemoRepoComo o nome do repositório CodeCommit. Se você escolher um nome diferente, certifique-se de usá-lo durante todo este tutorial.

Como configurar um repositório local

Nesta etapa, você configurará um repositório local para se conectar ao repositório CodeCommit remoto.

nota

Você não precisa configurar um repositório local. Você também pode usar o console do para fazer upload de arquivos conforme descrito emEtapa 2: Adicionar um código de exemplo ao repositório CodeCommit.

  1. Com o novo repositório aberto no console, escolha Clone URL (Clonar URL) no canto superior direito da página e, depois, escolha Clone SSH (Clonar SSH). O endereço para clonar o repositório Git é copiado na área de transferência.

  2. No terminal ou na linha de comando, navegue até um diretório local onde você deseja que seu repositório local seja armazenado. Neste tutorial, usamos /tmp.

  3. Execute o comando a seguir para clonar o repositório, substituindo o endereço SSH pelo que você copiou na etapa anterior. Esse comando cria um diretório chamado MyDemoRepo. Copie um aplicativo de exemplo nesse diretório.

    git clone ssh://git-codecommit.us-west-2.amazonaws.com/v1/repos/MyDemoRepo

Etapa 2: Adicionar um código de exemplo ao repositório CodeCommit

Nesta etapa, você baixa um código para um aplicativo de exemplo que foi criado para uma demonstração de exemplo do CodeDeploy e o adicionará ao repositório CodeCommit.

  1. Faça o download do seguinte arquivo: SampleApp_Linux.zip

  2. Descompacte os arquivos de SampleApp_Linux.zip no diretório local criado anteriormente (por exemplo, /tmp/MyDemoRepo ou c:\temp\MyDemoRepo).

    Certifique-se de alocar os arquivos diretamente em seu repositório local. Não inclua uma pasta SampleApp_Linux. Em sua máquina Linux, macOS ou Unix local, por exemplo, seu diretório e hierarquia de arquivos deve ser semelhante a:

    /tmp └-- MyDemoRepo │-- appspec.yml │-- index.html │-- LICENSE.txt └-- scripts │-- install_dependencies │-- start_server └-- stop_server
  3. Para carregar arquivos no repositório do, use um dos métodos a seguir.

    1. Para usar o console do CodeCommit para fazer upload de seus arquivos:

      1. Abra o console do CodeCommit e selecione seu repositório noRepositóriosLista.

      2. Selecione Add file (Adicionar arquivo) e clique em Upload file (Carregar arquivo).

      3. Selecione Choose file (Escolher arquivo) e procure o arquivo. Para adicionar um arquivo a uma pasta, escolhaCriar arquivoe insira o nome da pasta com o nome do arquivo, comoscripts/install_dependencies. Cole o conteúdo do arquivo no novo arquivo.

        Informe seu nome de usuário e endereço de e-mail para confirmar a alteração.

        Escolha Commit changes (Confirmar alterações).

      4. Repita esta etapa para cada arquivo.

        O conteúdo do repositório deve ser parecido com o seguinte:

        │-- appspec.yml │-- index.html │-- LICENSE.txt └-- scripts │-- install_dependencies │-- start_server └-- stop_server
    2. Para usar comandos git para carregar seus arquivos:

      1. Altere diretórios para o seu repositório local:

        (For Linux, macOS, or Unix) cd /tmp/MyDemoRepo (For Windows) cd c:\temp\MyDemoRepo
      2. Execute o seguinte comando para organizar todos os seus arquivos de uma só vez:

        git add -A
      3. Execute o seguinte comando para confirmar os arquivos com uma mensagem de confirmação:

        git commit -m "Add sample application files"
      4. Execute o seguinte comando para enviar os arquivos do seu repositório local para seu repositório CodeCommit:

        git push
  4. Os arquivos que você baixou e adicionou ao seu repositório local agora foram adicionados àmainramificação em seu CodeCommitMyDemoRepoe estão prontos para serem incluídos em um pipeline.

Etapa 3: Criar uma instância do EC2 do Linux e instalar o agente CodeDeploy

Nesta etapa, você cria a instância do EC2 na qual implantará um aplicativo de exemplo. Como parte desse processo, você instala o agente CodeDeploy na instância do EC2. O agente CodeDeploy é um pacote de software que permite que uma instância seja usada em implantações do CodeDeploy. Você também associa uma função do IAM à instância (conhecida comoFunção da instância do) para permitir que ele busque arquivos que o agente CodeDeploy usa para implantar seu aplicativo.

Como criar uma função de instância

  1. Abra o console do IAM em.https://console.aws.amazon.com/iam/).

  2. No painel do console, escolha Roles (Funções).

  3. Selecione Create role (Criar função).

  4. Em Select type of trusted entity (Selecionar tipo de entidade confiável), escolha AWS service (Serviço da AWS). UnderEscolha um caso de uso, selecioneEC2. Em Select your use case (Selecione seu caso de uso), escolha EC2. CarcaPróximo: Permissions

  5. Pesquise e selecione a política chamadaAmazonec2RoleforAWScodeDeploye, depois, escolhaPróximo: Tags.

  6. Selecione Next (Próximo): Análise. Forneça um nome para a função (por exemplo, EC2InstanceRole).

    nota

    Anote o nome da função para a próxima etapa. Escolha essa função ao criar a instância.

    Selecione Create role (Criar função).

Como iniciar uma instância

  1. Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/.

  2. No painel do console, escolha Launch instance (Iniciar instância) e selecione Launch instance (Iniciar instância) nas opções que serão exibidas.

  3. NoEtapa 1: Escolha uma Imagem de máquina da Amazon (AMI), localizeAmazon Linux 2 AMI (HVM), tipo de volume SSDe, depois, escolhaSelect. (Esta AMI é rotulada "Elegível para nível gratuito" e pode ser encontrada no topo da lista.)

  4. NoEtapa 2: Escolha um tipo de instância, escolha o nível gratuito elegívelt2.microComo a configuração de hardware para seu tipo de instância e escolhaPróximo: Configurar os detalhes da instância.

  5. NoEtapa 3: Configurar os detalhes da instância, faça o seguinte:

    • Em Number of instances (Número de instâncias), insira 1.

    • Em Auto-assign Public IP (Atribuir automaticamente o IP público), selecione Enable (Habilitar).

    • Em IAM role (Função do IAM), escolha a função do IAM criada no procedimento anterior (por exemplo, EC2InstanceRole).

    • Expanda Advanced Details (Detalhes avançados) e, no campo User data (Dados do usuário), insira o seguinte:

      #!/bin/bash yum -y update yum install -y ruby yum install -y aws-cli cd /home/ec2-user wget https://aws-codedeploy-us-east-2.s3.us-east-2.amazonaws.com/latest/install chmod +x ./install ./install auto
      nota

      Para obter um exemplo que executa esses comandos com privilégios elevados (comandos sudo), consulte a referência do agente CodeDeploy emInstalar ou reinstalar o agente CodeDeploy para Amazon Linux ou RHELnoAWS CodeDeployGuia do usuário do.

      Este código instala o agente CodeDeploy em sua instância na medida em que ela é criada.

    • Deixe o restante dos itens noEtapa 3: Configurar os detalhes da instânciainalterada. Selecione Next (Próximo): Add Storage.

  6. Lbeirar oEtapa 4: Add Storageinalterada e, depois, escolhaPróximo: Adicionar tags.

  7. Escolha Add Tag. Em Key (Chave), insira Name e, em Value (Valor), insira MyCodePipelineDemo. Selecione Next (Próximo): Configurar o grupo de segurança. Posteriormente, crie um aplicativo CodeDeploy que implanta o aplicativo de exemplo nessa instância. CodeDeploy seleciona instâncias a serem implantadas com base nas tags associadas às instâncias.

  8. NoEtapa 6: Configurar o grupo de segurança, faça o seguinte:

    • Ao lado de Assign a security group (Atribuir um grupo de segurança), selecione Create a new security group (Criar novo grupo de segurança).

    • Na fileira para SSH, em Source (Fonte), selecione My IP (Meu IP).

    • Selecione Add Rule (Adicionar regra), escolha HTTP e, em Source (Fonte), selecione My IP (Meu IP).

  9. Escolha Review and Launch.

  10. Na página Review Instance Launch, escolha Launch. Quando solicitado um key pair, escolhaProceed without a key pair.

    nota

    Para os fins deste tutorial, é possível prosseguir sem um par de chaves. Para usar o SSH para se conectar às instâncias, crie ou use um par de chaves.

    Quando estiver pronto, selecione oe, em seguida, selecioneExecutar instâncias.

  11. Selecione Visualizar instâncias para fechar a página de confirmação e voltar ao console.

  12. É possível visualizar o status da ativação na página Instâncias. Ao executar uma instância, seu estado inicial é pending. Após o início da instância, seu estado muda para running e ela recebe um nome DNS público. (Se a coluna do Public DNS (DNS público) não for exibida, selecione o ícone Show/Hide (Exibir/Ocultar) e Public DNS (DNS público).)

  13. Pode levar alguns minutos até que a instância esteja pronta para sua conexão. Visualize as informações na coluna Status Checks (Verificações de status) para ver se sua instância passou nas verificações de status.

Etapa 4: Criar um aplicativo no CodeDeploy

No CodeDeploy, umAplicativoO é um recurso que contém o aplicativo de software que você deseja implantar. Posteriormente, use esse aplicativo com CodePipeline para automatizar implantações do aplicativo de exemplo em sua instância do Amazon EC2.

Primeiro, crie uma função que permita que o CodeDeploy execute implantações. Em seguida, você cria um aplicativo CodeDeploy.

Como criar uma função de serviço CodeDeploy

  1. Abra o console do IAM em.https://console.aws.amazon.com/iam/).

  2. No painel do console, escolha Roles (Funções).

  3. Selecione Create role (Criar função).

  4. Em Select type of trusted entity (Selecionar tipo de entidade confiável), escolha AWS service (Serviço da AWS). Em Choose a use case (Escolher um caso de uso), selecione CodeDeploy. UnderSelecione o caso de uso, escolhaCodeDeploy. CarcaPróximo: Permissions A política gerenciada AWSCodeDeployRole já está anexada à função.

  5. Selecione Next (Próximo): Tags, ePróximo: Análise.

  6. Insira um nome para a função (por exemplo, CodeDeployRole) e escolha Create role (Criar função).

Para criar um aplicativo no CodeDeploy

  1. Abra o console do CodeDeploy emhttps://console.aws.amazon.com/codedeploy.

  2. Se oAplicativosnão for exibida, na guiaAWSMenu CodeDeploy, escolhaAplicativos.

  3. Selecione Criar aplicativo.

  4. DentroApplication name, insiraMyDemoApplication.

  5. Em Compute platform (Plataforma de computação), selecione EC2/On-Premises (EC2/no local).

  6. Selecione Criar aplicativo.

Para criar um grupo de implantação no CodeDeploy

Um grupo de implantação é um recurso que define configurações relacionadas à implantação, como em quais instâncias implantar e com que rapidez implantá-las.

  1. Na página que mostra o aplicativo, selecione Create deployment group (Criar grupo de implantação).

  2. Em Deployment group name (Nome do grupo de implantação), insira MyDemoDeploymentGroup.

  3. Em Service Role (Função de serviço), escolha a função de serviço criada anteriormente (por exemplo, CodeDeployRole).

  4. Em Deployment type (Tipo de implantação), selecione In-place (No local).

  5. Em Environment configuration (Configuração do ambiente), selecione Amazon EC2 Instances (Instâncias do Amazon EC2). NoKey (Chave), insiraName. NoValorInsira o nome usado para marcar a instância (por exemplo,MyCodePipelineDemo).

  6. Em Deployment configuration (Configuração de implantação), selecione CodeDeployDefault.OneAtaTime.

  7. UnderLoad Balancer, certifique-se de queHabilitar balanceamentonão está selecionada. Você não precisa configurar um load balancer ou escolher um grupo de destino para este exemplo.

  8. Expanda a seção Advanced (Avançado). Em Alarms (Alarmes), se algum alarme estiver listado, escolha Ignore alarm configuration (Ignorar configuração do alarme).

  9. Selecione Create deployment group (Criar grupo de implantação).

Etapa 5: Criar o primeiro pipeline no CodePipeline

Agora, você está pronto para criar e executar seu primeiro pipeline. Nesta etapa, crie um pipeline que é executado automaticamente quando o código é enviado ao repositório CodeCommit.

Para criar um pipeline do CodePipeline

  1. Faça login noAWS Management Consolee abra o console do CodePipeline emhttp://console.aws.amazon.com/codesuite/codepipeline/home.

    Abra o console do CodePipeline emhttps://console.aws.amazon.com/codepipeline/.

  2. Selecione Create pipeline (Criar pipeline).

  3. DentroEtapa 1: Escolha as configurações do pipeline, emPipeline name (Nome do pipeline), insiraMyFirstPipeline.

  4. DentroFunção de serviço, escolhaNova função de serviçoPara permitir que o CodePipeline crie uma função de serviço no IAM.

  5. Deixe as configurações em Advanced settings (Configurações avançadas) como padrão e escolha Next (Próximo).

  6. DentroEtapa 2: Adicionar estágio de origem, emProvedor de origem, escolhaAWS CodeCommit. DentroNome do repositórioEscolha o nome do repositório CodeCommit criado emEtapa 1: Criar um repositório CodeCommit. Em Branch name (Nome da ramificação), escolha main e, depois, selecione Next step (Próxima etapa).

    
            OEtapa 2: OrigemPágina do assistente de pipeline CodePipeline

    Assim que selecionar o nome do repositório e a ramificação, uma mensagem exibirá a regra do Amazon CloudWatch Events a ser criada para esse pipeline.

    Em Change detection options (Alterar opções de detecção), deixe os valores padrão. Isso permite que o CodePipeline use o Amazon CloudWatch Events para detectar alterações em seu repositório de origem.

    Escolha Next (Próximo).

  7. DentroEtapa 3: Adicionar estágio de compilação, escolhaPular estágio de compilaçãoE aceite a mensagem de aviso ao clicar emPularnovamente. Escolha Next (Próximo).

    nota

    Neste tutorial, você está implantando um código que não requer um serviço de compilação, portanto, ignore esta etapa. No entanto, se o código-fonte precisar ser compilado antes de ser implantado em instâncias, você poderá configurar oCodeBuildnesta etapa.

  8. DentroEtapa 4: Adicionar estágio de implantação, emProvedor de implantação, escolhaAWS CodeDeploy. Em Application name (Nome do aplicativo), escolha MyDemoApplication. Em Deployment group (Grupo de implantação), escolha MyDemoDeploymentGroup e, depois, selecione Next step (Próxima etapa).

    
            OEtapa 4: ImplantePágina do assistente de pipeline CodePipeline

  9. DentroEtapa 5: Review (Revisar)Revise as informações e escolhaCriar pipeline.

  10. O pipeline começa a ser executado depois de ser criado. Ele faz download do código do repositório CodeCommit e cria uma implantação do CodeDeploy em sua instância do EC2. É possível visualizar o progresso e mensagens de êxito e falha à medida que a amostra do CodePipeline implanta a página da Web à instância do Amazon EC2 na implantação do CodeDeploy.

    
            Uma visualização de um pipeline começando a ser executado no console do CodePipeline.

Parabéns! Você acabou de criar um pipeline simples no CodePipeline.

Depois, você verifica os resultados.

Para verificar se o seu pipeline foi executado com êxito

  1. Visualize o progresso inicial do pipeline. O status de cada estágio muda de No executions yet (Ainda não executado) para In Progress (Em andamento) e, depois, para Succeeded (Bem-sucedido) ou Failed (Com falha). O pipeline deve concluir a primeira execução dentro de alguns minutos.

  2. Após Com êxito ser exibido para o status do pipeline, na área do status da etapa Implantar, escolha AWS CodeDeploy. ​Isso abre o console do CodeDeploy. Se Succeeded (Bem-sucedido) não for exibido, consulte Solucionando problemas de.

  3. NoImplantaçãosGuia,Escolha o ID de implantação. Na página da implantação,UNDEventos de vida de implantação, escolha o ID da instância. Isso abre o console do EC2.

  4. Na guia Description (Descrição), em Public DNS (DNS público), copie o endereço (por exemplo, ec2-192-0-2-1.us-west-2.compute.amazonaws.com) e cole-o na barra de endereços de seu navegador da Web.

    Este é o aplicativo de exemplo que você baixou e inseriu em seu repositório CodeCommit.

    
            O aplicativo de página da web de exemplo que foi enviado ao seu repositório CodeCommit.

Para obter mais informações sobre os estágios, as ações e o funcionamento dos pipelines, consulte Conceitos CodePipeline.

Etapa 6: Modificar o código no repositório CodeCommit

O pipeline está configurado para ser executado sempre que forem feitas alterações de código no repositório CodeCommit. Nesta etapa, você faz alterações no arquivo HTML que faz parte do aplicativo CodeDeploy de exemplo no repositório CodeCommit. Quando essas alterações são enviadas, o pipeline é executado novamente, e as alterações feitas ficam visíveis no endereço da web acessado anteriormente.

  1. Altere diretórios para o seu repositório local:

    (For Linux, macOS, or Unix) cd /tmp/MyDemoRepo (For Windows) cd c:\temp\MyDemoRepo
  2. Use um editor de texto para modificar o arquivo index.html:

    (For Linux or Unix)gedit index.html (For OS X)open –e index.html (For Windows)notepad index.html
  3. Revise o conteúdo do arquivo index.html para alterar a cor do plano de fundo e parte do texto na página da web e depois salve o arquivo.

    <!DOCTYPE html> <html> <head> <title>Updated Sample Deployment</title> <style> body { color: #000000; background-color: #CCFFCC; font-family: Arial, sans-serif; font-size:14px; } h1 { font-size: 250%; font-weight: normal; margin-bottom: 0; } h2 { font-size: 175%; font-weight: normal; margin-bottom: 0; } </style> </head> <body> <div align="center"><h1>Updated Sample Deployment</h1></div> <div align="center"><h2>This application was updated using CodePipeline, CodeCommit, and CodeDeploy.</h2></div> <div align="center"> <p>Learn more:</p> <p><a href="https://docs.aws.amazon.com/codepipeline/latest/userguide/">CodePipeline User Guide</a></p> <p><a href="https://docs.aws.amazon.com/codecommit/latest/userguide/">CodeCommit User Guide</a></p> <p><a href="https://docs.aws.amazon.com/codedeploy/latest/userguide/">CodeDeploy User Guide</a></p> </div> </body> </html>
  4. Confirme e envie suas alterações ao seu repositório CodeCommit executando os seguintes comandos, um de cada vez:

    git commit -am "Updated sample application files"
    git push

Como verificar se seu pipeline foi executado com êxito

  1. Visualize o progresso inicial do pipeline. O status de cada estágio muda de No executions yet (Ainda não executado) para In Progress (Em andamento) e, depois, para Succeeded (Bem-sucedido) ou Failed (Com falha). A execução do pipeline deve ser concluída em alguns minutos.

  2. Depois que Succeeded (Bem-sucedido) for exibido para o status da ação, atualize a página de demonstração acessada anteriormente no navegador.

    A página da web atualizada é exibida:

    
            O aplicativo de página da web de exemplo atualizado que foi enviado ao seu repositório CodeCommit.

Etapa 7: Limpar os recursos

É possível usar alguns dos recursos criados neste tutorial para outros tutoriais neste guia. Por exemplo, é possível reutilizar o aplicativo CodeDeploy e a implantação do. No entanto, depois de finalizar este e outros tutoriais, você deverá excluir o pipeline e os recursos usados para não ser cobrado pelo uso contínuo desses recursos. Primeiro, apague o pipeline, depois, o aplicativo CodeDeploy e a instância do Amazon EC2 associada e, por último, o repositório CodeCommit.

Para limpar os recursos usados neste tutorial

  1. Para limpar seus recursos do CodePipeline, siga as instruções emExcluir umPipeline no AWS CodePipeline.

  2. Para limpar seus recursos do CodeDeploy, siga as instruções emLimpar recursos passo a passo da implantação.

  3. Para excluir o repositório CodeCommit, siga as instruções emExcluir um CodeCommitrepositório.

Etapa 8 Outras fontes de leitura

Saiba mais sobre como o CodePipeline funciona o: