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ê criará um pipeline de duas etapas 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 nesse procedimento envolvemAWSrecursos que você precisa criar antes de criar o pipeline.AWSos recursos para as 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 CodeCommit O repositório deve estar na região Leste dos EUA (Ohio).

Você pode adicionar ações entre regiões ao criar seu pipeline.AWSos recursos para ações entre regiões devem estar no mesmoAWSRegião em que 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: Crie 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 console emAWS Management Console. Abra o console do S3.

  2. Escolha 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ão, selecione a região onde você pretende criar seu 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. Depois, faça download de um exemplo e salve-o em uma pasta ou um diretório no computador local.

    1. Escolha uma das seguintes opções. Escolha SampleApp_Windows.zip se deseja seguir as etapas deste tutorial para instâncias do Windows Server.

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

  8. No console do Amazon S3, para o seu bucket, faça o upload do arquivo:

    1. Escolha Upload (Carregar).

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

    3. Escolha Upload (Carregar).

Etapa 2: Criar uma instância do Amazon EC2 e instalar o CodeDeploy agente

nota

Esse tutorial fornece exemplos de etapas para Amazon EC2 Windows. Para obter exemplos de etapas para criar instâncias do Amazon EC2, Linux, consulteEtapa 3: Criar umAmazon EC2Instância do Linux e instale o CodeDeploy agente. Quando solicitado o número de instâncias a serem criadas, especifique 2 instâncias.

Nesta etapa, você vai criar as instâncias do Amazon EC2 nas quais implantará um aplicativo de exemplo. Como parte do processo, vocêcriar uma função de instância com políticas que permiteminstalare gerenciamento doa CodeDeploy agente do nas instâncias. O CodeDeploy agent é um pacote de software que permite que uma instância seja usada em CodeDeployImplantações. Você também anexa políticas que permitem que a instância busque arquivos que o CodeDeploy O agente usa para implantar seu aplicativo e permitir que a instância seja gerenciada pelo SSM.

Como criar uma função de instância

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

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

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

  4. UNDERSelecionar o tipo de entidade confiável, selecioneAWSmanutenção. UNDEREscolha um caso de uso, selecioneEC2e, depois, escolhaPróximo: Permissions

  5. Pesquise e selecione a política chamadaAmazonEC2RoleforAWSCodeDeploy.

  6. Pesquise e selecione a política chamadaAmazonSSMManagedInstanceCore. Selecione Next (Próximo): Tags.

  7. 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. Na navegação lateral, escolhaInstânciase selecioneexecutar instânciasna parte superior da página.

  3. UNDERNome e tags, emName (Nome), insiraMyCodePipelineDemo. Isso atribui uma tag às instânciasKey (Chave)doNamee uma tagValordoMyCodePipelineDemo. Mais tarde, você cria um CodeDeploy aplicativo que implanta o aplicativo de amostra nas instâncias. CodeDeployseleciona instâncias a serem implantadas com base nas tags.

  4. UNDERImagens de aplicações e sistemas operacionais (imagem de máquina da Amazon), escolheraJanelaopção. (Esta AMIé descrito comoMicrosoft Windows Server 2019 Baseeé rotulada “Elegível para nível gratuito” e pode ser encontradaembaixoInício rápido..)

  5. UNDERTipo de instância, escolha o nível gratuito elegívelt2.microdigite como a configuração de hardware para sua instância.

  6. UNDERPar de chaves (login), escolha um key pair ou crie um.

    Você também pode escolherProceed 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.

  7. UNDERNetwork settings (Configurações de rede), faça o seguinte.

    DentroAtribuir IP público automaticamente, verifique se o status éHabilitar o.

    • 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 linha do para o.SSH, emTipo de origem, escolhaMeu IP.

    • SelecioneAdicionar security group, escolhaHTTPe, emTipo de origem, escolhaMeu IP.

  8. AmpliarDetalhes avançados. DentroPerfil de instância do IAM, selecione a função do IAM criada no procedimento anterior (por exemplo,EC2InstanceRole).

  9. UNDERSummary (Resumo), emNúmero de instâncias, insira2..

  10. SelecioneExecutarexemplo.

  11. SelecioneExibirLigue para o iInstânciaspara 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

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

Você primeiro cria uma função de serviço para CodeDeploy para usar. Se você já tiver criado uma função de serviço, não será necessário criar outra.

Para criar um CodeDeploy Função de serviço do

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

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

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

  4. UNDERSelecionar entidade confiável, escolhaAWSmanutenção. UNDERCaso de uso, escolhaCodeDeploy. SelecioneCodeDeploydas opções listadas. Escolha Next (Próximo). A política gerenciada AWSCodeDeployRole já está anexada à função.

  5. Escolha Next (Próximo).

  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. Abrir o CodeDeploy Console do emhttps://console.aws.amazon.com/codedeploy.

  2. Se a página Applications (Aplicativos) não for exibida, no menu do AWS CodeDeploy , selecione Applications (Aplicativos).

  3. Selecione Criar aplicativo.

  4. Em Application name (Nome do aplicativo), insira MyDemoApplication.

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

  6. Selecione Criar aplicativo.

Como 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. DentroServiçorole, escolhaa função de serviço do que criou anteriormente. Você deve usaruma função de serviço que confiaAWS CodeDeploycom pelo menos os níveis de confiança e permissões descritos emCriar uma função de serviço para o 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

    É necessário selecionar o mesmo valor para a chave Nome atribuída à instância do EC2 quando criada. Se você marcou instâncias com algo diferente de MyCodePipelineDemo, certifique-se de usar a tag aqui.

  6. UNDERConfiguração do agente com oAWSSystems Manager (Gerenciador de sistemas), escolhaAgora e agende atualizações. Isso instala o agente do na instância. A instância do Windows já está configurada com o agente SSM e agora será atualizada com o CodeDeploy Agente do.

  7. UNDERConfigurações de implantação, escolhaCodeDeployDefault.OneAtaTime.

  8. UNDERLoad Balancer, verifique se oHabilitar o equilíbriocaixa nã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 são exibidas.

  9. Na seção Avançado deixe os padrões.

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

Etapa 4: Crie o primeiro pipeline no CodePipeline

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

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

  1. Faça login noAWS Management Consolee abrir o CodePipeline Console do 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 do pipeline, 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 CodePipeline para criar 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 de origem, emProvedor de origem, escolhaAmazon S3. Em Bucket, insira o nome do bucket do S3 que você criou em Etapa 1: Crie 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, para SampleApp_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 CodePipeline usar o Amazon CloudWatch Eventos para detectar alterações no bucket 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).

  8. DentroEtapa 4: Adicionar estágio de implantação, emProvedor de implantação, escolhaCodeDeploy . ORegiãoo campo padrão é o mesmoRegião da AWScomo 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 estágio criado noEtapa 4: Adicionar estágio de implantação, 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 progresso e mensagens de êxito e falha como CodePipeline A amostra do implanta uma página da Web em cada instância do Amazon EC2 implanta uma página da Web em cada CodeDeployimplantação.

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.

  • Um estágio Deploy (Implantar) que implanta essas alterações nas instâncias do 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 CodeDeploy console do .

  3. Na guia Grupo de implantação, em Eventos de ciclo de vida da implantação, selecione o ID. 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 da Web é exibida para o aplicativo de exemplo que você carregou para o bucket do S3.

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

(Opcional) Etapa 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 a CodeDeploy. Primeiro, crie um outro grupo de implantação na CodePipelineDemoApplication em 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 a CodePipeline Console do ou oAWS CLIpara recuperar e editar manualmente a estrutura do pipeline em um arquivo JSON e, em seguida, executar aupdate-pipelinecomando para 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 para mostrar como os erros são exibidos no CodePipeline.

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

  1. Abrir o CodeDeploy Console do 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ço, escolha o mesmo CodeDeploy função de serviço que você usou para a implantação inicial (e não a CodePipeline Função do serviço do).

  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. Você pode usar o console do CodePipeline ou a AWS CLI para adicionar esse estágio.

Criar um terceiro estágio (console)

Você pode usar o 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 abrir o CodePipeline Console do emhttp://console.aws.amazon.com/codesuite/codepipeline/home.

  2. Em Name (Nome), selecione 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. DentroProvedor de ação, emImplante, escolhaCodeDeploy.

  8. No CodeDeploy seção, 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, selecioneMudança de lançamentoe, 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.

    Como alternativa, para usar oAWS CLIpara executar o pipeline novamente, a partir de um terminal em sua máquina local macOS Linux ou Unix ou de um prompt de comando em sua máquina local do Windows, execute ostart-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. Retorne para o CodePipeline e na lista de pipelines, selecioneMyFirstPipelinepara 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ê é 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 macOS Linux ou Unix ou um prompt de comando em sua máquina local do Windows e execute aget-pipelinepara exibir a estrutura do pipeline que você acabou de criar. 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 será adicionado ao arquivo pipeline.json após aImplantestage. 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. Abrir o CodePipeline console e escolhaMyFirstPipelineda 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 do CodeDeploy implantação. 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.

(Opcional) Etapa 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 CodePipeline pipeline

  1. Abrir o CodePipeline console e escolhaMyFirstPipelineda 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 seja bem-sucedido, edite o CodePipelineProductionFleet antes de permitir a transição e especificar um conjunto diferente de instâncias do EC2 onde o aplicativo será implantado. Para mais informações sobre como fazer isso, consulte Alterar configurações do grupo de implantação. 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 CodeDeploy aplicação e implantação do. Você pode configurar uma ação de criação com um provedor como CodeBuild, que é um serviço de build na nuvem, completamente gerenciado. 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, exclua o pipeline e, em seguida, o CodeDeploy e as instâncias do Amazon EC2 associadas. Por último, o bucket do S3.

Para limpar os recursos usados neste tutorial

  1. Para limpar o seu CodePipeline resources, siga as instruções emExcluir um pipeline noAWS CodePipeline.

  2. Para limpar o seu CodeDeploy resources, 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 do CodePipeline.