通过偏差检测,您可以检测资源栈的实际配置是否与其模板配置不同或已经偏差。
前提条件
使用限制
- 只有以下状态的资源栈支持偏差检测。
状态 说明 CREATE_COMPLETE 资源栈创建成功。 UPDATE_FAILED 资源栈更新失败。 UPDATE_COMPLETE 资源栈更新完成。 ROLLBACK_COMPLETE 资源栈回滚完成。 ROLLBACK_FAILED 资源栈回滚失败。 CHECK_COMPLETE 资源栈校验完成。 CHECK_FAILED 资源栈校验失败。 - 目前只支持部分资源的偏差检测。更多信息,请参见支持偏差检测和资源导入的资源类型。
检测偏差(控制台)
检测偏差(阿里云CLI)
您可以借助阿里云命令行工具 CLI(Alibaba Cloud CLI),调用偏差检测相关接口检测资源栈偏差。具体如下:
- 调用DetectStackDrift接口对资源栈进行偏差检测。您需要指定资源栈ID,以及用于此次偏差检测操作筛选条件的特定资源名称。
输入以下命令:
aliyun ros DetectStackDrift --RegionId cn-beijing --StackId bc1a154f-d073-4e77-9ae5-323d3b23****
预期输出:
{ "DriftDetectionId": "ad9cf0c7-938e-40b3-9466-ec9f25a1****", "RequestId": "B288A0BE-D927-4888-B0F7-B35EF84B6E6F" }
- 调用GetStackDriftDetectionStatus接口查询偏差检测的状态。此接口将获取
DetectStackDrift
返回的资源栈偏差检测ID。在以下示例中,我们采用了如上
DetectStackDrift
示例返回的资源栈偏差检测ID,并将其作为参数传递给GetStackDriftDetectionStatus
。此参数返回操作详细信息,显示偏差检测操作已完成。输入以下命令:
aliyun ros GetStackDriftDetectionStatus --RegionId cn-beijing --DriftDetectionId ad9cf0c7-938e-40b3-9466-ec9f25a1****
预期输出:
{ "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": "ad9cf0c7-938e-40b3-9466-ec9f25a1****", "StackId": "bc1a154f-d073-4e77-9ae5-323d3b23****" }
- 调用ListStackResourceDrifts接口查询资源栈的资源偏差详情。
输入以下命令:
aliyun ros ListStackResourceDrifts --RegionId cn-beijing --StackId bc1a154f-d073-4e77-9ae5-323d3b23****
预期输出:
{ "ResourceDrifts": [ { "ResourceDriftStatus": "MODIFIED", "LogicalResourceId": "Vpc1", "PropertyDifferences": [ { "ActualValue": "test11", "PropertyPath": "/Description", "ExpectedValue": "test1", "DifferenceType": "NOT_EQUAL" } ], "PhysicalResourceId": "vpc-m5euqfvmzygb7xqmx****", "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": "bc1a154f-d073-4e77-9ae5-323d3b23****" }, { "ResourceDriftStatus": "DELETED", "LogicalResourceId": "Vpc2", "PhysicalResourceId": "vpc-m5exf3skxrxtvtkbc****", "DriftDetectionTime": "2020-03-17T07:21:17", "ResourceType": "ALIYUN::ECS::VPC", "StackId": "bc1a154f-d073-4e77-9ae5-323d3b23****" } ], "RequestId": "8E1DE57B-6124-482B-8283-EF5562653308" }