您可以在资源栈上执行偏差检测操作,以便确定资源栈是否已偏离其预期的模板配置,并返回有关支持偏差检测的资源栈中每个资源的偏差状态详情。

前提条件

请确保您已经创建了资源栈,操作方法请参见创建资源栈

检测偏差(控制台)

  1. 登录ROS控制台
  2. 在左侧导航栏单击资源栈
  3. 资源栈列表中,单击资源栈名称下的ID。
  4. 单击偏差页签。
  5. 偏差页面,单击检测资源栈偏差检测偏差
    说明
    • ROS会弹出提示窗口,说明已经为选定的资源栈启动偏差检测。
    • 您一次只能在资源栈上运行一个偏差检测操作。
    • 偏差检测操作可能需要几分钟,具体时间取决于资源栈中包含的资源数量,请耐心等待。即使您关闭信息窗口,ROS也会继续执行偏差检测操作。
  6. 资源栈信息页面的基本信息区域查看资源栈的偏差状态和上一次偏差检查时间。基本信息
    说明 如果资源栈的一个或多个资源已经存在偏差,则认为资源栈已经存在偏差。

检测偏差(阿里云CLI)

通过命令aliyun ros在资源栈上检测偏差。

命令 描述
DetectStackDrift 对资源栈启动偏差检测操作。
GetStackDriftDetectionStatus 查询资源栈偏差检测操作的状态。
ListStackResourceDrifts 查询资源栈资源偏差的详细信息。
  • 使用DetectStackDrift可以在资源栈上检测偏差。您需要指定资源栈ID,以及用于此次偏差检测操作筛选条件的特定资源名称。
    $ aliyun ros DetectStackDrift --StackId 4334b961-3bfd-419e-9a00-23a95e******
    {
      "DriftDetectionId": "13b48934-6818-4765-8ae1-744241******",
      "RequestId": "B288A0BE-D927-4888-B0F7-B35EF84B6E6F"
    }
  • 由于资源栈偏差检测操作可能会长时间运行,请使用GetStackDriftDetectionStatus监控偏差操作的状态。此命令将获取DetectStackDrift返回的资源栈偏差检测ID。

    在以下示例中,我们采用了如上DetectStackDrift示例返回的资源栈偏差检测ID,并将其作为参数传递给GetStackDriftDetectionStatus。此参数返回操作详细信息,显示偏差检测操作已完成。

    $ aliyun ros GetStackDriftDetectionStatus --StackDriftDetectionId 13b48934-6818-4765-8ae1-744241******
    {
        "RequestId": "52398D3A-E868-4F95-8B5E-6A2DFB778B16",
        "DriftDetectionTime": "2020-03-17T07:21:17",
        "DriftDetectionStatusReason": "Detect stack drift successfully",
        "DriftedStackResourceCount": 2,
        "DriftDetectionStatus": "DETECTION_COMPLETE",
        "StackDriftStatus": "DRIFTED",
        "DriftDetectionId": "13b48934-6818-4765-8ae1-744241******",
        "StackId": "4334b961-3bfd-419e-9a00-23a95e******"
    }
  • 资源栈偏差检测操作完成后,使用ListStackResourceDrifts可以查看结果,包括经存在偏差的资源的实际和预期属性值。
    $ aliyun ros ListStackResourceDrifts --StackId 4334b961-3bfd-419e-9a00-23a95e******
    {
      "ResourceDrifts": [
        {
          "ResourceDriftStatus": "MODIFIED",
          "LogicalResourceId": "Vpc1",
          "PropertyDifferences": [
            {
              "ActualValue": "test11",
              "PropertyPath": "/Description",
              "ExpectedValue": "test1",
              "DifferenceType": "NOT_EQUAL"
            }
          ],
          "PhysicalResourceId": "vpc-m5euqfvmzygb7xq******",
          "ExpectedProperties": "{\"CidrBlock\": \"192.168.0.0/16\", \"Description\": \"test1\", \"VpcName\": \"test1\"}",
          "DriftDetectionTime": "2020-03-17T07:21:17",
          "ResourceType": "ALIYUN::ECS::VPC",
          "ActualProperties": "{\"CidrBlock\": \"192.168.0.0/16\", \"Description\": \"test11\", \"VpcName\": \"test1\"}",
          "StackId": "4334b961-3bfd-419e-9a00-23a95e******"
        },
        {
          "ResourceDriftStatus": "DELETED",
          "LogicalResourceId": "Vpc2",
          "PhysicalResourceId": "vpc-m5exf3skxrxtvtk******",
          "DriftDetectionTime": "2020-03-17T07:21:17",
          "ResourceType": "ALIYUN::ECS::VPC",
          "StackId": "4334b961-3bfd-419e-9a00-23a95e******"
        }
      ],
      "RequestId": "8E1DE57B-6124-482B-8283-EF5562653308"
    }