当您在资源编排服务之外更改资源配置时,可以使用偏差检测功能检测资源栈中资源的变更信息。您也可以采取纠正措施,使资源栈资源与资源栈模板中的定义同步,以确保资源配置的一致性。

场景示例

检测资源栈的偏差状态

如果您想检测资源栈实际的配置状态与模板中定义的状态是否相符或者资源栈中的资源状态是否符合实际状态,您可以选择使用偏差检测功能检测资源栈的状态。

具体操作,请参见检测资源栈的偏差状态

检测资源的偏差状态

如果您想查看资源栈中的具体资源是否符合实际状态,您可以选择使用偏差检测功能检测资源的最新状态。

具体操作,请参见检测资源的偏差状态

检测资源栈组的偏差状态

如果您想检测资源栈组中每个资源栈实例关联的资源栈配置状态是否与模板中定义的状态存在差异,您可以选择使用偏差检测功能检测资源栈组的状态。

具体操作,请参见检测资源栈组的偏差状态

使用限制

  • 检测资源栈的偏差状态时,ROS不会在任何属于该资源栈的嵌套资源栈上检测偏差。您可以直接在嵌套资源栈上启动偏差检测操作。

  • 在某些情况下,ROS可能无法返回准确的偏差结果。您应该了解这些情况,以便正确解释您的偏差检测结果。

    • 在某些情况下,属性数组中包含的对象将被报告为偏差,而实际上它们是从负责该资源的底层服务提供给属性的默认值。

    • 您可以在资源栈模板中指定某些资源属性,ROS无法将其与生成的资源栈资源中的属性进行比较,因此这些属性不能包括在偏差检测结果中。这些属性可分为四大类:

      • ROS无法在资源栈模板中映射出初始资源属性值。

      • 资源的相关服务不返回的属性值。

      • 某些属性值被有意设计成永远不会由资源所属的服务返回。这些属性值往往包含机密信息,例如密码或其他不应泄露的敏感数据。

      • ROS尚未支持的资源属性。

注意事项

您可以通过GetResourceType接口查询资源的属性是否支持偏差检查。以查询ALIYUN::ESS::ScalingRule资源的返回值为例,最外层的SupportDriftDetection字段表明资源是否支持偏差检查。如果取值为true,表明资源支持偏差检查,此时每个属性都有SupportDriftDetection字段表明该属性是否支持偏差检查。

{
    ...
    "ResourceType": "ALIYUN::ESS::ScalingRule",
    "Properties": {
        "ScalingRuleName": {
            ...
            "SupportDriftDetection": true
        },
        ...
    },
    "SupportDriftDetection": true
}

功能特性

偏差检测对象

说明

偏差检测所需权限

资源

将预期的资源属性值指定为模板参数的值,并将预期值与这些资源属性的实际值进行比较。如果某个资源的实际属性值与预期属性值不同,则资源存在偏差。

  • 该资源的读取权限。

  • ros:DetectStackResourceDrift权限。

资源栈

如果资源栈中的资源存在偏差,则资源栈存在偏差。

说明

ROS将生成已经存在偏差的资源栈中每个资源的详细信息。

  • 资源栈中每个资源的读取权限。例如:如果资源栈包含ALIYUN::VPC::EIP资源,则您必须具有vpc:DescribeEipAddresses权限才能在资源栈上进行偏差检测。

  • ros:DetectStackDrift权限。

资源栈组

根据属于资源栈组的资源栈实例的偏差状态来描述资源栈组的总体偏差状态。如果资源栈实例关联的资源栈存在偏差,则实例所在的资源栈组存在偏差。

  • 资源栈组中资源栈包含的每个资源的读取权限。

  • ros:DetectStackGroupDrift权限。

支持偏差监测的资源和资源栈

偏差检测对象

说明

资源

关于偏差检测支持的资源类型,请参见支持偏差检测和资源导入的资源类型

资源栈

偏差检测支持的资源栈状态如下:

  • CREATE_COMPLETE

  • UPDATE_COMPLETE

  • ROLLBACK_COMPLETE

  • ROLLBACK_FAILED

  • CHECK_COMPLETE

相关文档