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á.
Este tutorial ajuda você a criar uma ação de implantação CodePipeline que implanta seu código em instâncias que você configurou na 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 EC2
implantação 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.sh
arquivo 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 sua função de serviço, consultePermissões da política de função de serviço para a ação de EC2 implantação.
Assim que você atender a esses pré-requisitos, poderá continuar com o tutorial e criar seu pipeline de CD.
Etapa 1: criar instâncias Amazon EC2 Linux
Nesta etapa, você cria as EC2 instâncias da Amazon nas quais implantará um aplicativo 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 em que 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 Selecione seu caso de uso, escolha EC2. Escolha Próximo: Permissões.
-
Procure e selecione a política chamada
AWSSystemsManagerDefaultEC2InstanceManagementRoleeployAction
. -
Procure e selecione a política chamada
AmazonSSMManagedInstanceCore
. Escolha Próximo: etiquetas. -
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 artefatos do S3 para seu pipeline após a criação do pipeline.
Selecione Criar perfil.
Para executar instâncias
Abra o EC2 console da Amazon 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 deName
e 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.micro
elegí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 é Ativar.
-
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 que você criou.
-
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 pararunning
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).)
Etapa 2: adicionar permissões do repositório de artefatos à função da EC2 instância
Você deve atualizar a função de EC2 instância que você criou para sua instância para permitir que ela acesse o bucket de artefatos do seu pipeline.
nota
Ao criar a instância, você cria ou usa uma função de EC2 instância 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 sua função existente com a s3:GetObject
permissão limitada ao compartimento de artefatos da região do seu pipeline.
-
Navegue até seu pipeline no CodePipeline console. Escolha Configurações. Visualize o nome e a localização do armazenamento de artefatos de um pipeline existente. Anote o repositório de artefatos Amazon Resource Name (ARN) e copie-o.
-
Navegue até o console do IAM e escolha Roles (Funções). Escolha 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 seguinte JSON ao documento de política, substituindo o valor no
Resource
campo pelo ARN do bucket.{ "Effect": "Allow", "Principal": "*", "Action": "s3:GetObject", "Resource": "arn:aws:s3:::
BucketName
" } -
Selecione Atualizar.
Etapa 3: Adicionar um arquivo de script ao seu repositório
Cole esse texto de exemplo para criar seu script.sh
arquivo 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.sh
para 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 seu repositório.
/MyDemoRepo/test/script.sh
-
Etapa 4: criar seu funil
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 da política de função de serviço para a ação de EC2 implantação.
-
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 estágio de construção, escolha Ignorar.
-
Na página Etapa 5: Adicionar estágio 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 Exibir detalhes para ver os registros da ação e ver a saída da ação de 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. Seu pipeline deve ser concluído e sua ação implanta o script em suas instâncias.
-
Para obter mais informações sobre solução de problemas, consulte EC2 A ação de implantação falha com uma mensagem de erro No such file.