Conjuntos de cambios para pilas anidadas - AWS CloudFormation

Conjuntos de cambios para pilas anidadas

Con los conjuntos de cambios para pilas anidadas , puede previsualizar los cambios en los recursos de la aplicación y la infraestructura en toda la jerarquía de pilas anidadas y continuar con las actualizaciones cuando haya confirmado que todos los cambios son los previstos.

Consulte las siguientes secciones para obtener más detalles sobre los conjuntos de cambios para pilas anidadas:

Información general de conjuntos de cambios y pilas anidadas

Los conjuntos de cambios para pilas anidadas combinan las siguientes características para ampliar el alcance de la vista previa de los cambios a toda la jerarquía de pila:

  • Conjuntos de cambios es una capacidad CloudFormation que ofrece una vista previa de cómo los cambios propuestos en una pila afectarán a los recursos existentes o recién creados. Al crear un conjunto de cambios, CloudFormation proporciona una lista de cambios propuestos comparando la pila con los cambios realizados en los recursos enviados. Para obtener más información acerca de conjuntos de cambios, consulte Actualización de pilas mediante conjuntos de cambios.

  • Las pilas anidadas son pilas creadas como parte de otras pilas. Para crear una pila anidada, especifique el recurso AWS::CloudFormation::Stack en la sección Resource de la plantilla. Por ejemplo, podría tener recursos relacionados con la red y la seguridad en una pila anidada y recursos de aplicaciones en otra. Particionar los modelos de aplicaciones de esta manera ayuda con el mantenimiento y la reutilización del código. Para obtener más información acerca de las pilas anidadas, vea Trabajar con pilas anidadas.

Trabajar con conjuntos de cambios para pilas anidadas (consola)

  • Crear un conjunto de cambios – Cree un juego de cambios enviando cambios desde cualquier nivel de la jerarquía de pila. Puede enviar una plantilla de pila modificada o valores de parámetros de entrada modificados y CloudFormation comparará la pila anidada con los cambios enviados para generar un conjunto de cambios. Los conjuntos de cambios para pilas anidadas están habilitados de forma predeterminada en la consola CloudFormation. Para obtener más información, consulte Creación de un conjunto de cambios.

    La creación de un conjunto de cambios para pilas anidadas está configurada como Enabled (Habilitada) de forma predeterminada.
    nota

    Un conjunto de cambios raíz es el conjunto de cambios asociado a la pila a partir de la que se crea toda la jerarquía de conjuntos de cambios. Debe ejecutar o eliminar conjuntos de cambios para pilas anidadas desde el conjunto de cambios raíz.

  • Ver el conjunto de cambios – Visualice los cambios en los recursos dentro de pilas anidadas antes de ejecutarlos. Puede ver los cambios propuestos en la sección Cambios del conjunto de cambios navegando por la pila actual y sus conjuntos de cambios anidados. Para obtener más información, consulte Visualización de un conjunto de cambios.

  • Ejecutar el conjunto de cambios – Ejecute los cambios descritos en el conjunto de cambios que pertenecen a la pila actual y sus descendientes. La operación de ejecución debe llevarse a cabo desde el conjunto de cambios raíz. Para obtener más información, vea Ejecutar un conjunto de cambios.

  • Eliminar el conjunto de cambios – Elimina los conjuntos de cambios de la pila actual. La eliminación de un conjunto de cambios ayuda a evitar que usted u otro usuario inicien accidentalmente un conjunto de cambios que no debe aplicarse. La operación de eliminación debe hacerse desde el conjunto de cambios raíz. Para obtener más información, consulte Eliminación de un conjunto de cambios.

Trabajar con conjuntos de cambios para pilas anidadas (AWS CLI)

  • create-change-set: los conjuntos de cambios para las pilas anidadas no están habilitados de forma predeterminada para AWS CLI. Para crear un conjunto de cambios para toda la jerarquía de pila, especifique el parámetro--include-nested-stacks. Para obtener más información, consulte Creación de un conjunto de cambios (AWS CLI).

El siguiente ejemplo AWS CLI es de una entrada create-change-set.

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

El siguiente ejemplo AWS CLI es de una salida create-change-set.

{ "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 – Devuelve una lista de cambios que CloudFormation realizará si ejecuta el conjunto de cambios. Si el conjunto de cambios especificado contiene conjuntos de cambios secundarios que pertenecen a pilas anidadas, ChangeSetId devolverá información sobre ese conjunto de cambios. Para obtener más información, consulte Ver un conjunto de cambios (AWS CLI).

El siguiente ejemplo AWS CLI es de una entrada describe-change-set para el conjunto de cambios de pila raíz.

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

El siguiente ejemplo AWS CLI es de una salida describe-change-set para el conjunto de cambios de pila raíz.

{ "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 }

El siguiente ejemplo AWS CLI es de una entrada describe-change-set para el conjunto de cambios de pila anidada.

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

El siguiente ejemplo AWS CLI es de una salida describe-change-set para el conjunto de cambios de pila anidada.

{ "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 – Crea o actualiza una pila con la información de entrada que se proporcionó cuando se creó el conjunto de cambios especificado. Para crear un conjunto de cambios para toda la jerarquía de pila, debe especificar el parámetro –include-nested-stacks durante el proceso create-change-set. Para obtener más información, consulte Ejecución de un conjunto de cambios (AWS CLI).

    nota

    execute-change-set debe ejecutarse desde el conjunto de cambios raíz y aplicará el conjunto de cambios a toda la jerarquía de pilas.

El siguiente ejemplo AWS CLI es de una entradaexecute-change-set.

aws cloudformation execute-change-set \ --stack-name my-root-stack \ --change-set-name my-root-stack-change-set
  • delete-change-set – Elimina el conjunto de cambios especificado. La eliminación de conjuntos de cambios garantiza que nadie ejecutará el conjunto de cambios equivocado. La eliminación de conjuntos de cambios es asincrónica para los conjuntos de cambios creados con el parámetro –include-nested-stacks. Para obtener más información, consulte Eliminación de un conjunto de cambios (AWS CLI).

    nota

    delete-change-set debe ejecutarse desde el conjunto de cambios raíz y eliminará toda la jerarquía de conjuntos de cambios. Las pilas anidadas cuyo estado es REVIEW_IN_PROGRESS también se eliminarán si se crearon durante la operación de create-change-set.

El siguiente ejemplo AWS CLI es de una entrada delete-change-set en el conjunto de cambios raíz.

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