Erkennen von Abweichungen bei einzelnen Stack-Ressourcen - AWS CloudFormation

Erkennen von Abweichungen bei einzelnen Stack-Ressourcen

Sie können Abweichungen von bestimmten Ressourcen innerhalb eines Stacks statt des gesamten Stacks erkennen. Dies ist besonders nützlich, wenn Sie nur feststellen müssen, ob bestimmte Ressourcen wieder mit ihren erwarteten Vorlagenkonfigurationen übereinstimmen.

Bei der Abweichungserkennung einer Ressource aktualisiert CloudFormation auch den Abweichungsstatus des gesamten Stacks und ggf. die Zeit für die Letzte Abweichungsprüfung. Angenommen, ein Stack hat einen Abweichungsstatus IN_SYNC. Sie haben CloudFormation die Abweichungserkennung für eine oder mehrere in diesem Stack enthaltene Ressourcen durchführen lassen. CloudFormation erkennt, dass eine oder mehrere dieser Ressourcen abgewichen sind. CloudFormation aktualisiert den Stack-Abweichungszustand auf DRIFTED. Umgekehrt, nehmen wir an, Sie haben einen Stack mit einem Abweichungsstatus von DRIFTED wegen einer einzelnen abgewichenen Ressource. Wenn Sie diese Ressource auf ihre erwarteten Eigenschaftswerte zurücksetzen und dann wieder eine Abweichung der Ressource erkannt wird, aktualisiert CloudFormation sowohl den Ressourcenabweichungsstatus als auch den Stack-Abweichungsstatus auf IN_SYNC, ohne dass Sie die Abweichung für den gesamten Stack erneut erkennen müssen.

So erkennen Sie eine Abweichung für eine einzelne Ressource mit Hilfe von AWS Management Console

  1. Öffnen Sie die AWS CloudFormation-Konsole unter https://console.aws.amazon.com/cloudformation.

  2. Wählen Sie aus der Liste der Stacks den Stack aus, der die Ressource enthält. CloudFormation zeigt die Stack-Details für diesen Stack an.

  3. Wählen Sie im linken Navigationsbereich unter Stacks die Option Stack Actions (Stack-Aktionen) und dann Detect drift (Abweichung erkennen) aus.

  4. Wählen Sie unter Resource drift status (Ressourcenabweichungsstatus) die Ressource aus und wählen Sie dann Detect drift for resource (Abweichung für Ressource erkennen) aus.

    CloudFormation führt eine Abweichungserkennung für die ausgewählte Ressource durch. Wenn erfolgreich, aktualisiert CloudFormation den Abweichungsstatus der Ressource und bei Bedarf den gesamten Abweichungsstatus des Stacks. CloudFormation aktualisiert außerdem den Zeitstempel, der angibt, wann die Abweichungserkennung zuletzt für die Ressource und den Stack als Ganzes durchgeführt wurde. Wenn die Ressource geändert wurde, zeigt CloudFormation detaillierte Abweichungsinformationen zu den erwarteten und aktuellen Eigenschaftswerten der Ressource an.

  5. Überprüfen Sie die Ergebnisse der Abweichungserkennung für die Ressource.

    1. So zeigen Sie die Details zu einer geänderten Ressource an

      1. Wenn Sie die geänderten Ressourcen ausgewählt haben, wählen Sie View drift details (Abweichungsdetails anzeigen) aus.

        CloudFormation zeigt die Abweichungsdetails für diese Ressource an, einschließlich der erwarteten und aktuellen Eigenschaftswerte der Ressource sowie aller Unterschiede zwischen den beiden.

        Zum Hervorheben eines Unterschieds wählen Sie im Abschnitt Differences (Unterschiede) den Eigenschaftsnamen aus.

        • Zusätzliche Eigenschaften werden in der Spalte Current (Aktuell) des Abschnitts Details grün hinterlegt.

        • Gelöschte Eigenschaften werden in der Spalte Expected (Erwartet) des Abschnitts Details rot markiert.

        • Eigenschaften, deren Wert geändert wurde, sind in den beiden Spalten Expected (Erwartet) und Current (Aktuell) gelb markiert.

    
                        Der Abschnitt Ressourcenabweichungsstatus auf der Seite Abweichungsdetails, der Abweichungsinformationen für jede Ressource im Stack enthält, die die Abweichungserkennung unterstützt. Zu den Details gehören der Abweichungsstatus sowie die erwarteten und aktuellen Eigenschaftswerte.

So erkennen Sie eine Abweichung für eine einzelne Ressource mit Hilfe von AWS CLI

  • Um eine Abweichung für eine einzelne Ressource mit Hilfe der AWS CLI zu erkennen, verwenden Sie den Befehl aws cloudformation detect-stack-resource-drift. Geben Sie die logische ID der Ressource sowie den Stack an, in dem sie enthalten ist.

    Das folgende Beispiel führt eine Abweichungserkennung für eine bestimmte Stack-Ressource, my-drifted-resource, durch. Die Antwort gibt Informationen zurück, die bestätigen, dass die Ressource geändert wurde, einschließlich Details zu zwei ihrer Eigenschaften, deren Werte geändert wurden.

    PROMPT> aws cloudformation detect-stack-resource-drift --stack-name my-stack-with-resource-drift --logical-resource-id my-drifted-resource { "StackResourceDrift": { "StackId": "arn:aws:cloudformation:us-east-1:099908667365:stack/my-stack-with-resource-drift/489e5570-df85-11e7-a7d9-50example", "ActualProperties": "{\"ReceiveMessageWaitTimeSeconds\":0,\"DelaySeconds\":120,\"RedrivePolicy\":{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:099908667365:my-stack-with-resource-drift-DLQ-1BCY7HHD5QIM3\",\"maxReceiveCount\":12},\"MessageRetentionPeriod\":345600,\"MaximumMessageSize\":262144,\"VisibilityTimeout\":60,\"QueueName\":\"my-stack-with-resource-drift-Queue-494PBHCO76H4\"}", "ResourceType": "AWS::SQS::Queue", "Timestamp": "2018-03-26T18:54:28.462Z", "PhysicalResourceId": "https://sqs.us-east-1.amazonaws.com/099908667365/my-stack-with-resource-drift-Queue-494PBHCO76H4", "StackResourceDriftStatus": "MODIFIED", "ExpectedProperties": "{\"ReceiveMessageWaitTimeSeconds\":0,\"DelaySeconds\":20,\"RedrivePolicy\":{\"deadLetterTargetArn\":\"arn:aws:sqs:us-east-1:099908667365:my-stack-with-resource-drift-DLQ-1BCY7HHD5QIM3\",\"maxReceiveCount\":10},\"MessageRetentionPeriod\":345600,\"MaximumMessageSize\":262144,\"VisibilityTimeout\":60,\"QueueName\":\"my-stack-with-resource-drift-Queue-494PBHCO76H4\"}", "PropertyDifferences": [ { "PropertyPath": "/DelaySeconds", "ActualValue": "120", "ExpectedValue": "20", "DifferenceType": "NOT_EQUAL" }, { "PropertyPath": "/RedrivePolicy/maxReceiveCount", "ActualValue": "12", "ExpectedValue": "10", "DifferenceType": "NOT_EQUAL" } ], "LogicalResourceId": "my-drifted-resource" } }