Exemplo 2: Criar um pipeline do Amazon S3 com o AWS CloudFormation - AWS CodePipeline

Exemplo 2: Criar um pipeline do Amazon S3 com o AWS CloudFormation

Este passo a passo mostra como usar o console do AWS CloudFormation para criar uma infraestrutura que inclui um pipeline conectado a um bucket de origem do Amazon S3. Neste tutorial, você utiliza o arquivo de modelo de exemplo para criar sua pilha de recursos, que inclui o bucket de origem, o armazenamento de artefatos, o pipeline e os recursos de detecção de alterações, como a regra do Amazon CloudWatch Events e a trilha do CloudTrail. Depois de criar sua pilha de recursos no AWS CloudFormation, você pode visualizar seu pipeline no console do AWS CodePipeline. O pipeline é composto por dois estágios, com um estágio de origem do Amazon S3 e um estágio de implantação do CodeDeploy.

Pré-requisitos:

Você deve ter criado os seguintes recursos para uso com o modelo do AWS CloudFormation de exemplo:

  • Você deve ter criado as instâncias do Amazon EC2, no qual instalou o agente do CodeDeploy nas instâncias. Você deve ter criado um grupo de implantação e um aplicativo do CodeDeploy. Use os recursos do Amazon EC2 e do CodeDeploy que você criou em Tutorial: Criar um pipeline simples (repositório do CodeCommit).

  • Escolha os links a seguir para fazer download dos arquivos de exemplo do modelo do AWS CloudFormation para criar um pipeline com uma origem Amazon S3:

    • Faça download do modelo de exemplo para o seu pipeline: YAML | JSON

    • Faça download do modelo de exemplo para o bucket e a trilha do CloudTrail: YAML e JSON

    • Descompacte os arquivos e coloque-os em seu computador local.

  • Baixe o arquivo do aplicativo de exemplo do SampleApp_Linux.zip.

    Salve o arquivo .zip em seu computador local. Você carregará o arquivo .zip após a criação da pilha.

Criar o pipeline no AWS CloudFormation
  1. Abra o console do AWS CloudFormation e selecione Create Stack (Criar pilha). Escolha With new resources (standard) (Com novos recursos [padrão]).

  2. Em Escolher um modelo, escolha Fazer upload de um modelo. Selecione Escolher arquivo e escolha o arquivo de modelo no seu computador local. Escolha Próximo.

  3. Em Stack name (Nome da pilha), insira um nome para o pipeline. Os parâmetros especificados pelo modelo de exemplo são exibidos. Insira os seguintes parâmetros:

    1. Em ApplicationName, insira o nome de seu aplicativo do CodeDeploy. É possível substituir o nome padrão do DemoApplication.

    2. Em BetaFleet, insira o nome do seu grupo de implantação existente do CodeDeploy. É possível substituir o nome padrão do DemoFleet.

    3. Em SourceObjectKey, insira SampleApp_Linux.zip. Você carrega esse arquivo para o bucket depois que o modelo cria o bucket e o pipeline.

  4. Escolha Próximo. Aceite os padrões na página a seguir e selecione Next (Próximo).

  5. Em Capacidades, selecione Reconheço que o AWS CloudFormation pode criar recursos do IAM e escolha Criar pilha.

  6. Após a conclusão da criação da pilha, visualize a lista de eventos para verificar se há erros.

    Solução de problemas do

    O usuário do IAM que está criando o pipeline no AWS CloudFormation pode exigir permissões adicionais a fim de criar recursos para o pipeline. As seguintes permissões são necessárias na política do usuário do IAM para permitir que o AWS CloudFormation crie os recursos necessários do Amazon CloudWatch Events para o pipeline do Amazon S3:

    { "Effect": "Allow", "Action": [ "events:PutRule", "events:PutEvents", "events:PutTargets", "events:DeleteRule", "events:RemoveTargets", "events:DescribeRule" ], "Resource": "resource_ARN" }
  7. No CloudFormation, na guia Resources (Recursos) para a pilha, visualize os recursos que foram criados para a pilha.

    nota

    Para visualizar o pipeline criado, localize a coluna ID lógico na guia Recursos da sua pilha no CloudFormation. Anote o nome na coluna ID físico do pipeline. No CodePipeline, você pode visualizar o pipeline com o mesmo ID físico (nome do pipeline) na região em que criou sua pilha.

    Escolha o bucket do S3 com um rótulo sourcebucket no nome, como s3-cfn-codepipeline-sourcebucket-y04EXAMPLE.. Não escolha o bucket de artefato do pipeline.

    O bucket de origem está vazio porque o recurso foi criado recentemente pelo CloudFormation. Abra o console do Amazon S3 e localize seu bucket do sourcebucket. Escolha Upload (Fazer upload) e siga as instruções para carregar seu arquivo.zip SampleApp_Linux.zip.

    nota

    Quando o Amazon S3 é o provedor de origem do pipeline, você deve fazer upload de todos os arquivos de origem compactados em seu bucket como um único arquivo .zip. Caso contrário, a ação da origem falhará.

  8. Faça login no Console de gerenciamento da AWS e abra o console do CodePipeline em https://console.aws.amazon.com/codesuite/codepipeline.

    Em Pipelines, selecione o pipeline e clique em View (Visualizar). O diagrama mostra os estágios de implantação e a origem do pipeline.

  9. Conclua as etapas dos procedimentos a seguir para criar seus recursos do AWS CloudTrail.

Criar recursos do AWS CloudTrail no AWS CloudFormation
  1. Abra o console do AWS CloudFormation e selecione Create Stack (Criar pilha).

  2. Em Choose a template (Selecionar um modelo), selecione Upload a template to Amazon S3 (Carregar um modelo no Amazon S3). Selecione Browse (Procurar) e selecione o arquivo de modelo para os recursos do AWS CloudTrail em seu computador local. Escolha Próximo.

  3. Em Stack name (Nome da pilha), informe um nome para sua pilha de recursos. Os parâmetros especificados pelo modelo de exemplo são exibidos. Insira os seguintes parâmetros:

    1. Em SourceObjectKey, aceite o padrão para o arquivo .zip do aplicativo de exemplo.

  4. Escolha Próximo. Aceite os padrões na página a seguir e selecione Next (Próximo).

  5. Em Capacidades, selecione Reconheço que o AWS CloudFormation pode criar recursos do IAM e escolha Criar.

  6. Após a conclusão da criação da pilha, visualize a lista de eventos para verificar se há erros.

    As seguintes permissões são necessárias na política para permitir que o AWS CloudFormation crie os recursos do CloudTrail necessários para o pipeline do Amazon S3:

    { "Effect": "Allow", "Action": [ "cloudtrail:CreateTrail", "cloudtrail:DeleteTrail", "cloudtrail:StartLogging", "cloudtrail:StopLogging", "cloudtrail:PutEventSelectors" ], "Resource": "resource_ARN" }
  7. Faça login no Console de gerenciamento da AWS e abra o console do CodePipeline em https://console.aws.amazon.com/codesuite/codepipeline.

    Em Pipelines, selecione o pipeline e clique em View (Visualizar). O diagrama mostra os estágios de implantação e a origem do pipeline.

  8. No seu bucket de origem, confirme e envie uma alteração. Seus recursos de detecção de alterações capturam a alteração e o pipeline é iniciado.