Ermitteln von Abweichungen im gesamten CloudFormation-Stack - AWS CloudFormation

Ermitteln von Abweichungen im gesamten CloudFormation-Stack

Das Durchführen einer Abweichungserkennung für einen Stack ermittelt, ob der Stack von seiner erwarteten Vorlagenkonfiguration abgewichen ist, und gibt detaillierte Informationen über den Abweichungsstatus jeder Ressource im Stack zurück, die die Abweichungserkennung unterstützt.

So erkennen Sie eine Abweichung für einen gesamten Stack mit Hilfe der AWS Management Console

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

  2. Wählen Sie in der Liste der Stacks den Stack aus, für den Sie die Abweichungserkennung durchführen möchten. Wählen Sie im Stack-Detailbereich die Option Stack actions (Stack-Aktionen) und dann Detect drift (Abweichung erkennen) aus.

    
                        Der Befehl „Detect drift (Abweichung erkennen)“, der im Menü „Stack actions (Stack-Aktionen)“ für den markierten Stack ausgewählt wurde.

    CloudFormation zeigt eine Informationsleiste an, die angibt, dass Abweichungserkennung für den ausgewählten Stack initiiert wurde.

  3. Warten Sie, bis CloudFormation den Vorgang der Abweichungserkennung abgeschlossen hat. Wenn der Abweichungserkennungsvorgang abgeschlossen ist, aktualisiert CloudFormation Drift status (Abweichungsstatus) und Last drift check time (Zeitpunkt der letzten Abweichungsprüfung) für Ihren Stack. Diese Felder werden im Abschnitt Overview (Übersicht) des Bereichs Stack info (Stack-Informationen) der Stack-Detailseite aufgeführt.

    Der Vorgang der Abweichungserkennung kann mehrere Minuten dauern, abhängig von der Anzahl der im Stack enthaltenen Ressourcen. Sie können nur jeweils einen einzigen Abweichungserkennungsvorgang für einen bestimmten Stack ausführen. CloudFormation führt den Abweichungserkennungsvorgang weiter aus, selbst wenn Sie die Informationsleiste schließen.

  4. Überprüfen Sie die Ergebnisse der Abweichungserkennung für den Stack und seine Ressourcen. Wenn Sie Ihren Stack ausgewählt haben, wählen Sie im Menü Stack actions (Stack-Aktionen) die Option View drift results (Abweichungsergebnisse anzeigen) aus.

    CloudFormation listet den Gesamtabweichungsstatus des Stacks zusätzlich zum letzten Mal auf, als die Abweichungserkennung für den Stack oder eine seiner einzelnen Ressourcen eingeleitet wurde. Ein Stack gilt als abgewichen, wenn eine oder mehrere seiner Ressourcen abgewichen sind.

    
                        Die Abweichungsseite für den ausgewählten Stack, die den Gesamtabweichungsstatus, den Status der Abweichungserkennung und das letzte Mal, als die Abweichungserkennung für den Stack oder eine seiner einzelnen Ressourcen eingeleitet wurde, anzeigt.

    Im Abschnitt Resource drift status (Ressourcenabweichungsstatus) listet CloudFormation jede Stack-Ressource, ihren Abweichungsstatus und das letzte Mal, als die Abweichungserkennung für die Ressource eingeleitet wurde, auf. Die logische ID und die physische ID jeder Ressource werden angezeigt, um Ihnen bei der Identifizierung zu helfen. Darüber hinaus zeigt CloudFormation für Ressourcen mit dem Status MODIFIED Details zur Ressourcenabweichung an.

    Sie können die Ressourcen basierend auf ihrem Abweichungsstatus mithilfe der Spalte Drift status (Abweichungsstatus) sortieren.

    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 die Option zum Anzeigen von Abweichungsdetails aus.

        CloudFormation zeigt die Abweichungsdetailseite für diese Ressource an. Diese Seite führt den erwarteten und aktuellen Eigenschaftswert der Ressource sowie alle Unterschiede zwischen den beiden auf.

        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 einen gesamten Stack mit Hilfe der AWS CLI

Um eine Abweichung für einen gesamten Stack mit der AWS CLI zu erkennen, verwenden Sie die folgenden Befehle aws cloudformation:

  • detect-stack-drift, um einen Abweichungserkennungsvorgang für einen Stack einzuleiten.

  • describe-stack-drift-detection-status, um den Status des Stapelabweichungserkennungs-Vorgangs zu überwachen.

  • describe-stack-resource-drifts, um die Details der Stapelabweichungserkennung zu überprüfen.

  1. Verwenden Sie die detect-stack-drift, um eine Abweichung für einen gesamten Stack zu erkennen. Geben Sie den Stack-Namen oder ARN an. Sie können auch die logischen IDs aller bestimmten Ressourcen angeben, die Sie als Filter für diese Abweichungserkennung verwenden möchten.

    PROMPT> aws cloudformation detect-stack-drift --stack-name my-stack-with-resource-drift { "StackDriftDetectionId": "624af370-311a-11e8-b6b7-500cexample" }
  2. Da die Erkennung der Stack-Abweichung lange dauern kann, verwenden Sie describe-stack-drift-detection-status, um den Status des Vorgangs zu überwachen. Dieser Befehl übernimmt die ID der Stack-Abweichungserkennung, die vom Befehl detect-stack-drift zurückgegeben wird.

    Im folgenden Beispiel haben wir die vom obigen Beispiel detect-stack-drift zurückgegebene Stack-Abweichungserkennungs-ID verwendet und als Parameter an describe-stack-drift-detection-status übergeben. Der Parameter gibt Vorgangsdetails zurück, die zeigen, dass der Abweichungserkennungs-Vorgang abgeschlossen ist, eine einzelne Stack-Ressource abgewichen ist und dass der gesamte Stack als Ergebnis als abgewichen gilt.

    PROMPT> aws cloudformation describe-stack-drift-detection-status --stack-drift-detection-id 624af370-311a-11e8-b6b7-500cexample { "StackId": "arn:aws:cloudformation:us-east-1:099908667365:stack/my-stack-with-resource-drift/489e5570-df85-11e7-a7d9-50example", "StackDriftDetectionId": "624af370-311a-11e8-b6b7-500cexample", "StackDriftStatus": "DRIFTED", "Timestamp": "2018-03-26T17:23:22.279Z", "DetectionStatus": "DETECTION_COMPLETE", "DriftedStackResourceCount": 1 }
  3. Wenn die Stapelabweichungserkennung abgeschlossen ist, verwenden Sie den Befehl describe-stack-resource-drifts, um die Ergebnisse zu überprüfen, einschließlich der tatsächlichen und erwarteten Eigenschaftswerte für Ressourcen, die abgewichen sind.

    Das folgende Beispiel verwendet den Parameter stack-resource-drift-status-filters, um Informationen zur Stack-Abweichung für die Ressourcen abzurufen, die geändert oder gelöscht wurden. Die Anfrage gibt Informationen über die eine Ressource zurück, die geändert wurde, einschließlich Details über zwei ihrer Eigenschaften, deren Werte geändert wurden. Es wurden keine Ressourcen gelöscht.

    PROMPT> aws cloudformation describe-stack-resource-drifts --stack-name my-stack-with-resource-drift --stack-resource-drift-status-filters MODIFIED DELETED { "StackResourceDrifts": [ { "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-26T17:23:34.489Z", "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": "Queue" } ] }