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 de ações de implantação do AWS CloudFormation
Neste tutorial, o console do AWS CodePipeline será usado 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. Saídas geradas pelo modelo de pilha são as variáveis geradas pela ação do AWS CloudFormation no 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, um conjunto de alterações é criado com base na variável StackName produzida pela ação do AWS CloudFormation. 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 do S3 fornecido pelo cliente será usado pelo CodePipeline para artefatos. (Este bucket não é o mesmo utilizado para uma ação de origem do S3.) Se o bucket de artefatos do S3 estiver em uma conta diferente da conta do pipeline, garanta que o bucket de artefatos do S3 seja de propriedade de Contas da AWS seguras e confiáveis.
Tópicos
Pré-requisitos: criar um perfil de serviço do AWS CloudFormation e um repositório do CodeCommit
Etapa 1: Fazer download, editar e fazer upload do modelo de exemplo do AWS CloudFormation
Etapa 3: Adicionar uma ação de implantação do CloudFormation para criar o conjunto de alterações
Etapa 5: Adicionar uma ação de implantação do CloudFormation para executar o conjunto de alterações
Etapa 6: Adicionar uma ação de implantação do CloudFormation para excluir a pilha
Pré-requisitos: criar um perfil de serviço do AWS CloudFormation e um repositório do CodeCommit
Você já deve ter o seguinte:
-
Um repositório do CodeCommit. Você pode usar o repositório do AWS CodeCommit que você criou em Tutorial: Criar um pipeline simples (repositório do CodeCommit).
-
Neste exemplo é criada uma pilha do Amazon DocumentDB a partir de um modelo. É necessário usar o AWS Identity and Access Management (IAM) para criar um perfil de serviço do AWS CloudFormation com as permissões a seguir para o Amazon DocumentDB.
"rds:DescribeDBClusters", "rds:CreateDBCluster", "rds:DeleteDBCluster", "rds:CreateDBInstance"
Etapa 1: Fazer download, editar e fazer upload do modelo de exemplo do AWS CloudFormation
Faça download do arquivo de modelo de exemplo do AWS CloudFormation e faça upload para o repositório do CodeCommit.
-
Navegue até o modelo de amostra da região. Por exemplo, use a tabela em https://docs.aws.amazon.com/documentdb/latest/developerguide/quick_start_cfn.html#quick_start_cfn-launch_stack para escolher a região e baixar o modelo. Baixe o modelo de um cluster do Amazon DocumentDB. O nome do arquivo é
documentdb_full_stack.yaml. -
Descompacte o arquivo
documentdb_full_stack.yamle abra-o em um editor de texto. Faça as alterações a seguir.-
Para este exemplo, adicione o parâmetro
Purpose:a seguir à seçãoParametersno modelo.Purpose: Type: String Default: testing AllowedValues: - testing - production Description: The purpose of this instance. -
Para este exemplo, adicione a saída
StackNamea seguir à seçãoOutputs:no modelo.StackName: Value: !Ref AWS::StackName
-
-
Faça upload do arquivo de modelo para o repositório do AWS CodeCommit. É necessário fazer upload do arquivo de modelo descompactado e editado para o diretório raiz do repositório.
Para usar o console do CodeCommit para fazer upload dos arquivos:
-
Abra o console do CodeCommit e selecione o repositório na lista Repositórios.
-
Selecione Add file (Adicionar arquivo) e clique em Upload file (Carregar arquivo).
-
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 ação do CodeCommit em que o artefato de origem é o arquivo de modelo.
-
Um estágio de implantação com uma ação de implantação do CloudFormation.
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
Faça login no Console de gerenciamento da AWS e abra o console do CodePipeline em http://console.aws.amazon.com/codesuite/codepipeline/home
. -
Na página Welcome (Bem-vindo), Getting started (Conceitos básicos) ou Pipelines, selecione Create pipeline (Criar pipeline).
-
Na página Etapa 1: Escolher opção de criação, em Opções de criação, selecione a opção Criar pipeline personalizado. Escolha Próximo.
-
Em Etapa 2: Escolher as configurações do pipeline, em Nome do pipeline, insira
MyCFNDeployPipeline. -
O CodePipeline disponibiliza pipelines dos tipos V1 e V2, que apresentam características e custos diferentes. O tipo V2 é o único tipo que você pode escolher no console. Para ter mais informações, consulte Pipeline types. Para obter informações sobre preços do CodePipeline, consulte Preços
. -
Em Perfil de serviço, faça um dos seguintes procedimentos:
-
Selecione Novo perfil de serviço para permitir que o CodePipeline crie um perfil de serviço no IAM.
-
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.
-
-
Em Artifact store (Armazenamento de artefatos):
-
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.
-
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, é necessário ter um bucket de artefatos na região do pipeline e um bucket de artefatos por região da AWS na qual você está executando uma ação.
Para obter mais informações, consulte Artefatos de entrada e saída e CodePipeline referência de estrutura de tubulação.
Escolha Próximo.
-
-
Em Etapa 3: Adicionar um estágio de origem:
-
Em Source provider (Provedor de código-fonte), selecione AWS CodeCommit.
-
Em Nome do repositório, escolha o nome do repositório do CodeCommit criado em Etapa 1: criar um CodeCommit repositório.
-
Em Nome do ramo, selecione o nome do ramo que contém a última atualização do código.
Assim que selecionar o nome do repositório e a ramificação, a regra do Amazon CloudWatch Events a ser criada para esse pipeline será exibida.
Escolha Próximo.
-
-
Em Etapa 4: Adicionar etapa de compilação, escolha Ignorar etapa de compilação e aceite a mensagem de aviso escolhendo Ignorar novamente.
Escolha Próximo.
-
Em Etapa 5: Adicionar etapa de teste, escolha Ignorar etapa de teste e aceite a mensagem de aviso escolhendo Ignorar novamente.
Escolha Próximo.
-
Em Etapa 6: Adicionar etapa de implantação:
-
Em Nome da ação, escolha Implantar. Em Provedor da implantação, escolha CloudFormation.
-
No Modo de ação, escolha Criar ou atualizar uma pilha.
-
Em Nome da pilha, insira um nome para a pilha. Esse é o nome da pilha que será criada pelo modelo.
-
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. -
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.
-
Escolha Próximo.
-
Em Etapa 7: revisar, escolha Criar pipeline. Você deve ver um diagrama que mostra os estágios do 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 de implantação do CloudFormation para criar o conjunto de alterações
Crie uma próxima ação no pipeline que permitirá ao CloudFormation criar o conjunto de alterações antes da ação de aprovação manual.
-
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.
-
Escolha editar o pipeline ou continue exibindo o pipeline no modo Editar.
-
Opte por editar o estágio de implantação.
-
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.
-
Em Nome da ação, insira Change_Set. Em Provedor de ação, selecione AWS CloudFormation .
-
Em Artefato de entrada, escolha SourceArtifact.
-
Em Action mode (Modo de ação), escolha Create or replace a change set (Criar ou substitui um conjunto de alterações).
-
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} -
Em Alterar nome do conjunto, insira o nome do conjunto de alterações.
my-changeset -
Em Substituições de parâmetros, altere o parâmetro
Purposedetestingparaproduction.{ "DBClusterName": "MyDBCluster", "DBInstanceName": "MyDBInstance", "MasterUser": "UserName", "MasterPassword": "Password", "DBInstanceClass": "db.r4.large", "Purpose": "production"} -
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.
-
Escolha editar o pipeline ou continue exibindo o pipeline no modo Editar.
-
Opte por editar o estágio de implantação.
-
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 verificar o conjunto de alterações de recurso criado no CloudFormation antes que o pipeline execute o conjunto de alterações.
Etapa 5: Adicionar uma ação de implantação do CloudFormation para executar o conjunto de alterações
Crie uma próxima ação no pipeline que permita ao CloudFormation executar o conjunto de alterações após a ação de aprovação manual.
-
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.
-
Escolha editar o pipeline ou continue exibindo o pipeline no modo Editar.
-
Opte por editar o estágio de implantação.
-
Adicione uma ação de implantação que executará o conjunto de alterações aprovado na ação manual anterior:
-
Em Nome da ação, insira Execute_Change_Set. Em Provedor de ação, selecione AWS CloudFormation.
-
Em Artefato de entrada, escolha SourceArtifact.
-
Em Action mode (Modo de ação), escolha Execute a change set (Executar um conjunto de alterações).
-
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} -
Em Nome do conjunto de alterações, insira o nome do conjunto de alterações criado na ação anterior.
my-changeset -
Escolha Concluído para salvar a ação.
-
Continue a execução do pipeline.
-
Etapa 6: Adicionar uma ação de implantação do CloudFormation para excluir a pilha
Crie uma ação final no pipeline que permita ao CloudFormation obter o nome da pilha da variável no arquivo de saídas e excluir a pilha.
-
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.
-
Escolha editar o pipeline.
-
Opte por editar o estágio de implantação.
-
Adicione uma ação de implantação que excluirá a pilha:
-
Em Nome da ação, escolha DeleteStack. Em Provedor da implantação, escolha CloudFormation.
-
Em Modo de ação, escolha Excluir uma pilha.
-
Em Nome da pilha, insira a sintaxe da variável como mostrado. Esse é o nome da pilha que será excluída pela ação.
-
Escolha Concluído para salvar a ação.
-
Escolha Salvar para salvar o pipeline.
O pipeline é executado quando ele é salvo.
-