Ao usar o AWS re:Post, você concorda com os AWS re:Post Termos de uso

Como excluo uma pilha do AWS CloudFormation sem excluir todos os recursos?

4 minuto de leitura
0

Quero excluir pilhas novas e pilhas já existentes do AWS CloudFormation, mas não quero excluir todos os recursos das pilhas.

Resumo

Para manter alguns recursos ao excluir uma pilha, insira o atributo DeletionPolicy no modelo do CloudFormation.

Antes de excluir a pilha, defina Reter, Captura de tela ou Excluir como política para cada recurso que você quiser manter:

  • Reter mantém o recurso caso a pilha seja excluída.
  • Captura de tela cria uma captura de tela do recurso antes de sua exclusão.
    Observação: só é possível usar essa política em recursos compatíveis com capturas de tela.
  • Excluir exclui o recurso junto com a pilha.
    Observação: a exclusão do recurso é o padrão caso você não defina uma DeletionPolicy.

Resolução

As etapas a seguir mostram como definir a política Reter no atributo DeletionPolicy para que os recursos não sejam excluídos juntos com a pilha do CloudFormation.

Especificar o atributo DeletionPolicy e seu valor no modelo do AWS CloudFormation

No modelo do CloudFormation, insira Reter como valor de DeletionPolicy nos recursos que você quiser manter. Nos seguintes exemplos em JSON e YAML, a política Reter foi definida para os recursos de AWS::EC2::SecurityGroup no modelo.

JSON:

{
  "Description": "AWS CloudFormation DeletionPolicy demo",
  "Resources": {
    "SGroup1": {
      "Type": "AWS::EC2::SecurityGroup",
      "DeletionPolicy": "Retain",
      "Properties": {
        "GroupDescription": "EC2 Instance access"
      }
    },
    "SGroup2": {
      "Type": "AWS::EC2::SecurityGroup",
      "DeletionPolicy": "Retain",
      "Properties": {
        "GroupDescription": "EC2 Instance access"
      }
    },
    "SGroup1Ingress": {
      "Type": "AWS::EC2::SecurityGroupIngress",
      "DeletionPolicy": "Retain",
      "Properties": {
        "GroupName": {
          "Ref": "SGroup1"
        },
        "IpProtocol": "tcp",
        "ToPort": "80",
        "FromPort": "80",
        "CidrIp": "0.0.0.0/0"
      }
    },
    "SGroup2Ingress": {
      "Type": "AWS::EC2::SecurityGroupIngress",
      "DeletionPolicy": "Retain",
      "Properties": {
        "GroupName": {
          "Ref": "SGroup2"
        },
        "IpProtocol": "tcp",
        "ToPort": "80",
        "FromPort": "80",
        "CidrIp": "0.0.0.0/0"
      }
    }
  }
}

YAML:

Description: AWS CloudFormation DeletionPolicy demo
Resources:
  SGroup1:
    Type: 'AWS::EC2::SecurityGroup'
    DeletionPolicy: Retain
    Properties:
      GroupDescription: EC2 Instance access
  SGroup2:
    Type: 'AWS::EC2::SecurityGroup'
    DeletionPolicy: Retain
    Properties:
      GroupDescription: EC2 Instance access
  SGroup1Ingress:
    Type: 'AWS::EC2::SecurityGroupIngress'
    DeletionPolicy: Retain
    Properties:
      GroupName: !Ref SGroup1
      IpProtocol: tcp
      ToPort: '80'
      FromPort: '80'
      CidrIp: 0.0.0.0/0
  SGroup2Ingress:
    Type: 'AWS::EC2::SecurityGroupIngress'
    DeletionPolicy: Retain
    Properties:
      GroupName: !Ref SGroup2
      IpProtocol: tcp
      ToPort: '80'
      FromPort: '80'
      CidrIp: 0.0.0.0/0

Fazer upload do modelo atualizado no CloudFormation

  1. Abra o console do AWS CloudFormation.
  2. Se deseja usar o modelo em uma nova pilha, escolha Criar pilha. Se deseja usá‑lo em uma pilha já existente, selecione a pilha e escolha Atualizar pilha.
  3. Em Escolher um modelo, selecione Fazer upload de um modelo no Amazon S3. Em seguida, escolha o modelo do CloudFormation que você atualizou inserindo as políticas de exclusão.
  4. Escolha Avançar.
  5. Se estiver criando uma pilha, dê um nome a ela em Nome da pilha. Depois, escolha Avançar.
  6. Na página Opções, selecione as opções que forem pertinentes à pilha. Em seguida, escolha Avançar.
  7. Escolha Criar.

Testar a política do DeletionPolicy

  1. Exclua a pilha do AWS CloudFormation.
  2. Confira se os recursos para os quais você definiu o atributo DeletionPolicy com a política Reter ainda existem depois que a exclusão da pilha for concluída. É possível conferir os recursos em seus respectivos serviços usando o Console de Gerenciamento da AWS ou a AWS CLI.

Por exemplo, você pode conferir se a política Reter dos modelos anteriores funcionou. Conclua as etapas a seguir após excluir a pilha do CloudFormation se quiser verificar.

  1. Abra o console do Amazon EC2.
  2. Escolha Grupos de segurança na seção Rede e segurança do painel de navegação.
  3. Confira se os grupos de segurança com a política Reter anexada continuam disponíveis.

Informações relacionadas

Criar uma pilha no console do AWS CloudFormation

Como evito que os recursos na minha pilha do CloudFormation sejam excluídos ou atualizados?

AWS OFICIAL
AWS OFICIALAtualizada há 3 anos