

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 com ações AWS CloudFormation StackSets de implantação
<a name="tutorials-stackset-deployment"></a>

Neste tutorial, você usa o AWS CodePipeline console 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 em que o conjunto de pilhas é implantado.

**Importante**  
Como parte da criação de um pipeline, um bucket de artefatos S3 fornecido pelo cliente será usado CodePipeline por for artefacts. (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 seu pipeline, certifique-se de que o bucket de artefatos do S3 Contas da AWS seja de propriedade de quem é seguro e confiável.

Há duas maneiras de gerenciar permissões para um conjunto de pilhas: funções do IAM autogerenciadas e AWS gerenciadas. Este tutorial fornece exemplos de permissões autogerenciadas.

Para usar o Stacksets com mais eficiência CodePipeline, você deve ter uma compreensão clara dos conceitos por trás CloudFormation StackSets e de como eles funcionam. Veja [StackSets os conceitos](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-concepts.html) no *Guia AWS CloudFormation do usuário*.

**Topics**
+ [Pré-requisitos](#tutorials-stackset-deployment-prereq)
+ [Etapa 1: Carregar o AWS CloudFormation modelo de amostra e o arquivo de parâmetros](#tutorials-stackset-deployment-upload)
+ [Etapa 2: Criar o pipeline](#tutorials-stackset-action-pipeline)
+ [Etapa 3: Visualizar a implantação inicial](#tutorials-stackset-action-initial)
+ [Etapa 4: adicionar uma CloudFormationStackInstances ação](#tutorials-stacksets-instances)
+ [Etapa 5: Visualizar os recursos do conjunto de pilhas para a implantação](#tutorials-stacksets-view)
+ [Etapa 6: Fazer uma atualização no conjunto de pilhas](#tutorials-stacksets-update)

## Pré-requisitos
<a name="tutorials-stackset-deployment-prereq"></a>

Para operações de conjunto de pilhas, você vai usar duas contas diferentes: uma conta de administração e uma conta de destino. Você vai criar conjuntos de pilhas na conta de administrador. Na conta de destino, vai criar pilhas individuais pertencentes a um conjunto de pilhas.

**Como criar um perfil de administrador com a conta de administrador**
+ Siga as instruções em [Definir permissões básicas para operações de conjuntos de pilhas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html#stacksets-prereqs-accountsetup). O perfil deve ser nomeado **`AWSCloudFormationStackSetAdministrationRole`**.

**Como criar um perfil de serviço na conta de destino**
+ Crie um perfil de serviço na conta de destino que confie na conta do administrador. Siga as instruções em [Definir permissões básicas para operações de conjuntos de pilhas](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-prereqs-self-managed.html#stacksets-prereqs-accountsetup). O perfil deve ser nomeado **`AWSCloudFormationStackSetExecutionRole`**. 

## Etapa 1: Carregar o AWS CloudFormation modelo de amostra e o arquivo de parâmetros
<a name="tutorials-stackset-deployment-upload"></a>

Crie um bucket de origem para os arquivos de parâmetros e modelos de conjunto de pilhas. Faça o download do arquivo AWS CloudFormation de modelo de amostra, 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**  
Compacte os arquivos de origem antes de fazer upload para o bucket de origem do S3, mesmo que o único arquivo de origem seja o modelo.



**Como criar um bucket de origem do S3**

1. Faça login no Console de gerenciamento da AWS e abra o console do Amazon S3 em. [https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)

1. Selecione **Criar bucket**.

1. Em **Nome do bucket**, insira um nome para o bucket.

   Em **Região**, selecione a região onde você deseja criar o pipeline. Selecione **Criar bucket**.

1. Depois que o bucket é criado, um banner de sucesso é exibido. Escolha **Go to bucket details (Ir para detalhes do bucket)**.

1. Na guia **Properties (Propriedades)** escolha **Versioning (Versionamento)**. Escolha **Enable versioning (Ativar versionamento)** e escolha **Save (Salvar)**.

**Para criar o arquivo AWS CloudFormation de modelo**

1. Baixe o seguinte arquivo de modelo de amostra para gerar a CloudTrail configuração para conjuntos de pilhas:[https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSCloudtrail.yml](https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSCloudtrail.yml).

1. Salve o arquivo como `template.yml`.

**Como criar o arquivo parameters.txt**

1. Crie um arquivo com os parâmetros para a implantação. Os parâmetros são valores que você deseja atualizar na pilha em runtime. O arquivo de exemplo a seguir atualiza os parâmetros do modelo do conjunto de pilhas para permitir a validação do registro em log e eventos globais.

   ```
   [
     {
       "ParameterKey": "EnableLogFileValidation",
       "ParameterValue": "true"
     }, 
     {
       "ParameterKey": "IncludeGlobalEvents",
       "ParameterValue": "true"
     }
   ]
   ```

1. Salve o arquivo como `parameters.txt`.

**Como 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"
   ]
   ```

1. Salve o arquivo como `accounts.txt`.

**Como criar e fazer upload de arquivos de origem**

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

   ```
   template.yml
   parameters.txt
   accounts.txt
   ```

1. Faça upload do arquivo ZIP no bucket do S3. Esse arquivo é o artefato de origem criado pelo assistente **Create Pipeline** para sua ação de implantação em CodePipeline.

## Etapa 2: Criar o pipeline
<a name="tutorials-stackset-action-pipeline"></a>

Nesta seção, você criará um pipeline com as seguintes ações:
+ Estágio de origem com uma ação de origem do S3 em que o artefato de origem é o arquivo de modelo e todos os arquivos de origem de apoio.
+ Um estágio de implantação com uma ação de implantação do conjunto de CloudFormation pilhas que cria o conjunto de pilhas.
+ Um estágio de implantação com uma ação de implantação de instâncias de CloudFormation pilha que cria as pilhas e instâncias nas contas de destino.

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

1. Faça login no Console de gerenciamento da AWS e abra o CodePipeline console em [http://console.aws.amazon. com/codesuite/codepipeline/home](https://console.aws.amazon.com/codesuite/codepipeline/home).

1. Na página **Welcome (Bem-vindo)**, **Getting started (Conceitos básicos)** ou **Pipelines**, selecione **Create pipeline (Criar pipeline)**.

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

1. Em **Etapa 2: Escolher as configurações do pipeline**, em **Nome do pipeline**, insira **MyStackSetsPipeline**.

1. 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](pipeline-types.md).

1. Em **Função de serviço**, escolha **Nova função de serviço** para permitir CodePipeline a criação de uma função de serviço no IAM.

1. No **Armazenamento de artefatos**, deixe os padrões.
**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 obter mais informações, consulte [Artefatos de entrada e saída](welcome-introducing-artifacts.md) e [CodePipeline referência de estrutura de tubulação](reference-pipeline-structure.md).

   Escolha **Próximo**.

1. Na página **Etapa 3: Adicionar etapa de origem**, em **Provedor de origem**, escolha **Amazon S3**.

1. Em **Bucket**, insira o bucket de origem do S3 que você criou para este tutorial, como `BucketName`. Em **Chave de objeto do S3**, insira o caminho e o nome do arquivo ZIP, como `MyFiles.zip`.

1. Escolha **Próximo**.

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

1. Em **Etapa 5: Adicionar etapa de teste**, escolha **Ignorar etapa de teste** e aceite a mensagem de aviso escolhendo **Ignorar** novamente. 

   Escolha **Próximo**.

1. Na **Etapa 6: Adicionar estágio de implantação**:

   1. No **Provedor de implantação**, selecione **Conjunto de pilhas do AWS CloudFormation **.

   1. Em **Nome do conjunto de pilhas**, insira um nome para o conjunto de pilhas. Esse é o nome do conjunto de pilhas que será criado pelo modelo.
**nota**  
Anote o nome do conjunto de pilhas. Você o usará ao adicionar a segunda ação StackSets de implantação ao seu pipeline.

   1. Em **Caminho do modelo**, insira o nome do artefato e o caminho do arquivo onde você fez upload do arquivo de modelo. Por exemplo, insira o comando a seguir usando o nome `SourceArtifact` do artefato de origem padrão.

      ```
      SourceArtifact::template.yml
      ```

   1. Em **Destinos de implantação**, insira o nome do artefato e o caminho do arquivo onde você fez upload do arquivo da conta. Por exemplo, insira o comando a seguir usando o nome `SourceArtifact` do artefato de origem padrão.

      ```
      SourceArtifact::accounts.txt
      ```

   1. Em **Destino de implantação Regiões da AWS**, insira uma região para implantação de sua instância de pilha inicial, como`us-east-1`.

   1. Expanda **Opções de implantação**. Em **Parâmetros**, insira o nome do artefato e o caminho do arquivo onde você fez upload do arquivo de parâmetros. Por exemplo, insira o comando a seguir usando o nome `SourceArtifact` do artefato de origem padrão.

      ```
      SourceArtifact::parameters.txt
      ```

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

      ```
      ParameterKey=EnableLogFileValidation,ParameterValue=true
      ParameterKey=IncludeGlobalEvents,ParameterValue=true
      ```

   1. Em **Recursos**, escolha CAPABILITY\$1IAM e CAPABILITY\$1NAMED\$1IAM.

   1. Em **Modelo de permissão**, selecione SELF\$1MANAGED.

   1. Em **Porcentagem de tolerância a falhas**, insira `20`.

   1. Em **Porcentagem máxima simultânea**, insira `25`.

   1. Escolha **Próximo**.

   1. Em **Etapa 7: Revisar**, escolha **Criar pipeline**. O pipeline é exibido. 

   1. Deixe que o pipeline seja executado. 

## Etapa 3: Visualizar a implantação inicial
<a name="tutorials-stackset-action-initial"></a>

Visualize os recursos e o status da implantação inicial. Depois de verificar se a implantação criou com êxito o conjunto de pilhas, é possível adicionar a segunda ação ao estágio de **implantação**.

**Como visualizar os recursos**

1. Abra o CodePipeline console em [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

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

1. Escolha a CloudFormation ação da **CloudFormationStackSet**ação em seu funil. O modelo, os recursos e os eventos do seu conjunto de pilhas são mostrados no CloudFormation console.

1. No painel de navegação esquerdo, escolha **StackSets**. Na lista, selecione o novo conjunto de pilhas.

1. Escolha a guia **Instâncias de pilha**. Verifique se foi criada uma instância da pilha para cada conta fornecida na região us-east-1. Verifique se o status de cada instância da pilha é `CURRENT`.

## Etapa 4: adicionar uma CloudFormationStackInstances ação
<a name="tutorials-stacksets-instances"></a>

Crie uma próxima ação em seu pipeline que permitirá CloudFormation StackSets criar as instâncias restantes do stack.

**Como criar uma próxima ação no pipeline**

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

1. Escolha editar o pipeline. O pipeline é exibido no modo de **edição**. 

1. No estágio de **implantação**, selecione **Editar**.

1. Na ação de implantação do **Conjunto de pilhas do AWS CloudFormation **, selecione **Adicionar grupo de ações**.

1. Na página **Editar ação**, adicione os detalhes da ação:

   1. Em **Nome da ação**, insira um nome para a ação.

   1. Em **Provedor de ação**, selecione **Instâncias de pilhas do AWS CloudFormation **.

   1. Em **Artefatos de entrada**, escolha **SourceArtifact**.

   1. Em **Nome 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.

   1. Em **Destinos de implantação**, insira o nome do artefato e o caminho do arquivo onde você fez upload do arquivo da conta. Por exemplo, insira o comando a seguir usando o nome `SourceArtifact` do artefato de origem padrão.

      ```
      SourceArtifact::accounts.txt
      ```

   1. Em **Destino de implantação Regiões da AWS**, insira as regiões para implantação de suas instâncias de pilha restantes, da `eu-central-1` seguinte forma: `us-east-2`

      ```
      us-east2, eu-central-1
      ```

   1. Em **Porcentagem de tolerância a falhas**, insira `20`.

   1. Em **Porcentagem máxima simultânea**, insira `25`.

   1. Escolha **Salvar**.

   1. Lance manualmente uma alteração. O pipeline atualizado é exibido com duas ações no estágio de implantação.

## Etapa 5: Visualizar os recursos do conjunto de pilhas para a implantação
<a name="tutorials-stacksets-view"></a>

É possível visualizar os recursos e o status da implantação do conjunto de pilhas.

**Como visualizar os recursos**

1. Abra o CodePipeline console em [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Em **Pipelines**, selecione o pipeline e, depois, **Visualizar**. O diagrama mostra os estágios de implantação e a origem do pipeline.

1. Escolha a CloudFormation ação da **`AWS CloudFormation Stack Instances`**ação em seu funil. O modelo, os recursos e os eventos do seu conjunto de pilhas são mostrados no CloudFormation console.

1. No painel de navegação esquerdo, escolha **StackSets**. Na lista, selecione o conjunto de pilhas.

1. Escolha a guia **Instâncias de pilha**. Verifique se todas as instâncias de pilha restantes de 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: Fazer uma atualização no conjunto de pilhas
<a name="tutorials-stacksets-update"></a>

Faça uma atualização no conjunto de pilhas e implante a atualização nas instâncias. Neste exemplo, você também vai fazer 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 passam para um status desatualizado.

1. Abra o CodePipeline console em [https://console.aws.amazon.com/codepipeline/](https://console.aws.amazon.com/codepipeline/).

1. Em **Pipelines**, selecione o pipeline e, em seguida, escolha **Visualizar**. No estágio de **implantação**, selecione **Editar**.

1. Opte por editar a ação **Conjunto de pilhas do AWS CloudFormation ** no pipeline. Em **Descrição**, substitua a descrição existente do conjunto de pilhas.

1. Opte por editar a ação **Instâncias de pilha do AWS CloudFormation ** no pipeline. Em **Destino de implantação Regiões da AWS**, exclua o `us-east-2` valor que foi inserido quando a ação foi criada.

1. Salve as alterações. Selecione **Lançar alteração** para executar o pipeline.

1. Abra a ação no CloudFormation. Escolha a guia de **StackSet informações**. Na **StackSet descrição**, verifique se a nova descrição é exibida.

1. Escolha a guia **Instâncias de pilha**. Em **Status**, verifique se o status das instâncias de pilhas em us-east-2 é `OUTDATED`.