Tutorial: Criar um pipeline simples (bucket do S3) - 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 (bucket do S3)

A maneira mais fácil de criar um pipeline é usando o assistente Create pipeline (Criar pipeline) no console do AWS CodePipeline.

Neste tutorial, você vai criar um pipeline de dois estágios que usa um bucket do S3 versionado e o CodeDeploy para lançar um aplicativo de exemplo.

nota

Quando o Amazon S3 é o provedor de origem para o pipeline, é possível compactar o arquivo ou os arquivos de origem em um único .zip e fazer upload do .zip para o bucket de origem. Também é possível fazer upload de um único arquivo descompactado; no entanto, ocorrerão falha nas ações downstream que aguardam um arquivo .zip.

Após criar esse pipeline simples, adicione outro estágio e, em seguida, desabilite e habilite a transição entre os estágios.

Importante

Muitas das ações que você adiciona ao pipeline neste procedimento envolvemAWSOs recursos que você precisa criar antes de criar o pipeline.AWSOs recursos do para suas ações de origem devem sempre ser criados no mesmoAWSRegião onde você cria o pipeline. Por exemplo, se você criar seu pipeline na região Leste dos EUA (Ohio), o repositório do CodeCommit também deverá estar na região Leste dos EUA (Ohio).

É possível adicionar ações entre regiões ao criar o pipeline.AWSOs recursos para ações entre regiões devem estar no mesmoAWSRegião onde você planeja executar a ação. Para obter mais informações, consulte Adicionar uma ação entre regiões no CodePipeline.

Antes de começar, você deve cumprir os pré-requisitos em Conceitos básicos do CodePipeline.

Etapa 1: Criar um bucket do S3 para o aplicativo

É possível armazenar os aplicativos ou arquivos de origem em qualquer local versionado. Neste tutorial, você criará um bucket do S3 para os exemplos de aplicativos e habilitar o versionamento nesse bucket. Após habilitar o versionamento, copie os aplicativos de exemplo para esse bucket.

Para criar um bucket do S3

  1. Faça login no AWS Management Console e abra o console do Amazon S3 em https://console.aws.amazon.com/s3/.

  2. Selecione Create bucket (Criar bucket).

  3. No Bucket name (Nome do bucket), insira um nome para o seu bucket (por exemplo, awscodepipeline-demobucket-example-date).

    nota

    Como todos os nomes de bucket no Amazon S3 devem ser exclusivos, use um dos seus próprios nome e não o nome exibido no exemplo. Você pode alterar o nome de exemplo simplesmente adicionando uma data. Anote esse nome, pois você precisará usá-lo mais adiante neste tutorial.

    DentroRegiãoEscolha a Região onde você pretende criar o pipeline comoOeste dos EUA (Oregon)e, depois, escolhaCriar bucket.

  4. Depois que o bucket é criado, um banner de sucesso é exibido. Escolha Go to bucket details (Ir para detalhes do bucket).

  5. Na guia Properties (Propriedades) escolha Versioning (Versionamento). Escolha Enable versioning (Ativar versionamento) e escolha Save (Salvar).

    Quando o versionamento é habilitado, o Amazon S3 salva todas as versões de cada objeto no bucket.

  6. Na guia Permissions (Permissões) deixe os valores padrão. Para obter mais informações sobre permissões de bucket e objeto do S3, consulte Especificar permissões em uma política.

  7. Em seguida, baixe uma amostraE salve-o em uma pasta ou diretório no computador local.

    1. Selecione uma das seguintes opções. SelecioneSampleApp_Windows.zipSe deseja seguir as etapas deste tutorial para instâncias do Windows Server.

      • Se deseja implantar em instâncias do Amazon Linux usando o CodeDeploy,baixe o aplicativo de exemplo aqui: SampleApp_Linux.zip.

      • Se deseja implantar em instâncias do Windows Server usando o CodeDeploy,baixe o aplicativo de exemplo aqui: SampleApp_Windows.zip.

    2. Faça download do arquivo compactado. Não descompacte o arquivo.

  8. No console do Amazon S3, faça upload do arquivo:

    1. Escolha Upload (Fazer upload).

    2. Arraste e solte o arquivo ou escolha Add files (Adicionar arquivos) e navegue até o arquivo.

    3. Escolha Upload (Fazer upload).

Etapa 2: Criar instâncias do Windows do Amazon EC2 e instalar o agente do CodeDeploy

nota

Este tutorial fornece exemplos de etapas para criar instâncias do Windows do Amazon EC2. Para obter exemplos de etapas para criar instâncias do Linux do Amazon EC2, consulte Etapa 3: Criar uma instância do EC2 do Linux e instalar o agente CodeDeploy. Quando solicitado o número de instâncias a serem criadas, especifique2instâncias.

Nesta etapa, você vai criar as instâncias do Amazon EC2 do Windows Server nas quais implantará um aplicativo de exemplo. Como parte do processo, instale o agente do CodeDeploy nas instâncias. O agente do CodeDeploy é um pacote de software que permite que uma instância seja usada em implantações do CodeDeploy.

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, selecioneEC2e, depois, escolhaPró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).

Para executar instâncias

  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), localize a páginaMicrosoft Windows Server 2019 Basee, em seguida, 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 configuração de hardware para sua 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 2.

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

    • DentroIAM role (Função do IAM),Escolha a função do IAM que você criou no procedimento anterior (por exemplo,EC2InstanceRole).

    • Expanda Detalhes avançados e, em Dados do usuário, com o As text (Como texto) selecionado, insira o seguinte:

      <powershell> New-Item -Path c:\temp -ItemType "directory" -Force powershell.exe -Command Read-S3Object -BucketName bucket-name/latest -Key codedeploy-agent.msi -File c:\temp\codedeploy-agent.msi Start-Process -Wait -FilePath c:\temp\codedeploy-agent.msi -WindowStyle Hidden </powershell>

      nome-do-seu-bucketÉ o nome do bucket do S3 que contém os arquivos CodeDeploy de recursos do para sua região. Por exemplo, para a região Oeste dos EUA (Oregon), substitua bucket-name (nome-do-bucket) por aws-codedeploy-us-west-2. Para obter uma lista de nomes de bucket, consulte Nomes de bucket do kit de recursos por região.

      Este código instala o agente do CodeDeploy em sua instância na medida em que ela é criada. Esse script foi escrito somente para instâncias do Windows.

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

  6. Deixe oEtapa 4: Add StoragePágina inalterada e, depois, escolhaPróximo: Adicionar tags.

  7. Na página Adicionar tags, escolha Add Tag (Adicionar tag). DigiteName (Nome)noKey (Chave)Campo, insiraMyCodePipelineDemonoValore, em seguida, escolhaPróximo: Configurar o grupo de segurança.

    Importante

    As caixas Key (Chave) e Value (Valor) diferenciam letras maiúsculas e minúsculas.

  8. Na página Configure Security Group (Configurar grupo de segurança), permita a comunicação com a porta 80 para que você possa acessar o endpoint de instância pública.

  9. Escolha Review and Launch.

  10. Na página Review Instance Launch, escolha Launch. When solicitado por 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, depois, escolhaExecutar 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. Verifique se a instância passou nas verificações de status. Você pode visualizar essas informações na coluna Status Checks (Verificações de status).

Etapa 3: Criar um aplicativo no CodeDeploy

No CodeDeploy, umAplicativoé um identificador, na forma de um nome, para o código que você deseja implantar. O CodeDeploy usa esse nome para garantir que a combinação correta de revisão, configuração de implantação e grupo de implantação são mencionados durante uma implantação. Você seleciona o nome do aplicativo CodeDeploy da criado nesta etapa ao criar seu pipeline posteriormente neste tutorial.

Para criar um aplicativo no CodeDeploy

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

  2. Se oAplicativosNão aparece, noAWSMenu CodeDeploy, selecioneAplicativos.

  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

  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. DentroFunção de serviço, escolha uma função de serviço que confieAWSCodeDeploy com pelo menos os níveis de confiança e permissões descritos emCriar uma função de serviço para CodeDeploy. Para obter o ARN da função de serviço, consulte Obter ARN da função de serviço (console).

  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). Escolha Name (Nome) no campo Key (Chave) e, no campo Value (Valor) informe MyCodePipelineDemo.

    Importante

    Você deve escolher o mesmo valor para oName (Nome)chave aqui que você atribuiu à sua instância do EC2squando você crioueles. Se você marcou sua instânciasCom algo diferente deMyCodePipelineDemo, certifique-se de usar a ferramenta aqui.

  6. UnderConfigurações de implantação, escolhaCodeDeployDefault.OneAtaTime.

  7. UnderLoad Balancer, verifique se oAtivar o balanceamentonão está selecionada. Você não precisa configurar um load balancer ou escolher um grupo de destino para este exemplo. Depois de desmarcar a caixa de seleção, as opções do balanceador de carga não serão exibidas.

  8. No Advanced (Avançado)Seção, deixe os valores padrão.

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

Etapa 4: Criar o primeiro pipeline no CodePipeline

Nesta parte do tutorial, você vai criar o pipeline. O exemplo executa automaticamente no pipeline.

Para criar um processo de liberação automatizada do CodePipeline

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

  2. Na página Welcome (Bem-vindo), Getting started (Conceitos básicos) ou Pipelines, selecione Create pipeline (Criar pipeline).

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

    nota

    Se você escolher outro nome para o pipeline, certifique-se de usar esse nome em vez de MyFirstPipeline no restante deste tutorial. Depois de criar um pipeline, não é possível alterar o nome dele. Os nomes de pipelines estão sujeitos à algumas limitações. Para obter mais informações, consulte Cotas noAWSCodePipeline.

  4. Em Service role (Função de serviço), faça um dos seguintes procedimentos:

    • SelecioneNova função de serviçoPara permitir que o CodePipeline crie uma nova função de serviço no IAM.

    • Escolha Existing service role (Função de serviço existente) para usar uma função de serviço já criada no IAM. Em Role name (Nome da função), selecione a função de serviço na lista.

  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, emProvedor de origem, escolhaAmazon S3. Em Bucket, insira o nome do bucket do S3 que você criou em Etapa 1: Criar um bucket do S3 para o aplicativo. Em S3 object key (Chave do objeto do S3), insira a chave do objeto com ou sem um caminho de arquivo, e lembre-se de incluir a extensão do arquivo. Por exemplo,paraSampleApp_Windows.zip, insira o nome do arquivo de exemplo como mostrado neste exemplo:

    SampleApp_Windows.zip

    Escolha Próxima etapa.

    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 no bucket de origem.

    Escolha Next (Próximo).

  7. DentroEtapa 3: Adicionar estágio, escolhaIgnorar estágioE aceite a mensagem de aviso ao selecionarPularnovamente. Escolha Next (Próximo).

  8. DentroEtapa 4: Adicionar estágio, emProvedor de implantação, escolhaAWS CodeDeploy. Por padrão, o campo Region (Região) assume a mesma região da AWS de seu pipeline. Em Application name (Nome do aplicativo), insira MyDemoApplication ou selecione o botão Refresh (Atualizar) e selecione o nome do aplicativo na lista. Em Deployment group (Grupo de implantação), insira MyDemoDeploymentGroup ou selecione-o na lista e selecione Next (Próximo).

    nota

    O nome Deploy é o nome dado por padrão ao palco criado noEtapa 4: Adicionar estágioEtapa, assim como Origem é o nome dado ao primeiro estágio do pipeline.

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

  10. O pipeline começa a ser executado. Você pode visualizar o andamento e mensagens de êxito e falha à medida que a amostra do CodePipeline implanta uma página da web em cada instância do Amazon EC2 na implantação do CodeDeploy.

Parabéns! Você acabou de criar um pipeline simples no CodePipeline. O pipeline tem dois estágios:

  • Um estágio de origem chamado Source (Origem), que detecta as alterações no aplicativo de exemplo com versionamento armazenado no bucket do S3 e obtém essas alterações para o pipeline.

  • AImplanteStage que implanta essas alterações em instâncias EC2 com o CodeDeploy.

Agora, verifique os resultados.

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). O pipeline deve concluir a primeira execução dentro de alguns minutos.

  2. Após a exibição do status Com êxito para o status da ação, na área do status da etapa Implantar, selecione Detalhes. Isso abre o console do AWS CodeDeploy.

  3. NoGrupo de implantação, emEventos de ciclo de vida, escolhaumID 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 e cole-o na barra de endereços de seu navegador da Web. Visualize a página de índice para o aplicativo de exemplo que você carregou para o bucket do S3.

    A página a seguir é o aplicativo de amostra que você carregou para o seu bucket do S3.

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

(Optional)Step 5: Adicionar outro estágio ao pipeline

Agora, adicione outro estágio ao pipeline para implantar dos servidores de preparação para os servidores de produção usando o CodeDeploy. Primeiro, crie um outro grupo de implantação no CodePipelineDemoApplication no CodeDeploy. Em seguida, adicione um estágio que inclui uma ação que usa esse grupo de implantação. Para adicionar outro estágio, use o console do CodePipeline ou oAWS CLIPara recuperar e editar manualmente a estrutura do pipeline em um arquivo JSON e, em seguida, execute oupdate-pipelinepara atualizar o pipeline com suas alterações.

Criar um segundo grupo de implantação no CodeDeploy

nota

Nesta parte do tutorial, você vai criar um segundo grupo de implantação, mas o implantará nas mesmas instâncias do Amazon EC2 usadas anteriormente. Isso é apenas para fins de demonstração. Ele é projetado para falhar propositadamente ao mostrar como os erros são exibidos no CodePipeline.

Para criar um segundo grupo de implantação no CodeDeploy

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

  2. Selecione Applications (Aplicativos) e, na lista de aplicativos, selecione MyDemoApplication.

  3. Selecione a guia Deployment groups (Grupos de implantação), depois escolha Create deployment group (Criar grupo de implantação).

  4. Na página Create deployment group (Criar grupo de implantação), em Deployment group name (Nome do grupo de implantação), insira um nome para o segundo grupo de implantação (por exemplo, CodePipelineProductionFleet).

  5. DentroFunção de serviçoOu então, selecione a mesma função de serviço CodeDeploy que você usou para a implantação inicial (e não a função de serviço do CodePipeline)

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

  7. Em Environment configuration (Configuração do ambiente), selecione Amazon EC2 Instances (Instâncias do Amazon EC2). Escolha Name (Nome) na caixa Key (Chave) e, na caixa Value (Valor), escolha MyCodePipelineDemo na lista. Deixe a configuração padrão para Deployment settings (Configurações da implantação).

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

  9. Em Load Balancer, desmarque Enable load balancing (Habilitar balanceamento de carga).

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

Adicionar o grupo de implantação como outro estágio ao pipeline

Agora que você possui outro grupo de implantação, poderá adicionar um estágio que usa esse grupo para implantar nas mesmas instâncias do EC2 usadas anteriormente. É possível usar o console do CodePipeline ou oAWS CLIpara adicionar este estágio.

Criar um terceiro estágio (console)

É possível usar o console do CodePipeline para adicionar um novo estágio que usa o novo grupo de implantação. Como esse grupo de implantação está implantando nas instâncias do EC2 que você já usou, a ação de implantação neste estágio falhará.

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

  2. DentroName (Nome)Escolha o nome do pipeline que você criou, MyFirstPipeline.

  3. Na página de detalhes do pipeline, selecione Editar.

  4. Na página Edit (Editar), escolha + Add stage (+ Adicionar estágio) para adicionar um estágio logo depois do estágio de implantação.

  5. Em Add stage (Adicionar estágio), em Stage name (Nome do estágio), insira Production. Escolha Add stage (Adicionar estágio).

  6. No novo estágio, escolha + Add action group (+ Adicionar grupo de ação).

  7. Em Edit action (Editar ação), em Action name (Nome da ação), insira Deploy-Second-Deployment. Em Action provider (Fornecedor da ação), em Deploy (Implantar), escolha AWS CodeDeploy.

  8. Na seção CodeDeploy, emApplication name, escolhaMyDemoApplicationNa lista suspensa, como você fez quando criou o pipeline. Em Deployment group (Grupo de implantação), selecione o grupo de implantação que você acabou de criar, CodePipelineProductionFleet. Em Input artifacts (Artefatos de entrada), escolha o artefato de entrada da ação de origem. Escolha Save (Salvar).

  9. Na página Edit (Editar), escolha Save (Salvar). Em Save pipeline changes (Salvar alterações de pipeline), escolha Save (Salvar).

  10. Embora o novo estágio tenha sido adicionado ao seu pipeline, um status de Ainda não executado é exibido, pois nenhuma alteração acionou outra execução do pipeline. Você deve reexecutar manualmente a última revisão para ver como o pipeline editado é executado. Na página de detalhes do pipeline, selecioneRelease changee, depois, escolhaVersãoQuando solicitado. Essa ação executa a revisão mais recente disponível em cada local de origem especificado em uma ação de origem do pipeline.

    Alternativamente, para usar oAWS CLIPara executar o pipeline novamente, a partir de um terminal em sua máquina local do Linux, macOS ou Unix ou de um prompt de comando em sua máquina local do Windows, execute astart-pipeline-execution, especificando o nome do pipeline. Isso executa o aplicativo em seu bucket de origem por meio do pipeline pela segunda vez.

    aws codepipeline start-pipeline-execution --name MyFirstPipeline

    Esse comando retorna um pipelineExecutionId objeto.

  11. Volte para o console do CodePipeline e selecione na lista de pipelinesMyFirstPipelinepara abrir a página de exibição.

    O pipeline mostra três estágios e o estado do artefato em execução através destes três estágios. Pode levar até cinco minutos para que o pipeline execute todas os estágios. Você vê que a implantação é bem-sucedida nos dois primeiros estágios, da mesma forma que antes, mas o estágio Production (Produção) mostra que a ação Deploy-Second-Deployment falhou.

  12. Na ação Deploy-Second-Deployment, selecione Detalhes. Você será redirecionado para a página da implantação do CodeDeploy. Nesse caso, a falha resulta da implantação do primeiro grupo de instâncias em todas as instâncias do EC2, sem deixar qualquer instância para o segundo grupo de implantação.

    nota

    Esta falha é por projeto, para demonstrar o que acontece quando ocorre uma falha em um estágio do pipeline.

Criar um terceiro estágio (CLI)

Embora usar a AWS CLI para adicionar um estágio ao pipeline seja mais complexo do que usar o console, ela dá maior visibilidade na estrutura do pipeline.

Para criar um terceiro estágio para seu pipeline

  1. Abra uma sessão de terminal em sua máquina local do Linux, macOS ou Unix ou um prompt de comando em sua máquina local do Windows e execute aget-pipelinePara exibir a estrutura do pipeline recém-criado. Em MyFirstPipeline, digite o seguinte comando:

    aws codepipeline get-pipeline --name "MyFirstPipeline"

    Este comando retorna a estrutura de MyFirstPipeline. A primeira parte da saída deve ser semelhante ao seguinte:

    { "pipeline": { "roleArn": "arn:aws:iam::80398EXAMPLE:role/AWS-CodePipeline-Service", "stages": [ ...

    A última parte da saída inclui os metadados do pipeline e deve ser semelhante ao seguinte:

    ... ], "artifactStore": { "type": "S3" "location": "codepipeline-us-east-2-250656481468", }, "name": "MyFirstPipeline", "version": 4 }, "metadata": { "pipelineArn": "arn:aws:codepipeline:us-east-2:80398EXAMPLE:MyFirstPipeline", "updated": 1501626591.112, "created": 1501626591.112 } }
  2. Copie e cole essa estrutura em um editor de texto plano e salve o arquivo como pipeline.json. Para sua conveniência, salve este arquivo no mesmo diretório onde você executa os comandos aws codepipeline.

    nota

    Você pode canalizar o JSON diretamente em um arquivo com o comando get-pipeline da seguinte forma:

    aws codepipeline get-pipeline --name MyFirstPipeline >pipeline.json
  3. Copie a seção da etapa Implantar e cole-a após as duas primeiras etapas. Como é uma etapa de implantação, assim como a etapa Implantar, você a usará como um modelo para a terceira etapa.

  4. Altere o nome do estágio e os detalhes do grupo de implantação.

    O exemplo a seguir mostra o JSON que você adicionará ao arquivo pipeline.json após oImplantestage. Edite os elementos enfatizados com novos valores. Lembre-se de incluir uma vírgula para separar as definições das etapas Implantar e Produção.

    , { "name": "Production", "actions": [ { "inputArtifacts": [ { "name": "MyApp" } ], "name": "Deploy-Second-Deployment", "actionTypeId": { "category": "Deploy", "owner": "AWS", "version": "1", "provider": "CodeDeploy" }, "outputArtifacts": [], "configuration": { "ApplicationName": "CodePipelineDemoApplication", "DeploymentGroupName": "CodePipelineProductionFleet" }, "runOrder": 1 } ] }
  5. Se você estiver trabalhando com a estrutura do pipeline recuperada por meio do comando get-pipeline, é necessário remover as linhas metadata do arquivo JSON. Caso contrário, o comando update-pipeline não é capaz de utilizá-la. Remova as linhas "metadata": { }, "created", "pipelineARN" e os campos "updated".

    Por exemplo, remova as seguintes linhas da estrutura:

    "metadata": { "pipelineArn": "arn:aws:codepipeline:region:account-ID:pipeline-name", "created": "date", "updated": "date" }

    Salve o arquivo.

  6. Execute o comando update-pipeline especificando o arquivo JSON do pipeline, de modo semelhante ao seguinte:

    aws codepipeline update-pipeline --cli-input-json file://pipeline.json

    Este comando retorna toda a estrutura do pipeline atualizado.

    Importante

    Não se esqueça de incluir file:// antes do nome de arquivo. Ele é obrigatório nesse comando.

  7. Execute o comando start-pipeline-execution, especificando o nome do pipeline. Isso executa o aplicativo em seu bucket de origem por meio do pipeline pela segunda vez.

    aws codepipeline start-pipeline-execution --name MyFirstPipeline

    Esse comando retorna um pipelineExecutionId objeto.

  8. Abra o console do CodePipeline e escolhaMyFirstPipelineNa lista de pipelines.

    O pipeline mostra três estágios e o estado do artefato em execução através destes três estágios. Pode levar até cinco minutos para que o pipeline execute todas os estágios. Embora a implantação seja bem-sucedida nos dois primeiros estágios, da mesma forma que antes, o estágio Produção mostra que a ação Deploy-Second-Deployment falhou.

  9. Na ação Deploy-Second-Deployment, selecione Detalhes para ver os detalhes da falha. Você será redirecionado para a página de detalhes da implantação do CodeDeploy. Nesse caso, a falha resulta da implantação do primeiro grupo de instâncias em todas as instâncias do EC2, sem deixar qualquer instância para o segundo grupo de implantação.

    nota

    Esta falha é por projeto, para demonstrar o que acontece quando ocorre uma falha em um estágio do pipeline.

(Optional)Step 6: Habilitar e desabilitar transições entre estágios no CodePipeline

Você pode habilitar ou desabilitar a transição entre estágios em um pipeline. Desabilitar a transição entre os estágios permite que você controle manualmente as transições entre um estágio e outro. Por exemplo, você talvez queira executar os primeiros dois estágios de um pipeline, mas desativar as transições para o terceiro estágio até que você esteja pronto para implantar para produção ou ao solucionar um problema ou uma falha com esse estágio.

Para habilitar e desabilitar transições entre estágios em um pipeline do CodePipeline

  1. Abra o console do CodePipeline e escolhaMyFirstPipelineNa lista de pipelines.

  2. Na página de detalhes do pipeline, selecione o botão Desativar transição entre a segunda etapa, (Implantar) e a terceira etapa adicionada na seção anterior, (Produção).

  3. Em Disable transition (Desabilitar transição), insira um motivo para desabilitar a transição entre os estágios e depois selecione Disable (Desabilitar).

    A seta entre estágios exibe um ícone e uma alteração de cor e o botão Enable transition (Permitir transição) é exibido.

  4. Faça o upload de sua amostra novamente para o bucket do S3. Como o bucket é versionado, essa mudança inicia o pipeline. Para obter mais informações, consulte Upload the sample application.

  5. Volte para a página de detalhes de seu pipeline e veja o status dos estágios. A visualização do pipeline é alterada para mostrar o andamento e o sucesso nos primeiros dois estágios, mas nenhuma alteração ocorre no terceiro estágio. Esse processo pode levar alguns minutos.

  6. Permita a transição selecionando o botão Enable transition (Permitir transição) entre os dois estágios. Na caixa de diálogo Permitir transição, selecione Permitir. O estágio começa a ser executado em alguns minutos e tenta processar o artefato que foi executado pelos dois primeiros estágios de pipeline.

    nota

    Se você quiser que esse terceiro estágio tenha êxito, edite o grupo de implantação do CodePipelineProductionFleet antes de permitir a transição e especifique um conjunto diferente de instâncias do EC2 em que o aplicativo será implantado. Para obter mais informações sobre como fazer isso, consulteAlteraçãoDeploymentggruposGravações. Se você criar mais instâncias do EC2, poderá incorrer em custos adicionais.

Etapa 7: Limpar os recursos

Você pode usar alguns dos recursos criados neste tutorial para o Tutorial: Criar um pipeline de quatro estágios. Por exemplo, é possível reutilizar o aplicativo e a implantação do CodeDeploy. Você pode configurar uma ação de criação com um provedor como CodeBuild, que é um serviço de construção totalmente gerenciado na nuvem. Você também pode configurar uma ação de criação que use um provedor com um servidor ou um sistema de criação, como o Jenkins.

No entanto, após 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. Em seguida, o aplicativo CodeDeploy. Por último, apague o bucket do S3.

Para limpar os recursos usados neste tutorial

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

  2. Para limpar seus recursos do CodeDeploy, siga as instruções emPara limpar recursos (console).

  3. Para excluir o bucket do S3, siga as instruções em Excluir ou esvaziar um bucket. Se você não pretende criar mais pipelines, exclua o bucket do S3 criado para o armazenamento de seus artefatos do pipeline. Para mais informações sobre esse bucket, consulte Conceitos CodePipeline.