在個別堆疊資源上偵測偏離 - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

在個別堆疊資源上偵測偏離

您可以在堆疊內的特定資源上偵測偏離,而非整個堆疊。當您只需要判斷特定資源現在是否再次符合其預期範本組態時,這特別有用。

在資源上執行偏離偵測時, CloudFormation 也會更新整體堆疊偏離狀態和上次偏離檢查時間,如適用。例如,假設堆疊的偏離狀態為 IN_SYNC。您已對該堆疊中包含的一或多個資源 CloudFormation 執行漂移偵測,並 CloudFormation 偵測到一或多個資源已漂移。 CloudFormation 將堆疊漂移狀態更新為 DRIFTED。相反地,假設您的堆疊DRIFTED由於單一漂移資源而偏離狀態為 。如果您將該資源設回其預期的屬性值,然後再次偵測資源上的偏離, CloudFormation 會將資源偏離狀態和堆疊偏離狀態更新為 ,IN_SYNC而無需再次偵測整個堆疊上的偏離。

若要使用 偵測個別資源上的偏離 AWS Management Console
  1. https://console.aws.amazon.com/cloudformation 開啟 AWS CloudFormation 主控台。

  2. 從堆疊清單中,選取包含資源的堆疊。 CloudFormation 會顯示該堆疊的堆疊詳細資訊。

  3. 在左側瀏覽窗格的Stacks (堆疊) 下,選擇 Stack actions (堆疊動作),然後選擇 Detect drift (偵測偏離)

  4. Resource drift status (資源偏離狀態) 下,選擇資源,然後選取Detect drift for resource (偵測資源的偏離)

    CloudFormation 在選取的資源上執行偏離偵測。如果成功, 會視需要 CloudFormation 更新資源的漂移狀態和整體堆疊漂移狀態。 CloudFormation 也會更新資源上次執行漂移偵測的時間時間戳記,以及整體堆疊。如果資源已修改, CloudFormation 會顯示資源預期和目前屬性值的詳細偏離資訊。

  5. 檢閱資源的漂移偵測結果。

    1. 檢視已修改過的資源的詳細資訊。

      1. 在選取已修改資源的情況下,選取 View drift details (檢視偏離詳細資訊)

        CloudFormation 會顯示該資源的偏離詳細資訊,包括資源的預期和目前屬性值,以及兩者之間的任何差異。

        若要強調差異,請在 Differences (差異) 區段選取屬性名稱。

        • Details (詳細資訊) 區段的 Current (目前) 欄位會以綠色反白顯示新增的屬性。

        • Details (詳細資訊) 區段的 Expected (預期) 欄位會以紅色反白顯示刪除的屬性。

        • 值已變更的屬性在 Expected (預期)Current (目前) 欄中以黃色醒目提示。

    Drift Details (漂移詳細資訊) 的 Resource drift status (資源漂移狀態) 頁面,其中包含堆疊中每個支援漂移偵測的資源的漂移資訊。詳細資訊包括偏離狀態及預期與目前的屬性值。
若要使用 偵測個別資源上的偏離 AWS CLI
  • 若要使用 偵測個別資源上的偏離 AWS CLI,請使用 detect-stack-resource-drift命令。指定資源的邏輯 ID,以及資源所在的堆疊。

    下列範例會在特定堆疊資源 上執行偏離偵測操作my-drifted-resource。回應傳回的資訊可確認資源已修改,包括值已變更的兩個屬性的詳細資訊。

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