全部產品
Search
文件中心

Resource Orchestration Service:資料結構

更新時間:Feb 05, 2024

您可以通過查看更改集瞭解更改集對資源棧的具體更改,本文為您介紹更改集JSON更改的詳細內容。

JSON更改組成部分

更改集的JSON更改部分由下列部分組成。具體資訊,請參見下文。

  • Change:具體的更改操作,包含更改類型和要執行操作的對象。

  • ResourceChange:資源變更內容,包含資源名稱、資源類型和要執行的操作等。

  • ResourceChangeDetail:資源更改的詳細內容,包含資源屬性和資源更改前後的狀態。

  • ResourceTargetDefinition:資源更改的目標定義,包含要更改資源的目標屬性和配置。

  • ResourcePropertyChange:資源屬性的更改,包含更改前後的屬性值和屬性名稱。

  • ModuleInfo:模組的相關資訊。

JSON更改詳細內容

Change

參數

類型

描述

ResourceChange

結構體

更改的資源和操作。

Type

字串

更改的實體類型。

取值:Resource,表示資源。

ResourceChange

參數

類型

描述

Action

字串

資源的相關操作。取值:

  • Add:建立資源。

  • Modify:修改資源。

  • Remove:釋放資源。

Details

數組

資源的修改詳情。當Action取值為Modify時,該參數有效。

說明

僅ROS類型資源棧支援該參數。

LogicalResourceId

字串

資源的邏輯ID,即模板中定義的資源名稱。

PhysicalResourceId

字串

資源的物理ID。當Action取值為ModifyRemove時,該參數有效。

Replacement

字串

Action取值為Modify時,表示是否通過建立新資源並刪除舊資源來替換資源。 取值:

  • ROS類型資源棧

    • RequiresRecreation取值為AlwaysEvaluation取值為Static時:True,表示ROS會通過建立新資源並刪除舊資源來替換資源。

    • 當RequiresRecreation取值為Never、Evaluation取值為Static時:False,表示ROS不會通過建立新資源並刪除舊資源來替換資源。

    • RequiresRecreation取值為AlwaysEvaluation取值為Dynamic時:Conditional,表示ROS可能會通過建立新資源並刪除舊資源來替換資源。

    說明

    如果RequiresRecreation有多個取值,則Replacement的值取決於影響最大的更改,AlwaysConditionalNever影響遞減。

  • Terraform類型資源棧

    • True:Terraform會通過建立新資源並刪除舊資源來替換資源。

    • False:Terraform不會通過建立新資源並刪除舊資源來替換資源。

ResourceType

字串

資源類型。

Scope

字串數組

Action取值為Modify時,觸發更新的參數。取值:

  • Properties:Resource中的Properties參數將觸發更新。

  • Metadata:Resource中的Metadata參數將觸發更新。

  • DeletionPolicy:Resource中的DeletionPolicy參數將觸發更新。

說明

僅ROS類型資源棧支援該參數。

PropertyChanges

ResourcePropertyChange結構體數組

Action取值為Modify時,更新前後資源屬性發生的變化。更多資訊,請參見ResourcePropertyChange

說明

僅Terraform類型資源棧支援該參數。

ModuleInfo

ModuleInfo結構體數組

資源來源模組的資訊。資源來自於模組時,才返回該欄位。更多資訊,請參見ModuleInfo

說明

僅ROS類型資源棧支援該參數。

ResourceChangeDetail

參數

類型

描述

ChangeSource

字串

觸發更新的原因。取值:

  • ResourceReference:引用了其他資源的物理ID,引用的資源物理ID可能發生了變化。

  • ParameterReference:模板中引用的參數可能發生了變化。

  • ResourceAttribute:引用了其他資源的輸出屬性,引用資源的輸出屬性可能發生了變化。

  • DirectModification:直接修改了模板。

  • Automatic:如果嵌套資源棧(ALIYUN::ROS::Stack)未進行修改,則ROS會將ChangeSource設定為Automatic,因為嵌套資源棧中指定的模板可能已經發生了更改。在您對父資源棧運行更新之前,ROS不會對嵌套資源棧模板變更。

  • System:雖然某些資源的輸入未發生變化,但是特定的條件或內部機制也會觸發更新,例如:ALIYUN::ROS::WaitConditionHandle

CausingEntity

字串

ChangeSource關聯的對象。對應關係如下:

  • ResourceReference:資源名。

  • ParameterReference:參數名。

  • ResourceAttribute資源名.參數名

  • DirectModification:null。

  • Automatic:資源名。

  • System:資源名。

Evaluation

字串

ROS是否可以確定目標值,以及在執行更改集之前目標值是否將更新。取值:

  • Static:ROS可以確定目標值,且目標值將更新。

  • Dynamic:ROS無法確定目標值。因為更新資源棧時,目標值取決於內建函式的結果,例如:RefFn::GetAtt

Target

結構體

觸發更新的參數的具體資訊。

ResourceTargetDefinition

參數

類型

描述

Attribute

字串

觸發更新的參數。取值:

  • Properties:Resource中的Properties參數將觸發更新。

  • Metadata:Resource中的Metadata參數將觸發更新。

  • DeletionPolicy:Resource中的DeletionPolicy參數將觸發更新。

Name

字串

AttributeProperties時,表示具體的屬性名稱,其他情況為null

RequiresRecreation

字串

AttributeProperties時,表示對此屬性的更改是否導致重新建立資源。取值:

  • Never:不會導致重新建立資源。

  • Conditionally:可能導致重新建立資源。

  • Always:會導致重新建立資源。

ResourcePropertyChange

參數

類型

描述

Name

字串

屬性名稱。

BeforeValue

由屬性本身決定

更新前的取值。

AfterValue

由屬性本身決定

更新後的取值。

說明
  • 如果為字串,且取值為<known_after_apply>,則表示建立或更新後才能擷取。

  • 如果為字串,且取值為<sensitive>,則表示為敏感性資料。

ModuleInfo

參數

類型

描述

LogicalIdHierarchy

字串

包含資源的一個或多個模組的邏輯ID的串聯列表。 模組從最外層開始列出,並以/分隔。

在以下樣本中,資源是從嵌套在父模組moduleA中的模組moduleB建立的。

moduleA/moduleB

TypeHierarchy

字串

包含資源的一個或多個模組類型的串聯列表。 模組類型從最外層開始列出,並以/分隔。

在以下樣本中,資源是從MODULE::ROS::Child::Example類型的模組建立的,該模組嵌套在MODULE::ROS::Parent::Example類型的父模組中。

MODULE::ROS::Parent::Example/MODULE::ROS::Child::Example

相關文檔

關於如何查看JSON更改,請參見查看更改集