资源编排服务 RFS-获取执行计划:响应参数

时间:2024-12-12 20:29:56

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

execution_plan_items

Array of ExecutionPlanItem objects

执行计划项目的列表

表5 ExecutionPlanItem

参数

参数类型

描述

resource_type

String

资源的类型

以HCL格式的模板为例,resource_type 为 huaweicloud_vpc

resource "huaweicloud_vpc" "my_hello_world_vpc" {
  name = "test_vpc"
}

以json格式的模板为例,resource_type 为 huaweicloud_vpc

{
  "resource": {
    "huaweicloud_vpc": {
      "my_hello_world_vpc": {
        "name": "test_vpc"
      }
    }
  }
}

resource_name

String

资源的名称,默认为资源的逻辑名称

以HCL格式的模板为例,resource_name 为 my_hello_world_vpc

resource "huaweicloud_vpc" "my_hello_world_vpc" {
  name = "test_vpc"
}

以json格式的模板为例,resource_name 为 my_hello_world_vpc

{
  "resource": {
    "huaweicloud_vpc": {
      "my_hello_world_vpc": {
        "name": "test_vpc"
      }
    }
  }
}

index

String

资源的索引,如果用户在模板中使用了count或for_each则会返回index。如果index出现,则resource_name + index可以作为该资源的一种标识

如果用户在模板中使用count,则index为从0开始的数字

以HCL格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc[0]huaweicloud_vpc.my_hello_world_vpc[1]标识两个资源

resource "huaweicloud_vpc" "my_hello_world_vpc" {
  count = 2
  name = "test_vpc"
}

以json格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc[0]huaweicloud_vpc.my_hello_world_vpc[1]标识两个资源

{
  "resource": {
    "huaweicloud_vpc": {
      "my_hello_world_vpc": {
        "name": "test_vpc",
        "count": 2
      }
    }
  }
}

如果用户在模板中使用for_each,则index为用户自定义的字符串

以HCL格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc["vpc1"]huaweicloud_vpc.my_hello_world_vpc["vpc2"]标识两个资源

resource "huaweicloud_vpc" "my_hello_world_vpc" {
  for_each = {
    "vpc1" = "test_vpc"
    "vpc2" = "test_vpc"
  }
  name = each.value
}

以json格式的模板为例,用户在模板中可以通过huaweicloud_vpc.my_hello_world_vpc["vpc1"]huaweicloud_vpc.my_hello_world_vpc["vpc2"]标识两个资源

{
  "resource": {
    "huaweicloud_vpc": {
      "my_hello_world_vpc": {
        "for_each": {
          "vpc1": "test_vpc",
          "vpc2": "test_vpc"
        }
        "name": "${each.value}"
      }
    }
  }
}

action

String

资源变更的类型

  • ADD - 新增资源

  • ADD_THEN_DELETE - 由不可更新的资源返回,先创建新资源,再删除旧资源

  • DELETE - 删除资源

  • DELETE_THEN_ADD - 由不可更新的资源返回,先删除旧资源,再创建新资源

  • UPDATE - 更新资源

  • NO_OPERATION - 仅变更资源的依赖关系,但是对资源本身并无修改的操作

action_reason

String

触发该项目变更的原因,例如用户更新模板;远端删除资源等等

provider_name

String

该项目所属的provider名称。

mode

String

资源模式

  • DATA - 指可以在模板解析期间运行和获取服务端数据的资源类型,不会操作基础设施组件

  • RESOURCE - 指通过模板管理的由服务定义的基础设施组件抽象,可以是物理资源也可以是逻辑资源

drifted

Boolean

当前资源的变更是否由偏差导致。

偏差,也叫漂移。指的是资源被 资源编排 服务创建以后,又经历过非资源编排服务触发的修改,如手动修改、调用SDK修改等,使得资源的配置与本服务所记录的资源的配置不一致。这种不一致便称为偏差。

当资源产生偏差以后:

  • 如果用户试图创建执行计划,则会提示用户产生偏差

  • 如果用户直接部署,则偏差有可能被覆盖,资源编排服务只保证资源和模板最终一致。

资源的偏差有两种类型:

  • 资源定位属性被修改:如果是定位属性被修改,常见于删除后重建,此时资源已经不属于同一个资源。资源编排服务会认为此资源已经被删除,会尝试创建一个新的资源。

  • 资源普通属性被修改:如果是普通属性被修改,则资源编排服务依然可以找到资源,但是下次部署会尝试修复偏差,即将资源保持和模板最终一致。

注:资源编排服务团队极力推荐,如果资源是通过本服务创建的,请一直使用本服务进行维护和更新以确保资源和模板保持一致。建议非紧急事件以外的情况不要手动调整。

imported

Boolean

当前资源的变更是否是导入的。

resource_id

String

资源的物理id,是唯一id,由为该资源提供服务的provider、云服务或其他服务提供方在资源部署的时候生成

attributes

Array of ExecutionPlanDiffAttribute objects

执行计划项目中变更的属性,当无属性变更时为空列表。

表6 ExecutionPlanDiffAttribute

参数

参数类型

描述

name

String

当前资源将要被修改的参数的名字。

previous_value

String

当前资源被修改的参数的原始值。

如果是资源创建的场景,则previous_value为空

如果远端资源产生了偏差,则同一个资源会返回两个ExecutionPlanItem,其中一个的drifted为true,另一个的drifted为false

  • drifted为true的previous_value为资源栈中所维持的资源属性和状态

  • drifted为false的previous_value为provider请求远端资源后,远端资源所返回的资源属性和状态

如果远端资源未产生偏差,则只会返回一个drifted为false的ExecutionPlanItem

  • drifted为false的previous_value为资源栈中所维持的资源属性和状态

target_value

String

当前资源被修改的参数的目的值。

如果是资源删除的场景,则target_value为空

如果远端资源产生了偏差,则同一个资源会返回两个ExecutionPlanItem,其中一个的drifted为true,另一个的drifted为false

  • drifted为true的target_value为provider请求远端资源后,远端资源所返回的资源属性和状态

  • drifted为false的target_value为基于用户模板更新的资源属性和状态

如果远端资源未产生偏差,则只会返回一个drifted为false的ExecutionPlanItem

  • drifted为false的target_value为基于用户模板更新的资源属性和状态

状态码: 400

表7 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表8 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 401

表9 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表10 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 403

表11 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表12 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 404

表13 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表14 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 429

表15 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表16 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

状态码: 500

表17 响应Body参数

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

encoded_authorization_message

String

包含有关未经授权请求的信息。

details

Array of Detail objects

权限拒绝时服务返回的详细错误信息。

表18 Detail

参数

参数类型

描述

error_code

String

响应码

error_msg

String

响应消息

support.huaweicloud.com/api-aos/GetExecutionPlan.html