Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Esecuzione del rilevamento delle deviazioni in uno StackSet CloudFormation
Anche quando gestisci gli stack e le risorse da essi contenute tramite CloudFormation, gli utenti possono modificare tali risorse al di fuori di CloudFormation. Gli utenti possono modificare le risorse direttamente utilizzando il servizio sottostante che ha creato la risorsa. Eseguendo il rilevamento delle deviazioni su uno StackSet, puoi determinare se una qualsiasi delle istanze dello stack appartenenti a quello StackSet differiscono, o sono state deviate, dalla configurazione prevista.
Argomenti
In che modo CloudFormation esegue il rilevamento delle deviazioni in uno StackSet
Quando CloudFormation esegue il rilevamento delle deviazioni su uno StackSet, esegue il rilevamento delle deviazioni nello stack associato a ciascuna istanza dello stack nello StackSet. A tale scopo, CloudFormation confronta lo stato corrente di ogni risorsa nello stack con lo stato previsto di tale risorsa, come definito nel modello dello stack e qualsiasi parametro di input specificato. Se lo stato corrente di una risorsa varia dallo stato previsto, tale risorsa viene considerata deviata. Se una o più risorse in uno stack sono deviate, lo stack stesso è considerato deviato e anche le istanze dello stack a cui lo stack è associato vengono considerate deviate. Se una o più istanze di stack in uno StackSet sono state deviate, lo StackSet stesso è considerato deviato.
Il rilevamento della deviazione identifica le modifiche non gestite, ovvero le modifiche apportate agli stack al di fuori di CloudFormation. Le modifiche apportate direttamente tramite CloudFormation a uno stack, piuttosto che a livello di StackSet, non sono considerate deviate. Ad esempio, supponiamo di avere uno stack associato a un’istanza di stack di uno StackSet. Se utilizzi CloudFormation per aggiornare lo stack per utilizzare un modello diverso, questo non è considerato deviato, anche se tale stack ora ha un modello diverso da qualsiasi altro stack appartenente allo StackSet. Questo perché lo stack corrisponde ancora al modello previsto e alla configurazione dei parametri in CloudFormation.
Per informazioni dettagliate su come CloudFormation esegue il rilevamento della deriva in uno stack, consulta Rileva le modifiche non gestite della configurazione di stack e risorse con il rilevamento della deviazione.
Poiché CloudFormation esegue il rilevamento della deriva su ogni stack singolarmente, prende in considerazione qualsiasi valore di parametro sottoposto a override quando si determina se uno stack è stato deviato. Per ulteriori informazioni sull'override dei parametri del modello nelle istanze dello stack, consulta Sovrascrivi i valori dei parametri sugli stack all’interno dello StackSet di CloudFormation.
Se si esegue il rilevamento della deviazione direttamente in uno stack associato a un'istanza dello stack, tali risultati della deviazione non sono disponibili dalla pagina della console StackSets.
Rileva le deviazioni su uno StackSet (console)
Per rilevare le deviazioni su uno StackSet
Apri la console di CloudFormation all'indirizzo https://console.aws.amazon.com/cloudformation
. -
Nella pagina StackSet, seleziona lo StackSet in cui desideri eseguire il rilevamento delle deviazioni.
-
Dal menu Actions (Operazioni), selezionare Detect drifts (Rileva deviazioni).
CloudFormation mostra una barra di informazioni indicante che è stato iniziato il rilevamento delle deviazioni per lo StackSet selezionato.
-
Facoltativo: per monitorare lo stato di avanzamento dell'operazione di rilevamento della deviazione:
-
Fai clic sul nome dello StackSet per visualizzare la pagina Dettagli di StackSet.
-
Selezionare la scheda Operations (Operazioni), selezionare l'operazione di rilevamento della deviazione e quindi selezionare View drift details (Visualizza dettagli deviazione).
CloudFormation visualizza la finestra di dialogo Operation details (Dettagli operazione).
-
-
Attendere fino a che CloudFormation completa l'operazione di rilevamento della deviazione. Al termine dell’operazione di rilevamento delle deviazioni, CloudFormation aggiorna Stato della deviazione e Ora ultimo controllo della deviazione per lo StackSet. Questi campi sono elencati nella scheda Panoramica della pagina Dettagli di StackSet per lo StackSet selezionato.
L’operazione di rilevamento delle deviazioni potrebbe richiedere del tempo, a seconda del numero di istanze dello stack incluse nello StackSet e del numero di risorse incluse nello StackSet. Puoi eseguire solo una singola operazione di rilevamento delle deviazioni alla volta in un determinato StackSet. CloudFormation continua l'operazione di rilevamento della deviazione anche dopo aver dismesso la barra delle informazioni.
-
Per esaminare i risultati del rilevamento delle deviazioni per le istanze dello stack in uno StackSet, seleziona la scheda Istanze stack.
La colonna Stack name (Nome stack) elenca il nome dello stack associato a ogni istanza dello stack e la colonna di Drift status (Stato deviazione) elenca lo stato della deviazione di tale stack. Uno stack è considerato come deviato se una o più delle relative risorse risultano deviate.
-
Per esaminare i risultati del rilevamento della deviazione per lo stack associato a un'istanza dello stack specifica:
-
Scegli la scheda Operazioni.
-
Seleziona l'operazione di deviazione per la quale desideri visualizzare i risultati del rilevamento della deviazione. Un pannello di suddivisione mostrerà lo stato e il motivo dell'istanza dello stack per l'operazione selezionata. Per un'operazione di deviazione, la colonna del motivo dello stato mostra lo stato di deviazione di un'istanza stack.
-
Scegli l'istanza dello stack per cui desideri visualizzare i dettagli della deviazione, quindi seleziona Visualizza deviazioni delle risorse. Nella tabella Stato deviazione risorsasulla pagina Deviazione delle risorse elenca ogni risorsa di stack, il relativo stato di deviazione e l'ultima volta in cui è stato iniziato il rilevamento sulla risorsa. L'ID logico e l'ID fisico di ogni risorsa sono visualizzati per consentirti di identificarla.
-
-
È possibile ordinare le risorse in base al loro stato deviazione, utilizzando la colonna Drift (Deviazione).
Per visualizzare i dettagli su una risorsa modificata:
-
Con la risorsa selezionata, scegli Visualizza dettagli deviazione.
CloudFormation visualizza la pagina dei dettagli della deviazione per quella determinata risorsa. Questa pagina elenca le differenze tra le risorse. Elenca anche i valori delle proprietà previsti e correnti della risorsa.
Nota
Se lo stack appartiene a una Regione e a un account diversi da quelli a cui sei attualmente connesso, il pulsante Rileva deviazione sarà disabilitato e non potrai visualizzare i dettagli.
-
Rileva le deviazioni su uno StackSet (AWS CLI)
Per rilevare la deviazione su un intero stack mediante la AWS CLI, utilizza la seguente procedura:
Per rilevare le deviazioni su uno StackSet
-
Utilizza il comando detect-stack-set-drift per rilevare la deviazione su un intero StackSet e le relative istanze di stack associate.
Nell’esempio seguente viene avviato il rilevamento della deviazione nello StackSet
stack-set-drift-example.aws cloudformation detect-stack-set-drift \ --stack-set-namestack-set-drift-exampleOutput:
{ "OperationId": "c36e44aa-3a83-411a-b503-cb611example" } -
Poiché le operazioni di rilevamento delle deviazioni dello StackSet possono durare a lungo, utilizza il comando describe-stack-set-operation per monitorare lo stato dell’operazione di deviazione. Questo comando utilizza l’ID dell’operazione delle deviazioni dello StackSet restituito dal comando detect-stack-set-drift.
Negli esempi seguenti viene utilizzato l’ID operazione dell’esempio precedente per restituire informazioni sull’operazione di rilevamento delle deviazioni dello StackSet. In questo esempio, l'operazione è ancora in esecuzione. Delle sette istanze dello stack associate a questo StackSet, un’istanza dello stack è già stata trovata deviata, due istanze sono sincronizzate e il rilevamento delle deviazioni per le restanti quattro istanze dello stack è ancora in corso. Poiché un’istanza è stata spostata, lo stato della deviazione dello StackSet stesso è ora
DRIFTED.aws cloudformation describe-stack-set-operation \ --stack-set-namestack-set-drift-example\ --operation-idc36e44aa-3a83-411a-b503-cb611exampleOutput:
{ "StackSetOperation": { "Status": "RUNNING", "AdministrationRoleARN": "arn:aws:iam::123456789012:role/AWSCloudFormationStackSetAdministrationRole", "OperationPreferences": { "RegionOrder": [] }, "ExecutionRoleName": "AWSCloudFormationStackSetExecutionRole", "StackSetDriftDetectionDetails": { "DriftedStackInstancesCount": 1, "TotalStackInstancesCount": 7, "LastDriftCheckTimestamp": "2019-12-04T20:34:28.543Z", "InSyncStackInstancesCount": 2, "InProgressStackInstancesCount": 4, "DriftStatus": "DRIFTED", "FailedStackInstancesCount": 0 }, "Action": "DETECT_DRIFT", "CreationTimestamp": "2019-12-04T20:33:13.673Z", "StackSetId": "stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22example", "OperationId": "c36e44aa-3a83-411a-b503-cb611example" } }Eseguendo lo stesso comando in un secondo momento, questo esempio mostra le informazioni restituite una volta completata l'operazione di rilevamento della deviazione. Due delle sette istanze di stack totali associate a questo StackSet sono deviate, rendendo lo stato di deviazione dello StackSet stesso
DRIFTED.aws cloudformation describe-stack-set-operation \ --stack-set-namestack-set-drift-example\ --operation-idc36e44aa-3a83-411a-b503-cb611exampleOutput:
{ "StackSetOperation": { "Status": "SUCCEEDED", "AdministrationRoleARN": "arn:aws:iam::123456789012:role/AWSCloudFormationStackSetAdministrationRole", "OperationPreferences": { "RegionOrder": [] } "ExecutionRoleName": "AWSCloudFormationStackSetExecutionRole", "EndTimestamp": "2019-12-04T20:37:32.829Z", "StackSetDriftDetectionDetails": { "DriftedStackInstancesCount": 2, "TotalStackInstancesCount": 7, "LastDriftCheckTimestamp": "2019-12-04T20:36:55.612Z", "InSyncStackInstancesCount": 5, "InProgressStackInstancesCount": 0, "DriftStatus": "DRIFTED", "FailedStackInstancesCount": 0 }, "Action": "DETECT_DRIFT", "CreationTimestamp": "2019-12-04T20:33:13.673Z", "StackSetId": "stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22example", "OperationId": "c36e44aa-3a83-411a-b503-cb611example" } } -
Al termine dell’operazione di rilevamento delle deviazioni dello StackSet, utilizza i comandi describe-stack-set, list-stack-instances, describe-stack-instance e list-stack-instance-resource-drifts per esaminare i risultati.
Il comando describe-stack-set include le stesse informazioni dettagliate sulla deviazione restituite dal comando describe-stack-set-operation.
aws cloudformation describe-stack-set \ --stack-set-namestack-set-drift-exampleOutput:
{ "StackSet": { "Status": "ACTIVE", "Description": "Demonstration of drift detection on stack sets.", "Parameters": [], "Tags": [ { "Value": "Drift detection", "Key": "Feature" } ], "ExecutionRoleName": "AWSCloudFormationStackSetExecutionRole", "Capabilities": [], "AdministrationRoleARN": "arn:aws:iam::123456789012:role/AWSCloudFormationStackSetAdministrationRole", "StackSetDriftDetectionDetails": { "DriftedStackInstancesCount": 2, "TotalStackInstancesCount": 7, "LastDriftCheckTimestamp": "2019-12-04T20:36:55.612Z", "InProgressStackInstancesCount": 0, "DriftStatus": "DRIFTED", "DriftDetectionStatus": "COMPLETED", "InSyncStackInstancesCount": 5, "FailedStackInstancesCount": 0 }, "StackSetARN": "arn:aws:cloudformation:us-east-1:123456789012:stackset/stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22example", "TemplateBody": [details omitted], "StackSetId": "stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22ebexample", "StackSetName": "stack-set-drift-example" } }È possibile utilizzare il comando list-stack-instances per restituire informazioni di riepilogo sulle istanze dello stack associate a uno StackSet, incluso lo stato di deviazione di ogni istanza dello stack.
In questo esempio, l’esecuzione di list-stack-instances sullo StackSet di esempio con il filtro dello stato della deviazione impostato su
DRIFTEDconsente di identificare le due istanze di stack che hanno uno stato di deviazione pari aDRIFTED.aws cloudformation list-stack-instances \ --stack-set-namestack-set-drift-example\ --filtersName=DRIFT_STATUS,Values=DRIFTEDOutput:
{ "Summaries": [ { "StackId": "arn:aws:cloudformation:eu-west-1:123456789012:stack/StackSet-stack-set-drift-example-b0fb6083-60c0-4e39-af15-2f071e0db90c/0e4f0940-16d4-11ea-93d8-0641cexample", "Status": "CURRENT", "Account": "012345678910", "Region": "eu-west-1", "LastDriftCheckTimestamp": "2019-12-04T20:37:32.687Z", "DriftStatus": "DRIFTED", "StackSetId": "stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22eexample", "LastOperationId": "c36e44aa-3a83-411a-b503-cb611example" }, { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/StackSet-stack-set-drift-example-b7fde68e-e541-44c2-b33d-ef2e2988071a/008e6030-16d4-11ea-8090-12f89example", "Status": "CURRENT", "Account": "123456789012", "Region": "us-east-1", "LastDriftCheckTimestamp": "2019-12-04T20:34:28.275Z", "DriftStatus": "DRIFTED", "StackSetId": "stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22eexample", "LastOperationId": "c36e44aa-3a83-411a-b503-cb611example" },[additional stack instances omitted]] }Il comando describe-stack-instance restituisce anche queste informazioni, ma per una singola istanza di stack, come nell’esempio riportato di seguito.
aws cloudformation describe-stack-instance \ --stack-set-namestack-set-drift-example\ --stack-instance-account012345678910--stack-instance-regionus-east-1Output:
{ "StackInstance": { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/StackSet-stack-set-drift-example-b7fde68e-e541-44c2-b33d-ef2e2988071a/008e6030-16d4-11ea-8090-12f89example", "Status": "CURRENT", "Account": "123456789012", "Region": "us-east-1", "ParameterOverrides": [], "DriftStatus": "DRIFTED", "LastDriftCheckTimestamp": "2019-12-04T20:34:28.275Z", "StackSetId": "stack-set-drift-example:bd1f4017-d4f9-432e-a73f-8c22eexample", "LastOperationId": "c36e44aa-3a83-411a-b503-cb611example" } } -
Dopo aver identificato quali istanze dello stack sono state deviate, è possibile utilizzare le informazioni sulle istanze dello stack restituite dai comandi list-stack-instances o describe-stack-instance per eseguire il comando list-stack-instance-resource-drifts. Questo comando restituisce informazioni dettagliate su quali risorse nello stack sono state deviate per una determinata operazione di deviazione.
L'esempio seguente utilizza il parametro
--stack-instance-resource-drift-statusesper richiedere le informazioni sulla deviazione dello stack per le risorse che sono state modificate o eliminate nell'esempio dell'operazione di deviazione precedente. La richiesta restituisce informazioni sulla risorsa che è stata modificata, tra cui dettagli su due proprietà della stessa i cui valori sono stati modificati. Nessuna risorsa è stata eliminata.aws cloudformation list-stack-instance-resource-drifts \ --stack-set-namemy-stack-set-with-resource-drift\ --stack-instance-account123456789012\ --stack-instance-regionus-east-1\ --operation-idc36e44aa-3a83-411a-b503-cb611example\ --stack-instance-resource-drift-statusesMODIFIED DELETEDOutput:
{ "Summaries": [ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/my-stack-set-with-resource-drift/489e5570-df85-11e7-a7d9-50example", "ResourceType": "AWS::SQS::Queue", "Timestamp": "2018-03-26T17:23:34.489Z", "PhysicalResourceId": "https://sqs.us-east-1.amazonaws.com/123456789012/my-stack-with-resource-drift-Queue-494PBHCO76H4", "StackResourceDriftStatus": "MODIFIED", "PropertyDifferences": [ { "PropertyPath": "/DelaySeconds", "ActualValue": "120", "ExpectedValue": "20", "DifferenceType": "NOT_EQUAL" }, { "PropertyPath": "/RedrivePolicy/maxReceiveCount", "ActualValue": "12", "ExpectedValue": "10", "DifferenceType": "NOT_EQUAL" } ], "LogicalResourceId": "Queue" } ] }
Arresto del rilevamento delle deviazioni su uno StackSet
Poiché il rilevamento delle deviazioni in uno StackSet può essere un’operazione a esecuzione prolungata, potrebbero esserci casi in cui desideri interrompere un’operazione di rilevamento delle deviazioni attualmente in esecuzione su uno StackSet.
Per arrestare il rilevamento delle deviazioni su uno StackSet (console)
Apri la console di CloudFormation all'indirizzo https://console.aws.amazon.com/cloudformation
. -
Nella pagina StackSet, seleziona il nome dello StackSet.
CloudFormation visualizza la pagina StackSets details per lo StackSet selezionato.
-
Nella pagina StackSets details (Dettagli StackSet), selezionare la scheda Operations (Operazioni), quindi selezionare l'operazione di rilevamento della deviazione.
-
Selezionare Stop operation (Interrompi operazione).
Per arrestare il rilevamento delle deviazioni su uno StackSet (AWS CLI)
-
Utilizza il comando stop-stack-set-operation. È necessario fornire sia il nome dello StackSet sia l’ID operazione dell’operazione dello StackSet di rilevamento delle deviazioni.
aws cloudformation stop-stack-set-operation \ --stack-set-namestack-set-drift-example\ --operation-id624af370-311a-11e8-b6b7-500cexample