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.
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-namemy-root-stack-change-set
\ --template-bodyfile://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-namemy-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-namemy-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 procesocreate-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-namemy-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 esREVIEW_IN_PROGRESS
también se eliminarán si se crearon durante la operación decreate-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-namemy-root-stack-change-set