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

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

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

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

在資源上執行漂移偵測時, CloudFormation 也會更新整體堆疊漂移狀態和上次漂移檢查時間 (如果適用)。例如,假設堆疊的偏離狀態為 IN_SYNC。您已對該堆疊中包含的一或多個資源 CloudFormation 執行漂移偵測,並 CloudFormation 偵測其中一個或多個資源是否已漂移。 CloudFormation 將堆疊漂移狀態更新為「移」。反之,假設堆疊因為單一偏離的資源而處於偏離狀態 DRIFTED。如果將該資源設定回其預期的屬性值,然後再次偵測資源上的漂移,則 CloudFormation 會將資源漂移狀態和堆疊漂移狀態更新為 IN_SYNC,而不需要您再次偵測整個堆疊上的漂移。

若要使用偵測個別資源上的漂移 AWS Management Console
  1. 開啟主 AWS CloudFormation 控台,網址為 https://console.aws.amazon.com/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,請使用aws cloudformation 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" } }