Conjuntos de alteração para pilhas aninhadas - AWS CloudFormation

Conjuntos de alteração para pilhas aninhadas

Com os conjuntos de alterações para pilhas aninhadas, você pode visualizar as alterações nos recursos de suas aplicações e infraestrutura em toda a hierarquia de pilha aninhada, dando continuidade às atualizações após confirmar que todas as alterações estejam conforme pretendido.

Consulte as seguintes seções para obter mais detalhes sobre conjuntos de alterações para pilhas aninhadas:

Visão geral de conjuntos de alterações e pilhas aninhadas

Os conjuntos de alterações para pilhas aninhadas combinam os seguintes recursos para expandir o escopo da visualização de alterações para toda a hierarquia de pilha:

  • Os conjuntos de alterações são um recurso do CloudFormation que oferecem uma visualização de como alterações propostas em uma pilha afetarão recursos existentes ou recém-criados. Ao criar um conjunto de alterações, o CloudFormation fornece uma lista de alterações propostas, fazendo uma comparação entre sua pilha e as alterações nos recursos que você enviou. Para obter mais informações sobre conjuntos de alterações, consulte Atualizar pilhas do CloudFormation usando conjuntos de alterações.

  • As pilhas aninhadas são criadas como parte de outras pilhas. Por exemplo, talvez você tenha recursos relacionados a redes e segurança em uma pilha aninhada e recursos de aplicação em outra. Fazer o particionamento de modelos de aplicação dessa forma ajuda na capacidade de manutenção e reutilização de código. Para saber mais sobre pilhas aninhadas, consulte Incorporar pilhas em outras pilhas usando pilhas aninhadas.

Como trabalhar com conjuntos de alterações para pilhas aninhadas (console)

  • Criar um conjunto de alterações – Cria um conjunto de alterações mediante o envio de alterações com base em qualquer nível da hierarquia de pilha. Você pode enviar um modelo modificado de pilha ou valores modificados de parâmetro de entrada e o CloudFormation compara sua pilha aninhada às alterações que você enviou para gerar um conjunto de alterações. Os conjuntos de alterações para pilhas aninhadas são habilitados por padrão no console do CloudFormation. Para ter mais informações, consulte Criar um conjunto de alterações.

    A opção Criar um conjunto de alterações para pilhas aninhadas está habilitada por padrão.
    nota

    Um conjunto raiz de alterações é o conjunto de alterações associado à pilha com base na qual toda a hierarquia de conjuntos de alterações é criada. Você deve executar ou excluir conjuntos de alterações para pilhas aninhadas com base no conjunto raiz de alterações.

  • Visualizar o conjunto de alterações: visualize as alterações nos recursos dentro de pilhas aninhadas antes de executá-las. Você pode ver as alterações propostas na seção Alterações do seu conjunto de alterações navegando pela pilha atual e pelos respectivos conjuntos de alterações aninhados. Para ter mais informações, consulte Visualizar um conjunto de alterações.

  • Executar o conjunto de alterações – Execute as alterações descritas no conjunto de alterações que pertencem à pilha atual e aos seus descendentes. A operação de execução deve ser feita a partir do conjunto raiz de alterações. Para ter mais informações, consulte Executar um conjunto de alterações.

  • Excluir o conjunto de alterações – Remove os conjuntos de alterações da pilha atual. A exclusão de um conjunto de alterações ajuda a impedir que você ou outro usuário inicie acidentalmente um conjunto de alterações que não deva ser aplicado. A operação de exclusão deve ser executada com base no conjunto raiz de alterações. Para ter mais informações, consulte Excluir um conjunto de alterações.

Como trabalhar com conjuntos de alterações para pilhas aninhadas (AWS CLI)

  • create-change-set: conjuntos de alterações para pilhas aninhadas não são habilitados por padrão para o AWS CLI. Para criar um conjunto de alterações para toda a hierarquia de pilha, especifique a opção --include-nested-stacks. Para ter mais informações, consulte Criar um conjunto de alterações.

O exemplo de AWS CLI a seguir cria um conjunto de alterações para a pilha raiz especificada.

aws cloudformation create-change-set \ --stack-name my-root-stack \ --change-set-name my-root-stack-change-set \ --template-body file://template.yaml \ --capabilities CAPABILITY_IAM \ --include-nested-stacks

O seguinte é um exemplo de saída.

{ "Id":"arn:aws:cloudformation:us-west-2:123456789012:changeSet/my-root-stack-change-set/4eca1a01-e285-xmpl-8026-9a1967bfb4b0", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:Stack/my-root-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204" }
  • describe-change-set – Retorna uma lista de alterações que o CloudFormation fará se você executar o conjunto de alterações. Se o conjunto de alterações especificado contiver conjuntos filhos de alterações que pertençam a pilhas aninhadas, ChangeSetId retornará informações sobre esse conjunto de alterações. Para ter mais informações, consulte Visualizar um conjunto de alterações.

O exemplo de AWS CLI a seguir descreve o conjunto de alterações para a pilha raiz especificada.

aws cloudformation describe-change-set \ --change-set-name my-root-stack-change-set \ --stack-name my-root-stack

O seguinte é um exemplo de saída.

{ "Changes": [ { "Type": "Resource", "ResourceChange": { "Action": "Modify", "LogicalResourceId": "ChildStack", "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-nested-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99205", "ResourceType": "AWS::CloudFormation::Stack", "Replacement": "False", "ChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/my-nested-stack-change-set/4eca1a01-e285-xmpl-8026-9a1967bfb4b0", "Scope": [ "Properties" ], "Details": [ { "Target": { "Attribute": "Properties", "RequiresRecreation": "Never" }, "Evaluation": "Dynamic", "ChangeSource": "Automatic" } ] } } ], "ChangeSetName": "my-root-stack-change-set", "ChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/my-root-stack-change-set/4eca1a01-e285-xmpl-8026-9a1967bfb4b0", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-root-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "StackName": "my-root-stack", "IncludeNestedStacks": true, "ParentChangeSetId": null, "RootChangeSetId": null, "Description": null, "Parameters": null, "CreationTime": "2020-11-18T05:20:56.651Z", "ExecutionStatus": "AVAILABLE", "Status": "CREATE_COMPLETE", "StatusReason": null, "NotificationARNs": [ ], "RollbackConfiguration": { }, "Capabilities": [ "CAPABILITY_IAM" ], "Tags": null }

O exemplo de AWS CLI a seguir descreve o conjunto de alterações para a pilha aninhada especificada.

aws cloudformation describe-change-set \ --change-set-name my-nested-stack-change-set \ --stack-name my-nested-stack

O seguinte é um exemplo de saída.

{ "Changes": [ { "Type": "Resource", "ResourceChange": { "Action": "Modify", "LogicalResourceId": "function", "PhysicalResourceId": "my-function", "ResourceType": "AWS::Lambda::Function", "Replacement": "False", "ChangeSetId": null, "Scope": [ "Properties" ], "Details": [ { "Target": { "Attribute": "Properties", "Name": "Timeout", "RequiresRecreation": "Never" }, "Evaluation": "Static", "ChangeSource": "DirectModification" } ] } } ], "ChangeSetName": "my-nested-stack-change-set", "ChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/my-nested-stack-change-set/4eca1a01-e285-xmpl-8026-9a1967bfb4b0", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-nested-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99205", "ParentChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/my-root-stack-change-set/4eca1a01-e285-xmpl-8026-9a1967bfb4b0", "RootChangeSetId": "arn:aws:cloudformation:us-west-2:123456789012:changeSet/my-root-stack-change-set/4eca1a01-e285-xmpl-8026-9a1967bfb4b0", "IncludeNestedStacks": true, "StackName": "my-nested-stack", "Description": null, "Parameters": null, "CreationTime": "2020-11-18T05:20:56.651Z", "ExecutionStatus": "UNAVAILABLE", "Status": "CREATE_COMPLETE", "StatusReason": "Executable from root change set", "NotificationARNs": [ ], "RollbackConfiguration": { }, "Capabilities": [ "CAPABILITY_IAM" ], "Tags": null }
  • execute-change-set – Cria ou atualiza uma pilha usando as informações de entrada fornecidas quando o conjunto de alterações especificado foi criado. Para criar um conjunto de alterações para toda a hierarquia de pilha, é necessário especificar a opção –-include-nested-stacks durante a operação create-change-set. Para ter mais informações, consulte Executar um conjunto de alterações.

    nota

    execute-change-set deve ser executado com base no conjunto raiz de alterações e aplicará o conjunto de alterações em toda a hierarquia de pilhas.

O exemplo de AWS CLI a seguir executa um conjunto de alterações para a pilha raiz especificada.

aws cloudformation execute-change-set \ --stack-name my-root-stack \ --change-set-name my-root-stack-change-set
  • delete-change-set – Exclui o conjunto de alterações especificado. A exclusão de conjuntos de alterações garante que ninguém use o conjunto de alterações errado. A exclusão de conjuntos de alterações é assíncrona para conjuntos de alterações criados com a opção –-include-nested-stacks. Para ter mais informações, consulte Excluir um conjunto de alterações.

    nota

    delete-change-set deve ser executado com base no conjunto raiz de alterações e excluirá toda a hierarquia de conjuntos de alterações. As pilhas aninhadas com status REVIEW_IN_PROGRESS também serão excluídas se tiverem sido criadas durante a operação create-change-set.

O exemplo de AWS CLI a seguir exclui o conjunto de alterações para a pilha raiz especificada.

aws cloudformation delete-change-set \ --stack-name my-root-stack \ --change-set-name my-root-stack-change-set