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

前提条件

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

检测偏差(控制台)

  1. 登录ROS控制台
  2. 在左侧导航栏单击资源栈
  3. 在页面左上角的地域下拉列表,选择资源栈的所在地域。
  4. 单击资源栈名称下面的资源栈ID,在资源栈信息页签的基本信息区域,单击检测偏差
    检测偏差
    说明
    • 偏差检测完成后,您可以在基本信息区域看资源栈的偏差状态和上一次偏差检查时间。
    • 如果资源栈的一个或多个资源已经存在偏差,则认为资源栈已经存在偏差。

检测偏差(阿里云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 --DriftDetectionId 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"
    }