Incorporar pilhas em outras pilhas usando pilhas aninhadas - AWS CloudFormation

Incorporar pilhas em outras pilhas usando pilhas aninhadas

As pilhas aninhadas são criadas como parte de outras pilhas. Crie uma pilha aninhada dentro de outra pilha usando o recurso AWS::CloudFormation::Stack.

À medida que sua infraestrutura cresce, podem surgir padrões comuns em que é possível declarar os mesmos componentes em vários modelos. É possível separar esses componentes comuns e criar modelos dedicados para eles. Depois, use o recuso em seu modelo para fazer referência a outros modelos, criando pilhas aninhadas.

Por exemplo, suponha que você tenha uma configuração de load balancer para a maioria de suas pilhas. Em vez de copiar e colar as mesmas configurações em seus modelos, é possível criar um modelo dedicado para o load balancer. Em seguida, você acabou de usar o recurso para fazer referência a esse modelo de dentro de outros modelos.

As pilhas aninhadas podem conter outras pilhas aninhadas, o que resulta em uma hierarquia de pilhas, como no diagrama a seguir. A pilha raiz é a pilha de nível superior à qual todas as pilhas aninhadas pertencem. Além disso, cada pilha aninhada tem uma pilha pai imediata. Para o primeiro nível de pilhas aninhadas, a pilha raiz também é a pilha pai no diagrama a seguir, por exemplo:

  • Pilha A é a pilha raiz de todas as outras pilhas, aninhadas, na hierarquia.

  • Para a pilha B, a pilha A é a pilha pai e a pilha raiz.

  • Para a pilha D, a pilha C é a pilha pai; e, ao mesmo tempo, para a pilha C, a pilha B é a pilha pai.

As pilhas aninhadas, que são criadas como parte de outra pilha, têm uma pilha pai imediata, e a pilha raiz de nível superior.

Dividir um modelo do CloudFormation

Este exemplo demonstra como pegar um modelo único e grande do CloudFormation e reorganizá-lo em um design mais estruturado e reutilizável usando modelos aninhados. Inicialmente, o modelo “Antes de aninhar pilhas” mostra todos os recursos definidos em um arquivo. Isso pode se tornar confuso e difícil de gerenciar à medida que o número de recursos aumenta. O modelo “Depois de aninhar pilhas” divide os recursos em modelos menores e separados, chamados de pilhas aninhadas. Cada pilha aninhada manipula um conjunto específico de recursos relacionados, tornando a estrutura geral mais organizada e fácil de manter.

Antes de aninhar pilhas

Depois de aninhar pilhas

AWSTemplateFormatVersion: '2010-09-09' Parameters: InstanceType: Type: String Default: 't2.micro' Description: 'The EC2 instance type' Environment: Type: String Default: 'Production' Description: 'The deployment environment' Resources: MyEC2Instance: Type: 'AWS::EC2::Instance' Properties: ImageId: ami-1234567890abcdef0 InstanceType: !Ref InstanceType MyS3Bucket: Type: 'AWS::S3::Bucket'
AWSTemplateFormatVersion: '2010-09-09' Resources: MyFirstNestedStack: Type: 'AWS::CloudFormation::Stack' Properties: TemplateURL: 'https://s3.amazonaws.com/amzn-s3-demo-bucket/first-nested-stack.yaml' Parameters: # Pass parameters to the nested stack if needed InstanceType: 't3.micro' MySecondNestedStack: Type: 'AWS::CloudFormation::Stack' Properties: TemplateURL: 'https://s3.amazonaws.com/amzn-s3-demo-bucket/second-nested-stack.yaml' Parameters: # Pass parameters to the nested stack if needed Environment: 'Testing' DependsOn: MyFirstNestedStack

Executar operações de pilha em pilhas aninhadas

Quando você tem uma pilha que contém pilhas aninhadas, é necessário ter cuidado e manusear as pilhas aninhadas corretamente ao realizar determinadas ações. Algumas operações de pilha, como atualizações de pilha, devem ser iniciadas na pilha raiz em vez de serem realizadas diretamente em pilhas aninhadas. Além disso, às vezes, a presença das pilhas aninhadas pode afetar a forma como as operações na pilha raiz são executadas.

Use os procedimentos a seguir para encontrar a pilha raiz e as pilhas aninhadas.

Para visualizar a pilha raiz de uma pilha aninhada
  1. Faça login no AWS Management Console e abra o console AWS CloudFormation em https://console.aws.amazon.com/cloudformation.

  2. Na página Pilhas, escolha o nome da pilha aninhada da qual deseja exibir a pilha raiz.

    As pilhas aninhadas exibem ANINHADA ao lado do nome da pilha.

  3. Na guia Informações da pilha, na seção Visão geral, selecione o nome da pilha listada como Pilha raiz.

Para visualizar as pilhas aninhadas que pertencem a uma pilha raiz
  1. Escolha o nome da pilha raiz cujas pilhas aninhadas você deseja visualizar e, em seguida, escolha a guia Recursos.

  2. Na coluna Tipo, procure recursos do tipo AWS::CloudFormation::Stack.