Esecuzione del rilevamento della deriva su CloudFormation StackSets - AWS CloudFormation

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 della deriva su CloudFormation StackSets

Anche se gestisci gli stack e le risorse in essi contenute 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 della deriva su a StackSet, è possibile determinare se alcune delle istanze dello stack appartenenti allo stack StackSet differiscono, o si sono discostate, dalla configurazione prevista.

Come esegue il rilevamento della deriva su CloudFormation un StackSet

Quando CloudFormation esegue il rilevamento della deriva su un StackSet, esegue il rilevamento della deriva sullo stack associato a ciascuna istanza dello stack in. 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 dello stack in uno sono andate alla deriva, si considera che la stessa istanza StackSet abbia subito una deriva. StackSet

Il rilevamento delle deviazioni identifica le modifiche non gestite, ovvero le modifiche apportate agli stack esterni a. CloudFormation Le modifiche apportate direttamente CloudFormation a uno stack, anziché a StackSet livello locale, non sono considerate deviazioni. Ad esempio, supponiamo di avere uno stack associato a un'istanza dello stack di a. StackSet Se si utilizza CloudFormation per aggiornare lo stack per utilizzare un modello diverso, ciò non viene considerato deriva, anche se quello stack ora ha un modello diverso da qualsiasi altro stack appartenente a. 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 su uno stack, consulta. Rileva le modifiche di configurazione non gestite agli stack e alle risorse con il rilevamento della deriva

Poiché CloudFormation esegue il rilevamento della deriva su ogni pila singolarmente, tiene conto di tutti i valori dei parametri sostituiti per determinare se una pila ha subito una deriva. Per ulteriori informazioni sull'override dei parametri del modello nelle istanze dello stack, consulta Sostituisci i valori dei parametri sugli stack all'interno del tuo CloudFormation StackSet.

Se esegui il rilevamento della deriva direttamente su uno stack associato a un'istanza dello stack, tali risultati non sono disponibili nella pagina della console. StackSets

Rileva la deriva su una (console) StackSet

Per rilevare la deriva su un StackSet
  1. Apri la AWS CloudFormation console in https://console.aws.amazon.com/cloudformation.

  2. Nella StackSetspagina, seleziona quello StackSet su cui desideri eseguire il rilevamento della deriva.

  3. Dal menu Actions (Operazioni), selezionare Detect drifts (Rileva deviazioni).

    CloudFormation visualizza una barra informativa che indica che il rilevamento della deriva è stato avviato per il selezionato. StackSet

  4. Facoltativo: per monitorare lo stato di avanzamento dell'operazione di rilevamento della deviazione:

    1. Seleziona il StackSet nome per visualizzare la pagina dei dettagli dello Stackset.

    2. 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 dei dettagli dell'operazione.

  5. Attendere il CloudFormation completamento dell'operazione di rilevamento della deriva. Al termine dell'operazione di rilevamento della deriva, CloudFormation aggiorna Drift status e Last drift check time per il tuo. StackSet Questi campi sono elencati nella scheda Panoramica della pagina dei StackSet dettagli del selezionato. StackSet

    L'operazione di rilevamento della deriva può richiedere del tempo, a seconda del numero di istanze dello stack incluse e del StackSet numero di risorse incluse in. StackSet È possibile eseguire una sola operazione di rilevamento della deriva su una determinata StackSet operazione alla volta. CloudFormation continua l'operazione di rilevamento della deriva anche dopo aver chiuso la barra delle informazioni.

  6. Per esaminare i risultati del rilevamento della deriva per le istanze dello stack in a StackSet, seleziona la scheda Istanze dello 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.

  7. Per esaminare i risultati del rilevamento della deviazione per lo stack associato a un'istanza dello stack specifica:

    1. Scegli la scheda Operazioni.

    2. 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.

    3. 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.

  8. È possibile ordinare le risorse in base al loro stato deviazione, utilizzando la colonna Drift (Deviazione).

    Per visualizzare i dettagli su una risorsa modificata:

    1. Con la risorsa selezionata, scegli Visualizza dettagli deviazione.

      CloudFormation visualizza la pagina di dettaglio della deriva per quella particolare 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 la deriva su un StackSet ()AWS CLI

Per rilevare la deriva su un'intera pila utilizzando il AWS CLI, utilizzate la seguente procedura:

Per rilevare la deriva su un StackSet
  1. Utilizzate il detect-stack-set-driftcomando per rilevare la deriva su un'intera istanza dello stack StackSet e sulle relative istanze dello stack associate.

    L'esempio seguente avvia il rilevamento della deriva su. StackSet stack-set-drift-example

    aws cloudformation detect-stack-set-drift \ --stack-set-name stack-set-drift-example

    Output:

    { "OperationId": "c36e44aa-3a83-411a-b503-cb611example" }
  2. Poiché le operazioni di rilevamento della StackSet deriva possono essere operazioni di lunga durata, utilizzate il describe-stack-set-operationcomando per monitorare lo stato dell'operazione. Questo comando accetta l'ID dell' StackSet operazione restituito dal comando. detect-stack-set-drift

    Negli esempi seguenti viene utilizzato l'ID dell'operazione dell'esempio precedente per restituire informazioni sull'operazione di rilevamento della StackSet deriva. In questo esempio, l'operazione è ancora in esecuzione. Delle sette istanze dello stack associate a questa istanza StackSet, è già stato rilevato che un'istanza dello stack è andata alla deriva, due istanze sono sincronizzate e il rilevamento della deriva per le restanti quattro istanze dello stack è ancora in corso. Poiché un'istanza è andata alla deriva, lo stato di deriva dell'istanza stessa è ora lo stesso. StackSet DRIFTED

    aws cloudformation describe-stack-set-operation \ --stack-set-name stack-set-drift-example \ --operation-id c36e44aa-3a83-411a-b503-cb611example

    Output:

    { "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 dello stack totali associate a questa situazione StackSet sono andate alla deriva, rendendo lo stato di drift dell'istanza stessa pari a. StackSet DRIFTED

    aws cloudformation describe-stack-set-operation \ --stack-set-name stack-set-drift-example \ --operation-id c36e44aa-3a83-411a-b503-cb611example

    Output:

    { "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" } }
  3. Una volta completata l'operazione di rilevamento della StackSet deriva, utilizzate i comandi, describe-stack-set list-stack-instancesdescribe-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-name stack-set-drift-example

    Output:

    { "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 list-stack-instancescomando per restituire informazioni di riepilogo sulle istanze dello stack associate a a StackSet, incluso lo stato di deriva di ciascuna istanza dello stack.

    In questo esempio, l'esecuzione list-stack-instances sull'esempio StackSet con il filtro drift status impostato su DRIFTED consente di identificare quali due istanze dello stack hanno uno stato di drift pari a. DRIFTED

    aws cloudformation list-stack-instances \ --stack-set-name stack-set-drift-example \ --filters Name=DRIFT_STATUS,Values=DRIFTED

    Output:

    { "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-name stack-set-drift-example \ --stack-instance-account 012345678910 --stack-instance-region us-east-1

    Output:

    { "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" } }
  4. Dopo aver identificato quali istanze dello stack sono andate alla deriva, puoi utilizzare le informazioni sulle istanze dello stack restituite dai comandi or per eseguire il comando. list-stack-instances describe-stack-instance 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-statuses per 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-name my-stack-set-with-resource-drift \ --stack-instance-account 123456789012 \ --stack-instance-region us-east-1 \ --operation-id c36e44aa-3a83-411a-b503-cb611example \ --stack-instance-resource-drift-statuses MODIFIED DELETED

    Output:

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

Interruzione del rilevamento della deriva su un StackSet

Poiché il rilevamento della deriva su a StackSet può essere un'operazione di lunga durata, in alcuni casi si desidera interrompere un'operazione di rilevamento della deriva attualmente in esecuzione su un. StackSet

Per interrompere il rilevamento della deriva su una (console) StackSet
  1. Apri la AWS CloudFormation console in https://console.aws.amazon.com/cloudformazione.

  2. Nella StackSetspagina, seleziona il nome di. StackSet

    CloudFormation visualizza la pagina dei StackSets dettagli per il selezionato StackSet.

  3. Nella pagina dei StackSets dettagli, selezionare la scheda Operazioni, quindi selezionare l'operazione di rilevamento della deriva.

  4. Selezionare Stop operation (Interrompi operazione).

Per interrompere il rilevamento della deriva su () StackSet AWS CLI
  • Utilizza il comando stop-stack-set-operation. È necessario fornire sia il StackSet nome che l'ID dell'operazione di rilevamento StackSet della deriva.

    aws cloudformation stop-stack-set-operation \ --stack-set-name stack-set-drift-example \ --operation-id 624af370-311a-11e8-b6b7-500cexample