すべてのプロダクト
Search
ドキュメントセンター

Resource Orchestration Service:データ構造

最終更新日:Jan 16, 2025

Resource Orchestration Service (ROS) が変更セットを実行することでスタックに適用する変更の影響を理解するために、スタックの変更セットを表示できます。このトピックでは、変更セットに含まれる JSON 変更について説明します。

JSON 変更の要素

変更セットの JSON 変更は、以下の要素で構成されています。要素の詳細については、このトピックの「JSON 変更のデータ構造」セクションをご参照ください。

  • 変更: 変更タイプやエンティティなど、ROS に実行させたい変更操作の詳細。

  • ResourceChange: リソース名、リソースタイプ、変更操作など、ROS に変更させたいリソースと変更操作の詳細。

  • ResourceChangeDetail: リソースのプロパティや変更操作前後のリソースの状態など、リソース変更の詳細。

  • ResourceTargetDefinition: リソースのプロパティや構成など、ROS に変更させたいリソースの定義。

  • ResourcePropertyChange: 変更前後のプロパティ値や名前など、リソースプロパティの変更の詳細。

  • ModuleInfo: モジュールに関する情報。

JSON 変更のデータ構造

変更

パラメーター

タイプ

説明

ResourceChange

構造体

ROS に変更させたいリソースと、ROS にリソースに対して実行させたい操作。

タイプ

文字列

ROS に変更させたいエンティティのタイプ。

値を Resource に設定します。Resource の値は、エンティティがリソースであることを指定します。

ResourceChange

パラメーター

タイプ

説明

アクション

文字列

リソースに対して ROS に実行させたい操作。有効な値:

  • Add: リソースを作成します。

  • Modify: リソースを変更します。

  • Remove: リソースを解放します。

詳細

配列

リソースへの変更の詳細。Action パラメーターが Modify に設定されている場合にのみ、このパラメーターは有効になります。

説明

このパラメーターは、ROS タイプのスタックでのみ使用できます。

論理リソース ID

文字列

リソースの論理 ID。論理 ID は、テンプレートで定義されているリソース名です。

物理リソース ID

文字列

リソースの物理 ID。Action パラメーターが Modify または Remove に設定されている場合にのみ、このパラメーターは有効になります。

置換

文字列

新しいリソースを作成し、既存のリソースを削除することでリソースを変更するかどうかを指定します。Action パラメーターが Modify に設定されている場合にのみ、このパラメーターは有効になります。

  • ROS タイプのスタックの有効な値:

    • True: ROS は、新しいリソースを作成し、既存のリソースを削除することでリソースを変更します。RequiresRecreation パラメーターを Always に、Evaluation パラメーターを Static に設定した場合、Replacement パラメーターを True に設定する必要があります。

    • False: ROS は、新しいリソースを作成し、既存のリソースを削除することでリソースを変更しません。RequiresRecreation パラメーターを Never に、Evaluation パラメーターを Static に設定した場合、Replacement パラメーターを False に設定する必要があります。

    • Conditional: ROS は、新しいリソースを作成し、既存のリソースを削除することでリソースを変更する場合があります。RequiresRecreation パラメーターを Always に、Evaluation パラメーターを Dynamic に設定した場合、Replacement パラメーターを Conditional に設定する必要があります。

    説明

    RequiresRecreation パラメーターに複数の値を指定した場合、Replacement パラメーターの値は、最も影響の大きい RequiresRecreation 値に基づいて変化します。RequiresRecreation 値の影響は、AlwaysConditionalNever の順に減少します。

  • Terraform タイプのスタックの有効な値:

    • True: Terraform は、新しいリソースを作成し、既存のリソースを削除することでリソースを変更します。

    • False: Terraform は、新しいリソースを作成し、既存のリソースを削除することでリソースを変更しません。

リソースタイプ

文字列

リソースタイプ。

スコープ

文字列の配列

ROS が更新をトリガーするパラメーター。Action パラメーターが Modify に設定されている場合にのみ、このパラメーターは有効になります。有効な値:

  • Properties: リソースの Properties パラメーター

  • Metadata: リソースの Metadata パラメーター

  • DeletionPolicy: リソースの DeletionPolicy パラメーター

説明

このパラメーターは、ROS タイプのスタックでのみ使用できます。

プロパティの変更

ResourcePropertyChange の構造体配列

リソースプロパティへの変更。Action パラメーターが Modify に設定されている場合にのみ、このパラメーターは有効になります。詳細については、ResourcePropertyChange をご参照ください。

説明

このパラメーターは、Terraform タイプのスタックでのみ使用できます。

モジュール情報

ModuleInfo の構造体配列

リソースが作成されたモジュールに関する情報。このパラメーターは、リソースがモジュールから作成された場合にのみ返されます。詳細については、ModuleInfo をご参照ください。

説明

このパラメーターは、ROS タイプのスタックでのみ使用できます。

ResourceChangeDetail

パラメーター

タイプ

説明

変更ソース

文字列

ROS が更新をトリガーする理由。有効な値:

  • ResourceReference: 参照されているリソースの物理 ID が変更される可能性があります。

  • ParameterReference: テンプレートで参照されているパラメーターが変更される可能性があります。

  • ResourceAttribute: 参照されているリソースの出力プロパティが変更される可能性があります。

  • DirectModification: テンプレートが変更されています。

  • Automatic: ALIYUN::ROS::Stack リソースタイプを使用して作成されたネストされたスタックが変更されていない場合、ROS は ChangeSource パラメーターを Automatic に設定します。これは、ネストされたスタックのテンプレートが変更されている可能性があるためです。親スタックを更新する前に、ROS はネストされたスタックのテンプレートを変更しません。

  • System: リソースの入力値が変更されていない場合でも、ALIYUN::ROS::WaitConditionHandle などの特定の条件または内部メカニズムによって更新がトリガーされます。

原因となるエンティティ

文字列

ChangeSource パラメーターに関連付けられているエンティティ。以下の情報は、ChangeSource パラメーターと CausingEntity パラメーターの値の関係について説明しています。

  • ChangeSource パラメーターを ResourceReference に設定した場合、CausingEntity パラメーターの値はリソース名です。

  • ChangeSource パラメーターを ParameterReference に設定した場合、CausingEntity パラメーターの値はパラメーター名です。

  • ChangeSource パラメーターを ResourceAttribute に設定した場合、CausingEntity パラメーターの値は リソース名.パラメーター名 の形式になります。

  • ChangeSource パラメーターを DirectModification に設定した場合、CausingEntity パラメーターの値は null です。

  • ChangeSource パラメーターを Automatic に設定した場合、CausingEntity パラメーターの値はリソース名です。

  • ChangeSource パラメーターを System に設定した場合、CausingEntity パラメーターの値はリソース名です。

評価

文字列

ROS が目的の値を決定できるかどうか、および変更セットを実行する前に目的の値が変更されるかどうかを指定します。有効な値:

  • Static: ROS は目的の値を決定でき、変更セットを実行する前に目的の値が変更されます。

  • Dynamic: ROS は目的の値を決定できません。ROS がスタックを更新すると、RefFn::GetAtt などの内部関数の結果に基づいて目的の値が変化する場合があります。

ターゲット

構造体

ROS が更新をトリガーするエンティティの詳細。

ResourceTargetDefinition

パラメーター

タイプ

説明

属性

文字列

ROS が更新をトリガーするパラメーター。有効な値:

  • Properties: リソースの Properties パラメーター

  • Metadata: リソースの Metadata パラメーター

  • DeletionPolicy: リソースの DeletionPolicy パラメーター

名前

文字列

Attribute パラメーターを Properties に設定した場合、Name パラメーターの値はプロパティ名です。それ以外の場合、Name パラメーターの値は null です。

再作成が必要

文字列

プロパティの変更によってリソースの再作成が必要になるかどうかを指定します。Attribute パラメーターが Properties に設定されている場合にのみ、このパラメーターは有効になります。有効な値:

  • Never: プロパティの変更によってリソースの再作成は必要ありません。

  • Conditionally: プロパティの変更によってリソースの再作成が必要になる場合があります。

  • Always: プロパティの変更によってリソースの再作成が必要になります。

ResourcePropertyChange

パラメーター

タイプ

説明

名前

文字列

プロパティ名。

変更前の値

データ型はプロパティによって異なります。

ROS がプロパティを更新する前のプロパティの値。

変更後の値

データ型はプロパティによって異なります。

プロパティが更新された後のプロパティの値。

説明
  • 値を <known_after_apply> に設定し、値が文字列型の場合、プロパティが作成または更新された後にのみ値をクエリできます。

  • 値を <sensitive> に設定し、値が文字列型の場合、値は機密データです。

ModuleInfo

パラメーター

タイプ

説明

論理 ID 階層

文字列

リソースを含む 1 つ以上のモジュールの連結された論理 ID。モジュールは最も外側の層からリストされ、スラッシュ (/) で区切られます。

次の例では、リソースは親モジュール A 内にネストされたモジュール B から作成されます。

moduleA/moduleB

タイプ階層

文字列

リソースを含む 1 つ以上のモジュールの連結されたタイプ。モジュールタイプは最も外側の層からリストされ、スラッシュ (/) で区切られます。

次の例では、リソースは MODULE::ROS::Parent::Example タイプの親モジュール内にネストされた MODULE::ROS::Child::Example タイプのモジュールから作成されます。

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

参照

JSON 変更を表示する方法の詳細については、「変更セットの表示」をご参照ください。