Set di modifiche per stack nidificati - AWS CloudFormation

Set di modifiche per stack nidificati

Con i set di modifiche per gli stack nidificati è possibile visualizzare in anteprima le modifiche alle risorse dell’applicazione e dell’infrastruttura nell’intera gerarchia dello stack nidificato e procedere con gli aggiornamenti dopo aver confermato che tutte le modifiche sono come previsto.

Per ulteriori dettagli sui set di modifiche per gli stack nidificati, vedere le sezioni seguenti:

Panoramica dei set di modifiche e degli stack nidificati

I set di modifiche per gli stack nidificati uniscono le seguenti funzionalità per espandere l’ambito di visualizzazione in anteprima delle modifiche all’intera gerarchia dello stack:

  • Un set di modifiche è una CloudFormation funzionalità che offre un’anteprima di come le modifiche proposte a uno stack influiranno sulle risorse esistenti o appena create. Al momento della creazione di un set di modifiche, CloudFormation fornisce un elenco di modifiche proposte confrontando lo stack con le modifiche apportate alle risorse inviate. Per ulteriori informazioni sui set di modifiche, consulta Aggiornare gli stack CloudFormation utilizzando i set di modifiche.

  • Uno stack nidificato è uno stack creato come parte di un altro stack. Ad esempio, potresti disporre di risorse correlate alla rete e alla sicurezza in uno stack nidificato e risorse dell’applicazione in un altro. Il partizionamento dei modelli applicativi in questo modo aiuta con la manutenibilità e il riutilizzo del codice. Per ulteriori informazioni sugli stack nidificati, consulta Dividi un modello in pezzi riutilizzabili usando stack nidificati.

Gestione dei set di modifiche per stack nidificati (console)

  • Creare un set di modifiche – Crea un set di modifiche inviando le modifiche da qualsiasi livello della gerarchia dello stack. È possibile inviare un modello di stack modificato o valori di parametro di input modificati e CloudFormation confronta gli stack nidificati con le modifiche inviate per generare un set di modifiche. I set di modifiche per gli stack nidificati sono abilitati per impostazione predefinita nella console CloudFormation. Per ulteriori informazioni, consulta Crea un set di modifiche per uno stack CloudFormation.

    Per impostazione predefinita, la creazione di un set di modifiche per gli stack nidificati è abilitata.
    Nota

    Un set di modifiche root è il set di modifiche associato allo stack da cui viene creata l’intera gerarchia dei set di modifiche. È necessario eseguire o eliminare i set di modifiche per gli stack nidificati dal set di modifiche root. Per ulteriori informazioni, consulta Esecuzione di operazioni di stack su stack nidificati.

  • Visualizza il set di modifiche: visualizza le modifiche alle risorse all’interno degli stack nidificati prima di eseguirle. È possibile visualizzare le modifiche proposte nella sezione Modifiche del set di modifiche esplorando lo stack corrente e i relativi set di modifiche nidificati. Per ulteriori informazioni, consulta Visualizzare un set di modifiche per uno stack CloudFormation.

  • Eseguire il set di modifiche – Eseguire le modifiche descritte nel set di modifiche relativo allo stack corrente e ai relativi discendenti. L’operazione di esecuzione deve essere eseguita dal set di modifiche root. Per ulteriori informazioni, consulta Eseguire un set di modifiche per uno stack CloudFormation.

  • Elimina il set di modifiche – Rimuove i set di modifiche dallo stack corrente. L’eliminazione di un set di modifiche consente di impedire all’utente o a un altro utente di avviare accidentalmente un set di modifiche che non deve essere applicato. L’operazione di eliminazione deve essere eseguita dal set di modifiche root. Per ulteriori informazioni, consulta Eliminare un set di modifiche per uno stack CloudFormation.

Gestione dei set di modifiche per stack nidificati (AWS CLI)

L’esempio seguente di AWS CLI crea un set di modifiche per lo stack root specificato.

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

Di seguito è riportato un output di esempio.

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

L’esempio seguente di AWS CLI descrive il set di modifiche per lo stack root specificato.

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

Di seguito è riportato un output di esempio.

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

L’esempio seguente di AWS CLI descrive il set di modifiche per lo stack nidificato specificato.

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

Di seguito è riportato un output di esempio.

{ "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 aggiorna uno stack utilizzando le informazioni fornite in input al momento della creazione del set di modifiche specificato. Per creare un set di modifiche per l’intera gerarchia di stack, specifica l’opzione –-include-nested-stacks durante l’operazione create-change-set. Per ulteriori informazioni, consulta Eseguire un set di modifiche per uno stack CloudFormation.

    Nota

    execute-change-set deve essere eseguito dal set di modifiche root e applicherà il set di modifiche all’intera gerarchia di stack.

L’esempio seguente di AWS CLI esegue un set di modifiche per lo stack root specificato.

aws cloudformation execute-change-set \ --stack-name my-root-stack \ --change-set-name my-root-stack-change-set
  • delete-change-set – Elimina il set di modifiche specificato. L’eliminazione dei set di modifiche garantisce che nessuno esegua il set di modifiche errato. L’eliminazione dei set di modifiche è asincrona per i set di modifiche creati con l’opzione –-include-nested-stacks. Per ulteriori informazioni, consulta Eliminare un set di modifiche per uno stack CloudFormation.

    Nota

    delete-change-set deve essere eseguito dal set di modifiche root ed eliminerà l’intera gerarchia dei set di modifiche. Anche gli stack nidificati nello stato REVIEW_IN_PROGRESS verranno eliminati se sono stati creati durante l’operazione create-change-set.

L’esempio seguente della AWS CLI elimina il set di modifiche per lo stack root specificato.

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