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: Implante em instâncias do Amazon EC2 com CodePipeline
Este tutorial ajuda você a criar uma ação de implantação CodePipeline que implanta seu código em instâncias que você configurou no Amazon EC2.
nota
Como parte da criação de um pipeline no console, um bucket de artefatos S3 será usado CodePipeline por for artefacts. (Este bucket não é o mesmo utilizado para uma ação de origem do S3.) Se o bucket de artefatos do S3 estiver em uma conta diferente da conta do seu pipeline, certifique-se de que o bucket de artefatos do S3 Contas da AWS seja de propriedade de quem é seguro e confiável.
nota
A ação de implantação EC2 está disponível somente para pipelines do tipo V2.
Pré-requisitos
Para você usar este tutorial para criar seu pipeline de CD, alguns recursos precisam estar em operação. Veja aqui estão os itens que você precisa para começar:
nota
Todos esses recursos devem ser criados na mesma AWS região.
-
Um repositório de controle de origem (este tutorial usa GitHub) onde você adicionará um
script.sharquivo de amostra. -
Você deve usar uma função CodePipeline de serviço existente que tenha sido atualizada com as permissões para essa ação. Para atualizar o perfil de serviço, consulte Permissões de política do perfil de serviço para a ação de implantação do EC2.
Assim que você atender a esses pré-requisitos, poderá continuar com o tutorial e criar seu pipeline de CD.
Etapa 1: Criar instâncias do Amazon EC2 Linux
Nesta etapa, você vai criar as instâncias do Amazon EC2 nas quais implantará uma aplicação de amostra. Como parte desse processo, crie uma função de instância no IAM, caso ainda não tenha criado uma função de instância na região onde deseja criar recursos.
Como criar uma função de instância
-
Abra o console do IAM em https://console.aws.amazon.com/iam/
). -
No painel do console, escolha Roles (Funções).
-
Selecione Criar perfil.
-
Em Selecionar tipo de entidade confiável, selecione AWS service (Serviço da AWS). Em Escolha um caso de uso, selecione EC2. Em Select your use case (Selecione seu caso de uso), escolha EC2. Escolha Próximo.
-
Procure e selecione a política chamada
AmazonSSMManagedEC2InstanceDefaultPolicy. -
Procure e selecione a política chamada
AmazonSSMManagedInstanceCore. Escolha Próximo: tags. -
Selecione Próximo: revisar. 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.
nota
Você adicionará permissões a essa função para permitir o acesso ao bucket de artefato do S3 para o pipeline depois da criação do pipeline.
Selecione Criar perfil.
Para executar instâncias
Abra o console do Amazon EC2 em https://console.aws.amazon.com/ec2/
. -
Na navegação lateral, escolha Instâncias e selecione Executar instâncias na parte superior da página.
-
Em Nome, insira
MyInstances. Isso atribui à instância uma tag Chave deNamee uma tag Valor deMyInstances. -
Em Imagens do aplicativo e do sistema operacional (Amazon Machine Image), localize a opção Amazon Linux AMI com o AWS logotipo e verifique se ela está selecionada. (Essa AMI é descrita como AMI do Amazon Linux 2 (HVM) e é identificada como “Elegível para o nível gratuito”.)
-
Em Tipo de instância, selecione o tipo
t2.microelegível para o nível gratuito como configuração de hardware para a instância. -
Na seção Par de chaves (login), selecione um par de chaves ou crie um.
-
Em Configurações de rede, verifique se o status é Habilitar.
-
Expanda Advanced details (Detalhes avançados). Em Perfil de instância do IAM, selecione o perfil do IAM criado no procedimento anterior (por exemplo,
EC2InstanceRole).nota
Não deixe a função da instância em branco, pois isso cria uma função padrão e não seleciona a função criada por você.
-
Em Resumo, em Número de instâncias, insira
2. -
Escolha Iniciar instância.
-
É 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 pararunninge 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).)
Etapa 2: adicionar permissões de bucket do artefato à função de instância do EC2
Atualize a função de instância do EC2 criada para a instância a fim de permitir que ela acesse o bucket de artefato do pipeline.
nota
Ao criar a instância, você cria ou usa uma função de instância do EC2 existente. Para evitar Access Denied erros, você deve adicionar permissões de bucket do S3 à função da instância para conceder permissões de instância ao bucket de CodePipeline artefatos. Crie uma função padrão ou atualize a função existente com a permissão s3:GetObject limitada ao bucket de artefato da região do pipeline.
-
Navegue até seu pipeline no CodePipeline console. Escolha Configurações. Exiba o nome e o local do armazenamento de artefato de um pipeline existente. Anote o nome do recurso da Amazon (ARN) do bucket de artefato e o copie.
-
Navegue até o console do IAM e escolha Roles (Funções). Selecione a função de instância que você criou na etapa 1 deste tutorial.
-
Na guia Permissions (Permissões), escolha Add inline policy (Adicionar política em linha).
-
Adicione o JSON a seguir ao documento da política, substituindo o valor no campo
Resourcepelo ARN do bucket.{ "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::BucketName" } -
Selecione Atualizar.
Etapa 3: Adicionar um arquivo de script ao repositório
Cole esse texto de amostra a fim de criar o arquivo script.sh para a etapa pós-script da implantação.
echo "Hello World!"
Para adicionar um arquivo script.sh ao repositório de origem
-
Abra um editor de texto e, em seguida, copie e cole o arquivo acima em um novo arquivo.
-
Confirme e envie o arquivo
script.shpara o repositório de origem.-
Adicione o arquivo.
git add . -
Confirme a alteração.
git commit -m "Adding script.sh." -
Envie a confirmação.
git push
Anote o caminho no repositório.
/MyDemoRepo/test/script.sh -
Etapa 4: Criação do pipeline
Use o CodePipeline assistente para criar seus estágios de funil e conectar seu repositório de origem.
Para criar o pipeline
Abra o CodePipeline console em https://console.aws.amazon.com/codepipeline/
. -
Na página Welcome (Bem-vindo), Getting started (Conceitos básicos) ou Pipelines, selecione Create pipeline (Criar pipeline).
-
Na página Etapa 1: Escolher opção de criação, em Opções de criação, selecione a opção Criar pipeline personalizado. Escolha Próximo.
-
Em Etapa 2: Escolher as configurações do pipeline, em Nome do pipeline, insira
MyPipeline. -
CodePipeline fornece tubulações do tipo V1 e V2, que diferem em características e preço. O tipo V2 é o único tipo que você pode escolher no console. Para ter mais informações, consulte Pipeline types. Para obter informações sobre preços de CodePipeline, consulte Preços
. -
Em Função de serviço, escolha Usar função de serviço existente e, em seguida, escolha a função de CodePipeline serviço que foi atualizada com as permissões necessárias para essa ação. Para configurar sua função CodePipeline de serviço para essa ação, consultePermissões de política do perfil de serviço para a ação de implantação do EC2.
-
Deixe as configurações em Advanced settings (Configurações avançadas) como padrão e escolha Next (Próximo).
-
Na página Etapa 3: Adicionar etapa de origem, adicione uma etapa de origem:
-
Em Provedor de origem, escolha GitHub (via GitHub aplicativo).
-
Em Conexão, escolha uma conexão existente ou crie uma nova. Para criar ou gerenciar uma conexão para sua ação GitHub de origem, consulteGitHub conexões.
-
Em Repository name (Nome do repositório), selecione o nome do seu repositório do GitHub .
Escolha Próximo.
-
-
Na página Etapa 4: Adicionar etapa de compilação, escolha Ignorar.
-
Na página Etapa 5: Adicionar etapa de implantação, escolha EC2.
-
Em Diretório de destino, insira o diretório na instância na qual você deseja implantar, como
/home/ec2-user/testhelloworld.nota
Especifique o diretório de implantação que você deseja que a ação use na instância. A ação automatizará a criação do diretório especificado na instância como parte da implantação.
-
Para PostScript, insira o caminho e o nome do arquivo para seu script, como
test/script.sh. -
Escolha Próximo.
-
-
Na página Step 6: Review, revise a configuração do pipeline e escolha Create pipeline para criá-lo.
-
Depois que o pipeline for executado com êxito, escolha Visualizar detalhes para exibir os logs na ação a fim de exibir a saída da ação da computação gerenciada.
Etapa 5: Teste seu pipeline
Seu pipeline deve ter tudo para executar uma implantação AWS contínua end-to-end nativa. Agora, teste a funcionalidade enviando uma alteração de código ao repositório de origem.
Para testar o pipeline
-
Faça uma alteração no código no repositório de origem configurado, confirme e envie a alteração.
Abra o CodePipeline console em https://console.aws.amazon.com/codepipeline/
. -
Escolha o pipeline na lista.
-
Observe a evolução do pipeline pelos respectivos estágios. O pipeline deve ser concluído, e a ação implanta o script nas instâncias.
-
Para obter mais informações sobre solução de problemas, consulte A ação Implantar do EC2 falha com uma mensagem de erro No such file.