Tutorial: criar um pipeline que usa variáveis das ações de AWS CloudFormation implantação - 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 que usa variáveis das ações de AWS CloudFormation implantação

Neste tutorial, você usa o AWS CodePipeline console para criar um pipeline com uma ação de implantação. Quando o pipeline é executado, o modelo cria uma pilha e também cria um arquivo outputs. As saídas geradas pelo modelo de pilha são as variáveis geradas pela AWS CloudFormation ação em. CodePipeline

Na ação em que é criada a pilha a partir do modelo, um namespace variável é designado. As variáveis produzidas pelo arquivo outputs podem então ser consumidas por ações subsequentes. Neste exemplo, você cria um conjunto de alterações com base na StackName variável produzida pela AWS CloudFormation ação. Após uma aprovação manual, execute o conjunto de alterações e, depois, crie uma ação de pilha de exclusão que exclui a pilha com base na variável StackName.

Importante

Como parte da criação de um pipeline, um bucket de artefatos S3 fornecido pelo cliente será usado CodePipeline por for artefacts. (Isso é diferente do bucket usado 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.

Pré-requisitos: criar uma função de AWS CloudFormation serviço e um repositório CodeCommit

Você já deve ter o seguinte:

  • Um CodeCommit repositório. Você pode usar o AWS CodeCommit repositório em Tutorial: criar um pipeline simples (CodeCommitrepositório) que você criou.

  • Neste exemplo é criada uma pilha do Amazon DocumentDB a partir de um modelo. Você deve usar AWS Identity and Access Management (IAM) para criar uma função AWS CloudFormation de serviço com as seguintes permissões para o Amazon DocumentDB.

    "rds:DescribeDBClusters", "rds:CreateDBCluster", "rds:DeleteDBCluster", "rds:CreateDBInstance"

Etapa 1: baixar, editar e carregar o AWS CloudFormation modelo de amostra

Faça o download do arquivo AWS CloudFormation de modelo de amostra e faça o upload para o seu CodeCommit repositório.

  1. Navegue até a página de modelo de exemplo da sua região. Por exemplo, a página para us-west-2 está em https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/sample-templates-services-us-west-2.html. Em Amazon DocumentDB, faça download do modelo para um cluster do Amazon DocumentDB. O nome do arquivo é documentdb_full_stack.yaml.

  2. Descompacte o arquivo documentdb_full_stack.yaml e abra-o em um editor de texto. Faça as alterações a seguir.

    1. Para este exemplo, adicione o parâmetro Purpose: a seguir à seção Parameters no modelo.

      Purpose: Type: String Default: testing AllowedValues: - testing - production Description: The purpose of this instance.
    2. Para este exemplo, adicione a saída StackName a seguir à seção Outputs: no modelo.

      StackName: Value: !Ref AWS::StackName
  3. Faça o upload do arquivo de modelo para o seu AWS CodeCommit repositório. É necessário fazer upload do arquivo de modelo descompactado e editado para o diretório raiz do repositório.

    Para usar o CodeCommit console para carregar seus arquivos:

    1. Abra o CodeCommit console e escolha seu repositório na lista Repositórios.

    2. Selecione Add file (Adicionar arquivo) e clique em Upload file (Carregar arquivo).

    3. Selecione Choose file (Escolher arquivo) e procure o arquivo. Informe seu nome de usuário e endereço de e-mail para confirmar a alteração. Escolha Commit changes (Confirmar alterações).

    Seu arquivo deve ser parecido com isto no nível raiz do repositório:

    documentdb_full_stack.yaml

Etapa 2: Criar o pipeline

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

  • Um estágio de origem com uma CodeCommit ação em que o artefato de origem é seu arquivo de modelo.

  • Um estágio de implantação com uma ação AWS CloudFormation de implantação.

Cada ação nos estágios de origem e implantação criada pelo assistente recebe um namespace variável, SourceVariables e DeployVariables, respectivamente. Como as ações têm um namespace atribuído, as variáveis configuradas neste exemplo estão disponíveis para ações downstream. Para obter mais informações, consulte Referência de variáveis.

Criar um pipeline com o assistente
  1. Faça login no AWS Management Console e abra o CodePipeline console em http://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. Em Step 1: Choose pipeline settings (Etapa 1: selecionar as configurações do pipeline), em Pipeline name (Nome do pipeline), insira MyCFNDeployPipeline.

  4. Em Tipo de pipeline, selecione V1 para os fins deste tutorial. Também é possível selecionar V2; no entanto, observe que os tipos de pipeline diferem em características e preços. Para obter mais informações, consulte Tipos de pipeline.

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

    • Escolha Nova função de serviço para permitir CodePipeline a criação de uma função de serviço emIAM.

    • Escolha Existing service role (Função de serviço existente). Em Role name (Nome da função), selecione a função de serviço na lista.

  6. Em Artifact store (Armazenamento de artefatos):

    1. Selecione Local padrão para usar o armazenamento de artefatos padrão, como o bucket de artefatos do Amazon S3 designado como padrão, para o pipeline na região selecionada para o pipeline.

    2. Selecione Local personalizado se você já tiver um armazenamento de artefatos, como um bucket de artefatos do Amazon S3 na mesma região do pipeline.

    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, você deve ter um bucket de artefatos na região do pipeline e um bucket de artefatos por AWS região em que você está executando uma ação.

    Para ter mais informações, consulte Artefatos de entrada e saída e CodePipeline referência de estrutura de tubulação.

    Escolha Próximo.

  7. Em Etapa 2: Adicionar um estágio de origem:

    1. Em Source provider (Provedor de código-fonte), selecione AWS CodeCommit.

    2. Em Nome do repositório, escolha o nome do CodeCommit repositório que você criou. Etapa 1: criar um CodeCommit repositório

    3. Em Nome do ramo, selecione o nome do ramo que contém a última atualização do código.

    Depois de selecionar o nome do repositório e a filial, a regra Amazon CloudWatch Events a ser criada para esse pipeline é exibida.

    Escolha Próximo.

  8. Em Step 3: Add build stage (Etapa 3: Adicionar estágio de construção), selecione Skip build stage (Pular estágio de compilação) e aceite a mensagem de aviso ao clicar novamente em Skip (Pular).

    Escolha Próximo.

  9. Em Step 4: Add deploy stage (Etapa 4: Adicionar estágio de implantação):

    1. Em Nome da ação, escolha Implantar. Em Deploy provider (Fornecedor de implantação), escolha CloudFormation.

    2. No Modo de ação, escolha Criar ou atualizar uma pilha.

    3. Em Nome da pilha, insira um nome para a pilha. Esse é o nome da pilha que será criada pelo modelo.

    4. Em Nome do arquivo de saída, insira um nome para o arquivo de saída, como outputs. Esse é o nome do arquivo que será criado pela ação após a criação da pilha.

    5. Expanda Advanced. Em Substituições de parâmetros, insira suas substituições de modelo como pares de chave/valor. Por exemplo, este modelo requer as substituições a seguir.

      { "DBClusterName": "MyDBCluster", "DBInstanceName": "MyDBInstance", "MasterUser": "UserName", "MasterPassword": "Password", "DBInstanceClass": "db.r4.large", "Purpose": "testing"}

      Se você não inserir substituições, o modelo criará uma pilha com valores padrão.

    6. Escolha Próximo.

    7. Selecione Criar pipeline. Deixe que o pipeline seja executado. O pipeline de dois estágios está completo e pronto para os estágios adicionais a serem incluídos.

Etapa 3: Adicionar uma ação AWS CloudFormation de implantação para criar o conjunto de alterações

Crie uma próxima ação em seu funil que permitirá AWS CloudFormation criar o conjunto de alterações antes da ação de aprovação manual.

  1. Abra o CodePipeline console em https://console.aws.amazon.com/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 ou continue exibindo o pipeline no modo Editar.

  3. Opte por editar o estágio de implantação.

  4. Adicione uma ação de implantação que criará um conjunto de alterações para a pilha criada na ação anterior. Você deve adicionar essa ação após a ação existente no estágio.

    1. Em Nome da ação, insira Change_Set. Em Provedor de ação, selecione AWS CloudFormation .

    2. Em Artefato de entrada, escolha SourceArtifact.

    3. Em Action mode (Modo de ação), escolha Create or replace a change set (Criar ou substitui um conjunto de alterações).

    4. Em Nome da pilha, insira a sintaxe da variável como mostrado. Esse é o nome da pilha para a qual o conjunto de alterações foi criado, em que o namespace padrão DeployVariables é atribuído à ação.

      #{DeployVariables.StackName}
    5. Em Alterar nome do conjunto, insira o nome do conjunto de alterações.

      my-changeset
    6. Em Substituições de parâmetros, altere o parâmetro Purpose de testing para production.

      { "DBClusterName": "MyDBCluster", "DBInstanceName": "MyDBInstance", "MasterUser": "UserName", "MasterPassword": "Password", "DBInstanceClass": "db.r4.large", "Purpose": "production"}
    7. Escolha Concluído para salvar a ação.

Etapa 4: Adicionar uma ação de aprovação manual

Crie uma ação de aprovação manual no pipeline.

  1. Escolha editar o pipeline ou continue exibindo o pipeline no modo Editar.

  2. Opte por editar o estágio de implantação.

  3. Adicione uma ação de aprovação manual após a ação de implantação que cria o conjunto de alterações. Essa ação permite que você verifique o conjunto de alterações de recursos criado AWS CloudFormation antes que o pipeline execute o conjunto de alterações.

Etapa 5: Adicionar uma ação CloudFormation de implantação para executar o conjunto de alterações

Crie uma próxima ação em seu pipeline que permita AWS CloudFormation executar o conjunto de alterações após a ação de aprovação manual.

  1. Abra o CodePipeline console em https://console.aws.amazon.com/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 ou continue exibindo o pipeline no modo Editar.

  3. Opte por editar o estágio de implantação.

  4. Adicione uma ação de implantação que executará o conjunto de alterações aprovado na ação manual anterior:

    1. Em Nome da ação, insira Execute_Change_Set. Em Provedor de ação, selecione AWS CloudFormation.

    2. Em Artefato de entrada, escolha SourceArtifact.

    3. Em Action mode (Modo de ação), escolha Execute a change set (Executar um conjunto de alterações).

    4. Em Nome da pilha, insira a sintaxe da variável como mostrado. Esse é o nome da pilha para a qual o conjunto de alterações é criado.

      #{DeployVariables.StackName}
    5. Em Nome do conjunto de alterações, insira o nome do conjunto de alterações criado na ação anterior.

      my-changeset
    6. Escolha Concluído para salvar a ação.

    7. Continue a execução do pipeline.

Etapa 6: Adicionar uma ação CloudFormation de implantação para excluir a pilha

Crie uma ação final em seu pipeline que permita AWS CloudFormation obter o nome da pilha da variável no arquivo de saídas e excluir a pilha.

  1. Abra o CodePipeline console em https://console.aws.amazon.com/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.

  3. Opte por editar o estágio de implantação.

  4. Adicione uma ação de implantação que excluirá a pilha:

    1. Em Nome da ação, escolha DeleteStack. Em Deploy provider (Fornecedor de implantação), escolha CloudFormation.

    2. Em Modo de ação, escolha Excluir uma pilha.

    3. Em Nome da pilha, insira a sintaxe da variável como mostrado. Esse é o nome da pilha que será excluída pela ação.

    4. Escolha Concluído para salvar a ação.

    5. Escolha Salvar para salvar o pipeline.

    O pipeline é executado quando ele é salvo.