Tutorial: Crie um pipeline comAWS CloudFormationAções de implantação do StackSets - 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: Crie um pipeline comAWS CloudFormationAções de implantação do StackSets

Neste tutorial, você usará aAWS CodePipelineconsole para criar um pipeline com ações de implantação para criar um conjunto de pilhas e criar instâncias de pilha. Quando o pipeline é executado, o modelo cria um conjunto de pilhas e também cria e atualiza as instâncias nas quais o conjunto de pilhas é implantado.

Existem duas maneiras de gerenciar permissões para um conjunto de pilhas: autogerenciado eAWSfunções do IAM gerenciadas. Este tutorial fornece exemplos com permissões autogerenciadas.

Para usar o Stacksets de forma mais eficaz no CodePipeline, você deve ter uma compreensão clara dos conceitos por trásAWS CloudFormationStackSets e como eles funcionam. ConsulteConceitos do StackSetsnoAWS CloudFormationGuia do usuário do.

nota

Esse recurso não está disponível nas regiões Ásia-Pacífico (Hong Kong) e Europa (Milão). Para fazer referência a outras ações disponíveis, consulteIntegrações de produtos e serviços ao CodePipeline.

Pré-requisitos

Para operações de conjunto de pilhas, você usa duas contas diferentes: uma conta de administração e uma conta de destino. Você cria conjuntos de pilhas na conta do administrador do. Você cria as pilhas individuais que pertencem a um conjunto de pilhas na conta de destino.

Para criar uma função de administrador do com a conta de administrador

Para criar uma função de serviço na conta de destino

Etapa 1: Carregue a amostraAWS CloudFormationarquivo de modelo e parâmetro

Crie um intervalo de origem para o modelo de conjunto de pilhas e os arquivos de parâmetros. Faça download do de exemploAWS CloudFormationarquivo de modelo, configure um arquivo de parâmetros e, em seguida, compacte os arquivos antes de fazer o upload para o bucket de origem do S3.

nota

Certifique-se de compactar os arquivos de origem antes de fazer o upload para o bucket de origem do S3, mesmo que o único arquivo de origem seja o modelo.

Para criar um bucket de origem 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. Escolha Create bucket (Criar bucket).

  3. DentroBucket name, insira um nome para o bucket.

    DentroRegiãoEscolha a Region (região) onde você deseja criar o pipeline. Selecione Create bucket (Criar 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).

Para criar oAWS CloudFormationtemplate file (arquivo de modelo do &SAM;)

  1. Faça download do seguinte arquivo de modelo de exemplo para gerar a configuração do CloudTrail para conjuntos de pilhas:https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSCloudtrail.yml.

  2. Salve o arquivo como template.yml.

Para criar o arquivo parameters.txt

  1. Crie um arquivo com os parâmetros para sua implantação. Parâmetros são valores que você deseja atualizar em sua pilha em tempo de execução. O arquivo de exemplo a seguir atualiza os parâmetros de modelo para o conjunto de pilhas para habilitar a validação de log e eventos globais.

    [ { "ParameterKey": "EnableLogFileValidation", "ParameterValue": "true" }, { "ParameterKey": "IncludeGlobalEvents", "ParameterValue": "true" } ]
  2. Salve o arquivo como parameters.txt.

Para criar o arquivo accounts.txt

  1. Crie um arquivo com as contas nas quais você deseja criar instâncias, conforme mostrado no arquivo de exemplo a seguir.

    [ "111111222222,333333444444" ]
  2. Salve o arquivo como accounts.txt.

Para criar e fazer upload de arquivos de origem

  1. Combine os arquivos em um único arquivo ZIP. Os arquivos devem ter a seguinte aparência no arquivo ZIP.

    template.yml parameters.txt accounts.txt
  2. Carregue o arquivo ZIP no bucket do S3. Este arquivo é o artefato de origem criado peloCriar pipelineassistente para sua ação de implantação no CodePipeline.

Etapa 2: Crie o pipeline

Nesta seção, você criará um pipeline com as seguintes ações:

  • Um estágio de origem com uma ação de origem do S3 em que o artefato de origem é o arquivo de modelo e qualquer arquivo de origem compatível.

  • Um estágio de implantação com umAWS CloudFormationação de implantação do conjunto de pilhas que cria o conjunto de pilhas.

  • Um estágio de implantação com umAWS CloudFormationação de implantação de instâncias de pilha que cria as pilhas e instâncias dentro das contas de destino.

Para criar um pipeline com uma ação do CloudFormationStackSet

  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: Selecione as configurações do pipeline, emPipeline name (Nome do pipeline), insiraMyStackSetsPipeline.

  4. DentroFunção de serviço, escolhaNova função de serviçoPara permitir que o CodePipeline crie uma função de serviço no IAM.

  5. DentroLoja de Artifact, deixe os valores padrão.

    nota

    Este não é o bucket de origem para seu código-fonte. Este é o armazenamento de artefatos para o pipeline. Um armazenamento de artefatos separado, como um bucket do S3, é necessário para cada pipeline. Ao criar ou editar um pipeline, é necessário ter um bucket de artefato na região do pipeline e um bucket de artefato porAWSRegião em que você está executando uma ação.

    Para obter mais informações, consulte Artefatos de entrada e saída e Referência da estrutura do pipeline do CodePipeline do.

    Escolha Next (Próximo).

  6. NoEtapa 2: Adicionar estágio de origem, emProvedor de origem, escolhaAmazon S3.

  7. DentroBucket, insira o bucket de origem do S3 que você criou para este tutorial, comoBucketName. DentroChave do objeto S3, insira o caminho do arquivo e o nome do arquivo ZIP do arquivo ZIP, comoMyFiles.zip.

  8. Escolha Next (Próximo).

  9. DentroEtapa 3: Adicionar estágio de compilação, escolhaIgnorar estágio de compilaçãoEm seguida, aceite a mensagem de aviso ao clicarIgnorarnovamente.

    Escolha Next (Próximo).

  10. DentroEtapa 4: Adicionar estágio de implantação:

    1. DentroProvedor de implantação, escolhaAWS CloudFormationConjunto de pilhas.

    2. DentroNome do conjunto de pilhas, insira um nome para o conjunto de pilhas. Esse é o nome do conjunto de pilhas que o modelo cria.

      nota

      Anote seu nome do conjunto de pilhas. Você o usará ao adicionar a segunda ação de implantação do StackSets ao pipeline.

    3. DentroCaminho do modelo, insira o nome do artefato e o caminho do arquivo em que você carregou seu arquivo de modelo. Por exemplo, insira o seguinte usando o nome do artefato de origem padrãoSourceArtifact.

      SourceArtifact::template.yml
    4. DentroAlvos de implantação, insira o nome do artefato e o caminho do arquivo em que você carregou o arquivo de contas. Por exemplo, insira o seguinte usando o nome do artefato de origem padrãoSourceArtifact.

      SourceArtifact::accounts.txt
    5. DentroDestino de implantaçãoRegiões da AWS, insira uma região para implantação de sua instância de pilha inicial, comous-east-1.

    6. AmpliarOpções de implantação. DentroParâmetros, insira o nome do artefato e o caminho do arquivo em que você carregou o arquivo de parâmetros. Por exemplo, insira o seguinte usando o nome do artefato de origem padrãoSourceArtifact.

      SourceArtifact::parameters.txt

      Para inserir os parâmetros como uma entrada literal em vez de um caminho de arquivo, insira o seguinte:

      ParameterKey=EnableLogFileValidation,ParameterValue=true ParameterKey=IncludeGlobalEvents,ParameterValue=true
    7. DentroCapacidades, selecione CAPABILITY_IAM e CAPABILITY_NAMED_IAM.

    8. DentroModelo de permissão, escolha SELF_MANAGED.

    9. DentroPercentual de tolerância, insira20.

    10. DentroPorcentagem máxima, insira25.

    11. Escolha Next (Próximo).

    12. Selecione Create pipeline (Criar pipeline). Seu pipeline é exibido.

    13. Deixe que o pipeline seja executado.

Etapa 3: Visualizar implantação inicial

Visualize os recursos e o status da implantação inicial. Depois de verificar a implantação criada com êxito seu conjunto de pilhas, você pode adicionar a segunda ação aoImplanteEstágio.

Para visualizar os recursos

  1. Abra o console do CodePipeline em https://console.aws.amazon.com/codesuite/codepipeline.

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

  3. Selecione oAWS CloudFormationação noCloudFormationStackSetAção no pipeline. O modelo, os recursos e os eventos para o conjunto de pilhas são mostrados naAWS CloudFormationconsole do .

  4. No painel de navegação, selecioneStackSets do. Na lista, escolha o novo conjunto de pilhas.

  5. Selecione oInstâncias da pilhaGuia. Verifique se uma instância de pilha para cada conta fornecida foi criada na região us-east-1. Verifique se o status de cada instância da pilha éCURRENT.

Etapa 4: Adicionar uma ação do CloudFormationStackInstances

Crie uma próxima ação no pipeline que permitiráAWS CloudFormationStackSets para criar as instâncias restantes da pilha.

Para criar uma próxima ação no pipeline

  1. 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.

  2. Escolha editar o pipeline. O pipeline é exibido emEditeModo do.

  3. NoImplanteEstágio, selecioneEdite.

  4. SobAWS CloudFormationConjunto de pilhasimplantar ação, escolhaAdicionar grupo de ação.

  5. NoEditar ação, adicione os detalhes da ação:

    1. DentroAction name (Nome da ação), insira um nome para a ação.

    2. DentroProvedor de ação, escolhaAWS CloudFormationInstâncias do stack.

    3. UNDERInput artifacts (Artefatos de entrada), escolhaSourceArtifact.

    4. DentroNome do conjunto de pilhas, insira o nome do conjunto de pilhas. Esse é o nome do conjunto de pilhas que você forneceu na primeira ação.

    5. DentroAlvos de implantação, insira o nome do artefato e o caminho do arquivo em que você carregou o arquivo de contas. Por exemplo, insira o seguinte usando o nome do artefato de origem padrãoSourceArtifact.

      SourceArtifact::accounts.txt
    6. DentroDestino de implantaçãoRegiões da AWS, insira as Regiões para implantação de suas instâncias de pilha restantes, comous-east-2eeu-central-1como segue:

      us-east2, eu-central-1
    7. DentroPercentual de tolerância, insira20.

    8. DentroPorcentagem máxima, insira25.

    9. Escolha Save (Salvar).

    10. .Libere manualmente uma alteração. Seu pipeline atualizado é exibido com duas ações no estágio Implantar.

Etapa 5: Exibir recursos do conjunto de pilhas para sua implantação

Você pode visualizar os recursos e o status da implantação do conjunto de pilhas.

Para visualizar os recursos

  1. Abra o console do CodePipeline em https://console.aws.amazon.com/codesuite/codepipeline.

  2. UNDERPipelinesEscolha seu pipeline e escolhaExibir. O diagrama mostra os estágios de implantação e a origem do pipeline.

  3. Selecione oAWS CloudFormationação noAWS CloudFormation Stack InstancesAção no pipeline. O modelo, os recursos e os eventos para o conjunto de pilhas são mostrados naAWS CloudFormationconsole do .

  4. No painel de navegação, selecioneStackSets do. Na lista, escolha seu conjunto de pilhas.

  5. Selecione oInstâncias da pilhaGuia. Verifique se todas as instâncias de pilha restantes para cada conta que você forneceu foram criadas ou atualizadas nas regiões esperadas. Verifique se o status de cada instância da pilha éCURRENT.

Etapa 6: Faça uma atualização no seu conjunto de pilhas

Faça uma atualização para o conjunto de pilhas e implante a atualização nas instâncias. Neste exemplo, você também faz uma alteração nos destinos de implantação que deseja designar para atualização. As instâncias que não fazem parte da atualização mudam para um status desatualizado.

  1. Abra o console do CodePipeline em https://console.aws.amazon.com/codesuite/codepipeline.

  2. UNDERPipelinesEscolha seu pipeline e escolhaEdite. NoImplanteEstágio, selecioneEdite.

  3. Opte por editar oAWS CloudFormationConjunto de pilhasAção no pipeline. DentroDescrição, escreva sobre a descrição existente com uma nova descrição para o conjunto de pilhas.

  4. Opte por editar oAWS CloudFormationInstâncias do stackAção no pipeline. DentroDestino de implantaçãoRegiões da AWS, exclua ous-east-2valor que foi inserido quando a ação foi criada.

  5. Salve as alterações. SelecioneMudança de versãopara executar seu pipeline.

  6. Abra sua ação noAWS CloudFormation. Selecione oInformações sobre StackSetGuia. DentroDescrição do StackSet, verifique se a nova descrição é mostrada.

  7. Selecione oInstâncias da pilhaGuia. UNDERStatus, verifique se o status das instâncias de pilha em us-east-2 éOUTDATED.